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:
Bei der Steuerung der Bildfeldparameter einer Spur, also Position, Größe, Rotation und Rotationszentrum, beispielsweise um Bewegungen wie Sinusschwingungen, eine Kreisbahn oder das Hüpfen eines Balles zu realisieren. Weitere Hinweise finden Sie im Abschnitt Steuerung der Bildfeldparameter.
Zur Veränderung von Werten in Variablen. Die Werte können aus Wings Vioso RX selbst stammen oder von einem Avio-Gerät. Damit lassen sich beispielsweise Steuerbereiche definieren und begrenzen. Weitere Hinweise finden Sie im Abschnitt Veränderung von Werten.
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.
Klicken Sie in der Symbolleiste in der Symbolleiste auf Echtzeit-Steuerung, worauf mindestens ein gelber Schieberegler pro Spur erscheint.
Markieren Sie eine Spur und klicken Sie dann in der Eigenschaftentabelle auf die Registerkarte Echtzeit. Setzen Sie oben unter Eigenschaften ein Häkchen vor Aktiviert.
Darunter können Sie rechts neben den Parametern die gewünschten Formeln eingeben. Diese werden bei der Wiedergabe ausgeführt und steuern das Bildfeld entsprechend.
Wings Vioso RX bietet Variablen, deren Werte sich mit Formeln verändern lassen. Außerdem können Sie mit den Variablen selbst rechnen. Im Media-Pool Variablen fügen Sie die Variablen per Rechtsklick hinzu, wobei folgende Variablen zur Auswahl stehen:
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.
In der Zeile einer Variablen können Sie in den Spalten Minimum und Maximum den Wertebereich festlegen. Die gewünschte Formel geben Sie in der gleichnamigen Spalte an.
Sie können eine Variable ins Control Panel ziehen und als Kontrollfeld platzieren. Dort ist der aktuelle Wert ablesbar. Bei Avio- und Formel-Variablen können Sie den aktuellen Wert mit der Maus durch Ziehen des gelben Balkens verändern, wodurch die Vorrangschaltung aktiv ist, erkennbar am Vorfahrt-Button im Kontrollfeld und im Media-Pool an dem Eintrag Control Panel in der Spalte Routing. Der Wert wird dann nicht mehr durch die Formel bzw. durch das Avio-Gerät bestimmt, sondern vom Kontrollfeld.
Über eine Variable des Typs Value Out können Sie ein Datenobjekt mit einem Effektparameter verknüpfen, so dass der Effekt durch Datenobjekte dynamisch steuerbar wird.
Beachten Sie folgende Hinweise:
Hier finden Sie alle Funktionen, die der Formelparser bietet. Beachten Sie bitte folgende wichtige Hinweise:
In den Formeln wird die Dezimalstelle als Punkt eingegeben (englische Schreibweise).
Das Komma dient als Separator zweier logischer Ausdrücke, also z. B. als Trennung von zwei Werten.
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 |
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. |