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. |