Funktionselemente (DDF-Syntax) DMXC3
Funktionselemente (DDF-Syntax) DMXC3 | Artikel beschreibt DMXControl 3.2.3 |
|
Neben der allgemeinen Struktur in den DDFs für DMXControl 3 gibt es innerhalb des Funktionsteils verschiedene Elemente, die in (nahezu) allen Funktionen Anwendung finden (können). Diese finden sich an zwei Stellen:
- Es existieren für alle Funktionen verschiedene zusätzliche Attribute, im folgenden als Funktionsattribute. Einige dieser Funktionsattribute sind dabei Pflichtangaben, um die verwendete Funktion vollständig zu definieren.
- Viele Funktionen benötigen verschiedene untergeordnete Funktionselemente. Diese Funktionselemente definieren den Wertebereichs eines DMX-Kanals genauer oder es werden vorgegebene Abhängigkeiten hergestellt.
Inhaltsverzeichnis
Funktionsattribute
Pflichtattribute
dmxchannel
: DMX-Kanal
Das Attribut dmxchannel
inklusive der Abwandlungen finedmxchannel
, ultradmxchannel
und ultrafinedmxchannel
gibt den DMX-Kanal an, auf dem sich die entsprechende Funktion befindet. In den meisten Fällen besitzt eine Funktion nur eine 8-bit-Auflösung, weswegen vielerorts nur das Attribut dmxchannel
benötigt wird.
Dass für die Angabe des DMX-Kanals bis zu vier Attribute benötigt werden, ist darin begründet, dass auf jedem DMX-Kanal nur insgesamt 256 verschiedene Werte übertragen werden können. Die Werte liegen im Bereich von DMX-Wert 0 bis DMX-Wert 255. Dies beschreibt die klassische Auflösung bzw. Genauigkeit eines DMX-Kanals von 8 bit. Um bei bestimmten Funktionen wie zum Beispiel bei Pan, Tilt oder beim Dimmer feine Auflösungen zu erzielen, werden weitere DMX-Kanäle hinzugezogen, um die Auflösung zu erhöhen. In diesem Fall spricht man dann von einer Auflösung mit 16 bit oder der zweite DMX-Kanal für die Pan-Funktion wird mit Pan fine bezeichnet.
DMXControl 3 unterstützt aktuell Auflösungen von für alle Funktionen bis 32 bit. Für hierfür werden dann vier DMX-Kanäle zusammengefasst, um die Funktion in dieser Auflösung darzustellen. In den DDFs kommen dabei folgende Bezeichnungen zum Einsatz:
dmxchannel
für 8-bit-Auflösungfinedmxchannel
für 16-bit-Auflösungultradmxchannel
für 24-bit-Auflösungultrafinedmxchannel
für 32-bit-Auflösung
Es ist dabei zu beachten, dass bei der 32-bit-Auflösung auch alle vier DMX-Kanäle anzugeben sind. Es ist mitunter nicht unüblich, dass die vier DMX-Kanäle in der Belegung nicht direkt hintereinander angeordnet sind. Die folgende Tabelle zeigt die Definition der aktuell möglichen Auflösungen für eine Gerätefunktion exemplarische anhand der Funktion "Dimmers".
Variante | Code-Beispiel |
---|---|
Gerätefunktion mit 8-bit-Auflösung | <dimmer dmxchannel="0" />
Dimmer auf DMX-Kanal 1 |
Gerätefunktion mit 16-bit-Auflösung | <dimmer dmxchannel="0" finedmxchannel="1" />
Dimmer mit 16-bit-Auflösung auf DMX-Kanal 1 und 2 |
Gerätefunktion mit 24-bit-Auflösung | <dimmer dmxchannel="0" finedmxchannel="1" ultradmxchannel="2" />
Dimmer mit 24-bit-Auflösung auf DMX-Kanal 1, 2 und 3 |
Gerätefunktion mit 32-bit-Auflösung | <dimmer dmxchannel="0" finedmxchannel="1" ultradmxchannel="2" ultrafinedmxchannel="3" />
Dimmer mit 32-bit-Auflösung auf DMX-Kanal 1, 2, 3 und 4 |
Optionale Attribute
defaultval
: Initialwert bzw. Standardwert
Auf Wunsch kann man bei einer Auswahl von Funktionen vorgeben, welchen Wert diese abweichend von der Standarddefinition in DMXControl 3 annehmen soll. Dies erfolgt über das Attribut defaultval
. Bei folgenden Funktionen kann dieses Attribut eingesetzt werden:
- Intensity
- Switch
- Colortemp
- Focus
- Iris
- Zoom
- Index
- Rotation
- Raw
- Rawrange
- Rawstep
Der Wert für das Attribut defaultval
muss dabei immer innerhalb der range
liegen, die in der Regel nachfolgend angegeben wird. Greift man bei einer Funktion auf die Standarddefinition für den Wertebereich zurück, muss der Wert für defaultval
entsprechend zwischen 0
und 1
bzw. zwischen 0
und 100
liegen.
Variante | Code-Beispiel |
---|---|
Vorgabewert für die Helligkeit | <dimmer dmxchannel="0" defaultval="25"/>
Spricht man den Dimmer (Intensity) nicht an, setzt der Hardware Abstraction Layer (HAL) den Wert für den Dimmer nun entgegen der Standarddefinition auf 25%. |
Eigener Wert für die Farbtemperatur | <colortemp dmxchannel="0" defaultval="5500">
<range mindmx="255" maxdmx="0" minval="2500" maxval="9500"/>
</colortemp>
Farbtemperatur kann auf DMX-Kanal 1 von 9.500 K bei DMX-Wert 0 abnehmend bis 2.5000 K bei DMX-Wert 255 eingestellt werden. Nutzt man die Funktion nicht und hat keinen spezifischen Wert in einer Szene etc. hinterlegt, wird statt des Standardwerts von 6.500 K eine Farbtemoperatur von 5.500 K gesetzt. |
Frei definierter Regler | <raw dmxchannel="0" name="Auto / music speed" defaultval="25">
<range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="100" />
</raw>
Die standardmäßige Geschwindigkeit der Automatik-Programme soll 25% betragen. Bei der Angabe des Wertebereich von 0% bei DMX-Wert 0 und 100% bei DMX-Wert 255 wird durch |
Funktionselemente
Die zur Verfügung stehenden Funktionselemente kommen in der Regel immer dann zum Einsatz, wenn auf einem DMX-Kanal mehrere Funktionen untergebracht sind. Dies können zum Beispiel verschiedene Strobe-Modi sein wie linear, zufällig. Bei einem Farbrad bzw. einem Goborad müssen die verschiedenen Farben und Gobos angegeben werden. Aber bereits bei einem Shutter liegen direkt zwei Funktionen vor, nämlich geschlossen und offen.
Um all dies im DDF zu hinterlegen, stehen verschiedene Funktionselemente zur Verfügung. Sie definieren, dass
- zwischen verschiedenen Funktionen auf einem DMX-Kanal nur umgeschaltet wird (
step
). - sich eine Funktion verändern lässt, wenn man einen Reglers in einem bestimmten Bereich bewegt (
range
). - zum Nutzen einer bestimmten Funktion ein anderer DMX-Kanal auf einen vorgegeben DMX-Wert gesetzt werden muss (
supporthandler
).
Ob die genannten Funktionselemente benötigt werden, hängt von der jeweiligen Funktion ab. Existiert bereits eine Standardimplementierung direkt in DMXControl 3, wie es zum Beispiel beim dimmer
der Fall ist, können die Funktionselemente komplett entfallen. Besitzt eine Funktion entweder keine Standardimplementierung oder man muss davon abweichen, kommen die Funktionselemente step
oder range
mehr oder minder verpflichtend zum Einsatz.
Funktionselemente wie zum Beispiel der supporthandler
sind aber per se optional und kommend entsprechend nur in bestimmten Anwendungsfällen zum Einsatz. Entsprechende typische Beispiele sind bei den betreffenden Funktionen aufgeführt.
Benötigte Funktionselemente
step
: Angabe von einzelen Schritten
Das Funktionselemente step
besteht immer aus dem eigentlichen Tag step
, dem Attribut type
, sowie den Attributen für den minimalen DMX-Wert mindmx
und den maximalen DMX-Wert maxdmx
für den step
. Der Wert für das Attribut type
ist immer abhängig von der Eigenschaft des DMX-Kanals, die abgebildet werden soll. Welche Werte zulässig sind, wird bei der Beschreibung der jeweiligen Funktion angegeben. Wichtig ist hier zu wissen, dass die HAL immer den Mittelwert zwischen mindmx
und maxdmx
. Bezogen auf das folgende Beispiel wäre dies der DMX-Wert 227.
<step type="open" mindmx="200" maxdmx="255" />
range
: Angabe eines regelbaren Bereichs
Das Funktionselement range
ist ähnlich aufgebaut, wie das Funktionselement step
. Der wesentlichste Unterschied ist die Ergänzung der Attribute minval
und maxval
. Hier werden beispielsweise angegeben:
- die minimale und maximale Strobefrequenz
- die minimale und maximale Drehzahl für die Goborotation
- der minimale und maximale Abstrahlwinkel des Zooms
Die Besonderheit ist an dieser Stelle, dass die DMX-Werte den Geschwindigkeiten zugeordnet werden. Das heißt, zur minimalen Drehzahl wird der DMX-Wert eingetragen, wo sich zum Beispiel das Gobo am langsamsten dreht. Genauso verhält es sich mit der maximalen Drehzahl des Gobos. Daher kann es vorkommen, dass die minimale Drehzahl nicht immer automatisch auch der niedrige DMX-Wert und die maximale Drehzahl beim größten DMX-Wert anliegt. Ein Code-Beispiel ist im Artikel Goborad zu finden. Eine übersichtlichere Konstellation zeigt dagegen das folgende Beispiel für die Strobefrequenz, wo beim niedrigsten DMX-Wert 0 auch die geringste Strobefrequenz von 0,5 Hz ausgegeben wird.
<range type="linear" mindmx="0" maxdmx="255" minval="0.5" maxval="15" />
Optionale Funktionselemente
supporthandler
: Werteabhängige Steuerung von DMX-Kanälen
Einige Geräte besitzen eine oder auch mehrere Funktionen, die nach dem Prinzip arbeiten: "Man wähle auch einem DMX-Kanal die Funktion aus und über einen zweiten DMX-Kanal steuert man die Geschwindigkeit". Ein anschauliches Beispiel kann hier ein Goborad mit rotierenden Gobos sein, welche sich zusätzlich auch noch indizieren lassen. Hier hat man bereits drei verschiedene Funktionen:
- Indizierung der Gobos
- Rotation im Uhrzeigersinn
- Rotation entgegen des Uhrzeigersinns
Über einen ersten DMX-Kanal wählt man dann eine der drei Funktionen aus, während der zweite DMX-Kanal immer über seinen gesamten Wertebereich von 0 bis 255 arbeitet und die Funktion wie
- Angabe des Indizierungswinkels
- Rotationsgeschwindigkeit, von langsam bis schnell im Uhrzeigersinn
- Rotationsgeschwindigkeit, von langsam bis schnell entgegen des Uhrzeigersinns
bestimmt.
Um dieses Szenario in einem DDF für DMXControl 3 umzusetzen gibt es den so genannten supporthandler
. Dieser besteht immer aus zwei Teilen:
- der Angabe, welcher DMX-Kanal die Funktion umschaltet
- der Zusatz an der Definition, bei der eigentliche Wert festgelegt wird
Im Falle des Goborads baut sich die Implementierung für die Funktion "Indizierung der Gobos" wie folgt auf. Der erste Teil des supporthandler
ist eine weitere Zeile innerhalb des Elements goboindex
, nachdem in gleichen Zusammenhang vermerkt wurde, dass sich diese Funktion aus dem DMX-Kanal 3 befindet, also der DMX-Kanal 3 den eigentlichen Wert bestimmt.
<goboindex dmxchannel="2">
Diese Implementierung entspricht dabei der normalen Implementierung ohne die Ergänzung durch den supporthandler
. Durch die Angabe der direkt nachfolgenden Zeile
<support dmxchannel="1" name="goboindex" />
wird definiert, dass die Umschaltung der Funktion auf DMX-Kanal 2 erfolgt. Das zugehörige Schlüsselwort lautet hier ebenfalls goboindex
, wobei hier auch jeder andere Wert zulässig ist. Im weiteren gibt man wieder den Wertebereich für die Funktion an, so als ob man auch ohne den supporthandler
arbeitet. Die Zeile unterscheidet sich nur dahingehend, dass für mindmx
und maxdmx
der angegebene Wertebereich des DMX-Kanals erfolgt, welcher den Wert festlegt. Des weiteren schließt man die Zeile durch />
nicht ab, sondern lässt diese offen.
<range range="360" mindmx="0" maxdmx="255" minval="0" maxval="360" >
In der nachfolgenden Zeile, die ein untergeordnetes Element zum range
-Element ist, gibt man erst an, auf welchen DMX-Wert der DMX-Kanal zur Auswahl der Funktion gesetzt werden muss, sobald man wie in diesem Beispiel die Funktion Goboindizierung nutzt. Neben dem entsprechenden Wertebereich via der Attribute mindmx
und maxdmx
, erhält diese Zeile den zweiten Teil des supporthandler
. Dieser besteht aus dem Attribut handler
und als Wert dem Schlüsselwort, welches man zuvor gewählt hat. Hier ist es das Schlüsselwort goboindex
, welches man mit dem Präfix support-
als Wert hinterlegt. Damit sind alle Definitionen innerhalb dieser Zeile abgeschlossen.
<step handler="support-goboindex" mindmx="0" maxdmx="15" />
Die Zeile mit der Angabe des DMX-Werts für die Auswahl der entsprechenden Funktion muss jeder Definition hinzugefügt werden, die einen bestimmten DMX-Wert auf dem Auswahlkanal benötigt. Im Falle beispielsweise der Goborotation bedeutet dies, dass dieser Zusatz möglicherweise dreimal einzufügen ist: Rotation im Uhrzeigersinn, Stop, Rotation entgegen des Uhrzeigersinns. |
Nachfolgende erfolgt der restliche Teil für die Implementierung der Goboindizierung. In der Summe sieht das Code-Stück dann wie folgt aus.
Variante | Code-Beispiel |
---|---|
Goboindizierung | <gobowheel dmxchannel="0">
<goboindex dmxchannel="2">
<support dmxchannel="1" name="goboindex" />
<range range="360" mindmx="0" maxdmx="255" minval="0" maxval="360" >
<step handler="support-goboindex" mindmx="0" maxdmx="15" />
</range>
</goboindex>
<step type="open" mindmx="0" maxdmx="15" caption="Open" />
<step type="gobo" mindmx="16" maxdmx="31" val="congostar.png" caption="Gobo 1" />
<step type="gobo" mindmx="32" maxdmx="47" val="sunburst.png" caption="Gobo 2" />
Goborad auf DMX-Kanal 1, Goboindizierung auf DMX-Kanal 3, Auswahl des Modus "Goboindizierung" über DMX-Kanal 2:
|
Weitere Beispiele für die Nutzung des supporthandler
sind in den Artikeln zum Farbrad und zum Goborad zu finden.