Formelparser

Für diese Funktion ist mindestens eine Wings VIOSO-Lizenz erforderlich, siehe auch Lizenzen und Funktionen.

Wings Vioso RX bietet einen Formelparser, mit dem Werte mathematisch verändert oder mithilfe einer Zeitbasis generiert werden können. Der Formelparser lässt sich beispielsweise in folgenden Fällen anwenden:

Für die Anwendung des Formelparsers sind fundierte mathematische Kenntnisse erforderlich, weil die gewünschten Funktionen als mathematische Formel eingegeben werden müssen. Eine Formel kann neben mathematischen Operationen auch logische Vergleiche enthalten. Die Möglichkeiten des Formelparsers sind im Abschnitt Referenz des Formelparsers erläutert.

Zum Kennenlernen von Variablen und Formelparser haben wir ein Übungs- und Demo-Projekt vorbereitet, mit dem auch Anwender einen Einblick gewinnen können, die sich mathematisch für weniger begabt halten, siehe Bildfeldsteuerung mit Formeln.

 

Steuerung der Bildfeldparameter

 

Veränderung von Werten

Value Out Variablen  …erlauben das Senden von Informationen an andere Avio-Geräte und das Steuern von Parametern in Wings Vioso RX.

Value In Variablen  …empfangen Werte von Avio-Geräten zur Weiterverwendung in Wings Vioso RX.

Funktionsgenerator  …generiert mit Formeln und/oder auf zeitlicher Basis einen Wert, der auch in Avio verwendet werden kann.

Interne Variablen  ...für interne Berechnungen mit dem Formelparser und Datenaustausch innerhalb von Wings Vioso RX.

Text Out Variablen  ...erlauben das Senden von Texten an andere Avio-Geräte.

Text In Variablen  ...empfangen Text von Avio-Geräten zur Weiterverwendung in Wings Vioso RX.

 

Beachten Sie folgende Hinweise:

 

Referenz des Formelparsers

Hier finden Sie alle Funktionen, die der Formelparser bietet. Beachten Sie bitte folgende wichtige Hinweise:

 

Unterstützte Operatoren

Einstellige Operatoren

-

Negativenbildung

°

konvertiert Grad in Bogenmaß

_rtd

konvertiert Bogenmaß  in Grad

_r

konvertiert Bogenmaß in das Intervall [0, 1]

konvertiert Grad in das Intervall [0, 1]

 

 Zweistellige Operatoren (nach Rangfolge geordnet)

^

hoch (zur Angabe eines Exponenten)

/

Division

%

modulo (Rest nach Division)

*

Multiplikation

-

Subtraktion

+

Addition

<

kleiner als

<=

kleiner oder gleich als

>

größer als

>=

größer oder gleich als

==

gleich

Achtung: Wings Vioso RX verwendet intern für Variablen das Datenformat "double precision floating point", was bei unachtsam angewandten Vergleichen zu Problemen führen kann.

!=

ungleich (Achtung: siehe oben)

||

logisches "Oder"

&&

logisches "Und"

=

Zuweisung (Parser benötigt Schreibberechtigung, sonst Fehler!)

 

Konstanten

_pi

π, Kreiszahl

_e

e, Eulersche Zahl

 

Trigonometrische Funktionen

sin(x)

Sinus (x)

cos(x)

Cosinus (x)

tan(x)

Tangens (x)

asin(x)

Arcus Sinus (x) (Umkehrfunktion)

acos(x)

Arcus Cosinus (x) (Umkehrfunktion)

atan(x)

Arcus Tangens (x) (Umkehrfunktion)

atan2(x, y)

Arcus Tangens (Quadrantenselektion), Werte zwischen -PI und PI

 

Hyperbelfunktionen

sinh(x)

Sinus hyperbolicus (x)

cosh(x)

Cosinus hyperbolicus (x)

tanh(x)

Tangens hyperbolicus (x)

asinh(x)

Arcus Sinus hyperbolicus (x) (Umkehrfunktion)

acosh(x)

Arcus Cosinus hyperbolicus (x) (Umkehrfunktion)

atanh(x)

Arcus Tangens hyperbolicus (x) (Umkehrfunktion)

 

Exponentialfunktion

exp(x)

e^(x)

 

Logarithmus

ln(x)

Logarithmus zur Basis e

log2(x)

Logarithmus zur Basis 2

log10(x)

Logarithmus zur Basis 10

 

Ganzzahlige Konvertierung

round(x)

zur nächsten ganzen Zahl runden

floor(x)

größte ganze Zahl kleiner oder gleich x

ceil(x)

kleinste ganze Zahl größer oder gleich x

 

Zufallszahlengenerator

rng()

zufällige Zahl zwischen 0 und 1 (random number generator)

 

Diverse

sqrt(x)

Quadratwurzel (x)

abs(x)

Betrag (x)

sign

Vorzeichen (x)

saturate(x)

clamp x to [0, 1]

step(value, x)

(x >= value) ? 1 : 0

clamp(x, min, max)

beschränkt x auf das Interval zwischen min und max

smoothstep(min, max, x)

Hermite-Interpolant  für x zwischen min und max, x < min => 0, x > max => 1

lerp(a, b, x)

Lineare Inter-/Extrapolation zwischen a und b, x == 0 => a, x == 1 => b

 

Bereichszuweisung

map(from_min, from_max, to_min, to_max, x)

Bildet x aus dem Intervall [from_min, from_max] (Werte außerhalb des Bereichs werden abgeschnitten) auf das Intervall [to_min, to_max] ab.

Nachfolgende Funktionen suchen Variablen durch deren Namen ohne Kenntnis über deren Kontext (Lese- und Schreibzugriff). Dies kann Problematisch sein, wenn Variablen den gleichen Namen in verschiedenem Kontext haben. Beachten Sie die Anführungszeichen um den Variablennamen.

map_int("variable name", min, max)

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen min und max.

map8("variable name")

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen 0 und 255.

map16("variable name")

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen 0 und 65535.

cmp8("variable name", value)

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen 0 und 255 und vergleicht sie mit "value".

mp16("variable name", value)

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen 0 und 65535 und vergleicht sie mit "value".

cmp_dmx("variable name", value)

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen 0 und 255 und vergleicht sie mit "value".

cmp_midi("variable name", value)

Beschränkt den Wertebereich der Variablen "variable name" auf ganze Zahlen zwischen 0 und 127 und vergleicht sie mit "value".

 

 variable parameter functions

sum(a, b, c, ...)

a + b + c + ...

avg(a, b, c, ...)

Durchschnitt (a, b, c, ...)

min(a, b, c, ...)

Minimum (a, b, c, ...)

max(a, b, c, ...)

Maximum (a, b, c, ...)

 

Bedingte Funktionen

if (Bedingung) then (Ausdruck A) else (Ausdruck B)

Falls "Bedingung" wahr ist, führe "Ausdruck A" aus, sonst "Ausdruck B"

(Bedingung) ? (Ausdruck A) : (Ausdruck B)

wie zuvor, jedoch einfachere Schreibweise

 

Systemvariablen

Globale Variablen

tYear

Jahr, vierstellig (PC-Einstellung)

tMonth

Monat, 1...12 (PC-Einstellung)

tDay

Tag, 1...31 (PC-Einstellung)

tWeekday

Wochentag, Sonntag = 0, Montag = 1, ... Samstag = 6

tHour

Stunden, 0...24 (PC-Einstellung)

tMin

Minuten, 0...60 (PC-Einstellung)

tSec

Sekunden, 0...60 (PC-Einstellung)

tSys

Systemzeit des PCs (schnelle Eingabe ts)

peakLevel01

Spitzenpegel von Kanal 1 (stereo L) (schnelle Eingabe pl1)

peakLevel02

Spitzenpegel von Kanal 2 (stereo R) (schnelle Eingabe pl1)

rmsLevel01

RMS-Pegel von Kanal 1 (stereo L) (schnelle Eingabe rl1)

rmsLevel02

RMS-Pegel von Kanal 2 (stereo R) (schnelle Eingabe rl2)

 

Spurvariablen

alpha

Transparenz der Spur (schnelle Eingabe al)

xPos

X-Position des Spurbildfeldes (schnelle Eingabe xp)

yPos

Y-Position des Spurbildfeldes (schnelle Eingabe yp)

xZoom

X-Größe des Spurbildfeldes (schnelle Eingabe xz)

yZoom

Y-Größe des Spurbildfeldes (schnelle Eingabe yz)

xRot

Rotation um die X-Achse (schnelle Eingabe xr)

yRot

Rotation um die Y-Achse (schnelle Eingabe yr)

zRot

Rotation um die Z-Achse (schnelle Eingabe zr)

xRotC

X-Position des Rotationszentrums (schnelle Eingabe xc)

yRotC

Y-Position des Rotationszentrums (schnelle Eingabe yc)

 

Zeitvariablen

Zeitvariable beziehen sich immer auf eine Spur und geben die aktuelle Locator-Position aus. Daher sind sie nur in der Eigenschaftentabelle Echtzeit anwendbar und nicht im Media-Pool Variable.

tObjAbs

Vom Beginn bis zum Ende des Objekts als absolute, auf die Timeline bezogene Zeit (schnelle Eingabe toa)

tObjRel

Vom Beginn bis zum Ende des Objekts als relative, auf das Objekt bezogene Zeit (schnelle Eingabe tor)

tDispAbs

Vom Ende der Einblendung bis zum Beginn der Ausblendung (Objektstandzeit) als absolute, auf die Timeline bezogene Zeit (schnelle Eingabe tda)

tDispRel

Vom Ende der Einblendung bis zum Beginn der Ausblendung (Objektstandzeit) als relative, auf das Objekt bezogene Zeit (schnelle Eingabe tdr)

tFadeInAbs

Vom Beginn bis zum Ende der Einblendung als absolute, auf die Timeline bezogene Zeit (schnelle Eingabe tfia)

tFadeInRel

Vom Beginn bis zum Ende der Einblendung als relative, auf das Objekt bezogene Zeit (schnelle Eingabe tfir)

tFadeOutAbs

Vom Beginn bis zum Ende der Ausblendung als absolute, auf die Timeline bezogene Zeit (schnelle Eingabe tfoa)

tFadeOutRel

Vom Beginn bis zum Ende der Ausblendung als relative, auf das Objekt bezogene Zeit (schnelle Eingabe tfor)

tTlAbs

absolute Timeline-Zeit (schnelle Eingabe tta)

tTlRel

relative Timeline-Zeit vom Beginn der Timeline bis zum Ende des letztes Objekts als Werte von 0 bis 1 (schnelle Eingabe ttr)

 

Weitere Variablen

ObjWidth

Objekthöhe in Screen-Koordinaten

ObjHeight

Objektbreite in Screen-Koordinaten

ScreenRatio

Seitenverhältnis des Screens

 

Erzeugung von Variablen

create variable name

Erzeugt eine Variable mit dem Namen "variable name". Die Variable muss vor dem ersten Aufruf erstellt sein.