Funktionselemente (DDF-Syntax) DMXC3: Unterschied zwischen den Versionen

Aus Deutsches DMXC-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Kapitelüberschrift|Version=DMXControl 3.2.3}}
{{Manual Header
 
| Type = DMXC3 DDFs
{{DMXC3_Manual-Navigation_DDF
| Version = 3.3.1
|zurückLink = DDF-Struktur_DMXC3
| zurückLink = Grundaufbau (DDF-Syntax) DMXC3
|zurückText = Grundaufbau der DDFs
| zurückText = Grundaufbau der DDFs
|vorLink = DDF-Grundregeln_DMXC3
| vorLink = Grundregeln (DDF-Syntax) DMXC3
|vorText = Grundregeln der DDF-Erstellung
| vorText = Grundregeln der DDF-Erstellung
}}
}}


Zeile 12: Zeile 12:
* 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.
* 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.
* Viele Funktionen benötigen verschiedene untergeordnete Funktionselemente. Diese Funktionselemente definieren den Wertebereichs eines DMX-Kanals genauer oder es werden vorgegebene Abhängigkeiten hergestellt.
Wann und wo welche der nachfolgend beschriebenen Funktionselemente mit ihren verschiedenen Attributen und Werten verwendet werden müssen bzw. dürfen, ist immer im Kontext der jeweiligen Funktion beschrieben. In diesem Artikel erfolgt nur die grundlegende Auflistung der vorhandenen Funktionselemente und eine allgemeine Beschreibung deren Arbeitsweise.




Zeile 19: Zeile 20:
Das Attribut <code>dmxchannel</code> inklusive der Abwandlungen <code>finedmxchannel</code>, <code>ultradmxchannel</code> und <code>ultrafinedmxchannel</code> 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 <code>dmxchannel</code> benötigt wird.
Das Attribut <code>dmxchannel</code> inklusive der Abwandlungen <code>finedmxchannel</code>, <code>ultradmxchannel</code> und <code>ultrafinedmxchannel</code> 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 <code>dmxchannel</code> 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.
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 {{Manual Value | DMX value | 0}} bis DMX-Wert {{Manual Value | DMX value | 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.
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.


Zeile 27: Zeile 28:
* <code>ultradmxchannel</code> für 24-bit-Auflösung
* <code>ultradmxchannel</code> für 24-bit-Auflösung
* <code>ultrafinedmxchannel</code> für 32-bit-Auflösung
* <code>ultrafinedmxchannel</code> 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 anhand des Dimmers.
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".


{| class="wikitable toptextcells"
{{DMXC3 Manual-Tableheader DDF-Code examples | de }}
|-
 
! Variante !! Code
| Gerätefunktion mit 8-bit-Auflösung
|-
| <syntaxhighlight lang="xml">
| style="width: 10em" | Dimmer mit 8-bit-Auflösung
| style="width: 60em" | <syntaxhighlight lang="xml">
<dimmer dmxchannel="0" />
<dimmer dmxchannel="0" />
</syntaxhighlight>
</syntaxhighlight>
Dimmer auf DMX-Kanal '''1'''
Dimmer auf DMX-Kanal {{Manual Value | DMX channel | 1}}
|-
|-
| Dimmer mit 16-bit-Auflösung
| Gerätefunktion mit 16-bit-Auflösung
| <syntaxhighlight lang="xml">
| <syntaxhighlight lang="xml">
<dimmer dmxchannel="0" finedmxchannel="1" />
<dimmer dmxchannel="0" finedmxchannel="1" />
</syntaxhighlight>
</syntaxhighlight>
Dimmer mit 16-bit-Auflösung auf DMX-Kanal '''1''' und '''2'''
Dimmer mit 16-bit-Auflösung auf DMX-Kanal {{Manual Value | DMX channel | 1}} und {{Manual Value | DMX channel | 2}}
|-
|-
| Dimmer mit 24-bit-Auflösung
| Gerätefunktion mit 24-bit-Auflösung
| <syntaxhighlight lang="xml">
| <syntaxhighlight lang="xml">
<dimmer dmxchannel="0" finedmxchannel="1" ultradmxchannel="2" />
<dimmer dmxchannel="0" finedmxchannel="1" ultradmxchannel="2" />
</syntaxhighlight>
</syntaxhighlight>
Dimmer mit 24-bit-Auflösung auf DMX-Kanal '''1''', '''2''' und '''3'''
Dimmer mit 24-bit-Auflösung auf DMX-Kanal {{Manual Value | DMX channel | 1}}, {{Manual Value | DMX channel | 2}} und {{Manual Value | DMX channel | 3}}
|-
|-
| Dimmer mit 32-bit-Auflösung
| Gerätefunktion mit 32-bit-Auflösung
| <syntaxhighlight lang="xml">
| <syntaxhighlight lang="xml">
<dimmer dmxchannel="0" finedmxchannel="1" ultradmxchannel="2" ultrafinedmxchannel="3" />
<dimmer dmxchannel="0" finedmxchannel="1" ultradmxchannel="2" ultrafinedmxchannel="3" />
</syntaxhighlight>
</syntaxhighlight>
Dimmer mit 32-bit-Auflösung auf DMX-Kanal '''1''', '''2''', '''3''' und '''4'''
Dimmer mit 32-bit-Auflösung auf DMX-Kanal {{Manual Value | DMX channel | 1}}, {{Manual Value | DMX channel | 2}}, {{Manual Value | DMX channel | 3}} und {{Manual Value | DMX channel | 4}}
|}
|}


Zeile 67: Zeile 66:
* Iris
* Iris
* Zoom
* Zoom
* Index
* Rotation
* Raw
* Raw
* Rawrange
* Rawrange
Zeile 72: Zeile 73:
Der Wert für das Attribut <code>defaultval</code> muss dabei immer innerhalb der <code>range</code> 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 <code>defaultval</code> entsprechend zwischen <code>0</code> und <code>1</code> bzw. zwischen <code>0</code> und <code>100</code> liegen.
Der Wert für das Attribut <code>defaultval</code> muss dabei immer innerhalb der <code>range</code> 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 <code>defaultval</code> entsprechend zwischen <code>0</code> und <code>1</code> bzw. zwischen <code>0</code> und <code>100</code> liegen.


{| class="wikitable toptextcells"
{{DMXC3 Manual-Tableheader DDF-Code examples | de }}
|-
 
! Variante !! Code
| Vorgabewert für die Helligkeit
|-
| <syntaxhighlight lang="xml">
| style="width: 10em" | Vorgabewert für die Helligkeit
| style="width: 60em" | <syntaxhighlight lang="xml">
<dimmer dmxchannel="0" defaultval="25"/>
<dimmer dmxchannel="0" defaultval="25"/>
</syntaxhighlight>
</syntaxhighlight>
Spricht man den Dimmer (Intensity) nicht an, setzt der HAL den Wert für den Dimmer nun entgegen der Standarddefinition auf <code>25%</code>.
Spricht man den Dimmer (Intensity) nicht an, setzt der {{Manual Windowcaption | [[Hardware Abstraction Layer (HAL) DMXC3 | Hardware Abstraction Layer (HAL)]]}} den Wert für den Dimmer nun entgegen der Standarddefinition auf {{Manual Value | | 25%}}.
|-
|-
| Eigener Wert für die Farbtemperatur
| Eigener Wert für die Farbtemperatur
Zeile 88: Zeile 87:
</colortemp>
</colortemp>
</syntaxhighlight>
</syntaxhighlight>
Farbtemperatur kann auf DMX-Kanal '''1''' von <code>9.500 K</code> bei DMX-Wert <code>0</code> abnehmend bis <code>2.5000 K</code> bei DMX-Wert <code>255</code> eingestellt werden. Nutzt man die Funktion nicht und hat keinen spezifischen Wert in einer Szene etc. hinterlegt, wird statt des Standardwerts von <code>6.500 K</code> eine Farbtemoperatur von <code>5.500 K</code> gesetzt.
Farbtemperatur kann auf DMX-Kanal {{Manual Value | DMX channel | 1}} von {{Manual Value | | 9.500 K}} bei DMX-Wert {{Manual Value | DMX value | 0}} abnehmend bis {{Manual Value | | 2.5000 K}} bei DMX-Wert {{Manual Value | DMX value | 255}} eingestellt werden. Nutzt man die Funktion nicht und hat keinen spezifischen Wert in einer Szene etc. hinterlegt, wird statt des Standardwerts von {{Manual Value | | 6.500 K}} eine Farbtemoperatur von {{Manual Value | | 5.500 K}} gesetzt.
|-
|-
| Frei definierter Regler
| Frei definierter Regler
Zeile 96: Zeile 95:
</raw>
</raw>
</syntaxhighlight>
</syntaxhighlight>
Die standardmäßige Geschwindigkeit der Automatik-Programme soll <code>25%</code>. Bei der Angabe des Wertebereich von <code>0%</code> bei DMX-Wert <code>0</code> und <code>100%</code> bei DMX-Wert <code>255</code> wird durch <code>defaultval</code> ein DMX-Wert von <code>63</code> ausgegeben.
Die standardmäßige Geschwindigkeit der Automatik-Programme soll {{Manual Value | | 25%}} betragen. Bei der Angabe des Wertebereich von {{Manual Value | | 0%}} bei DMX-Wert {{Manual Value | DMX value | 0}} und {{Manual Value | | 100%}} bei DMX-Wert {{Manual Value | DMX value | 255}} wird durch <code>defaultval</code> ein DMX-Wert von {{Manual Value | DMX value | 63}} ausgegeben.
|}
|}


Zeile 105: Zeile 104:
* zwischen verschiedenen Funktionen auf einem DMX-Kanal nur umgeschaltet wird (<code>step</code>).
* zwischen verschiedenen Funktionen auf einem DMX-Kanal nur umgeschaltet wird (<code>step</code>).
* sich eine Funktion verändern lässt, wenn man einen Reglers in einem bestimmten Bereich bewegt (<code>range</code>).
* sich eine Funktion verändern lässt, wenn man einen Reglers in einem bestimmten Bereich bewegt (<code>range</code>).
* zum Nutzen einer bestimmten Funktion ein anderer DMX-Kanal auf einen vorgegeben DMX-Wert gesetzt werden muss (<code>supporthandler</code>).
* zum Nutzen einer bestimmten Funktion ein anderer DMX-Kanal auf einen vorgegeben DMX-Wert gesetzt werden muss (wie zum Beispiel der <code>supporthandler</code>


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 <code>dimmer</code> der Fall ist, können die Funktionselemente komplett entfallen. Besitzt eine Funktion entweder keine Standardimplementierung oder man muss davon abweichen, kommen die Funktionselemente <code>step</code> oder <code>range</code> mehr oder minder verpflichtend zum Einsatz.
Hinzu kommen noch verschiedene ergänzende Attribute innerhalb der Funktionselemente, die je nach Funktion auch Pflicht sein können:


Funktionselemente wie zum Beispiel der <code>supporthandler</code> 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.
{| class="wikitable toptextcells"
|- class="hintergrundfarbe6"
! Attribut !! Beschreibung !! Beispiele für Werte
|-
| <code>type</code> || Information, wie die Angaben verarbeitet werden sollen || Definuert bei der Strobe-Funktion den Strobe-Modus an
|-
| <code>range</code> || Angabe des Aktionsbereichs für eine Funktion || Schwenkbereich für die Pan oder Tilt-Achse
|-
| <code>mindmx</code> || DMX-Wert, wo der minimale Wert für eine Funktion gesetzt wird || DMX-Wert um die geringste Drehgeschwindigkeit für die Goborotation zu setzen
|-
| <code>maxdmx</code> || DMX-Wert, wo der maximale Wert für eine Funktion gesetzt wird || DMX-Wert, um die höchste Drehgeschwindigkeit für die Goborotation zu setzen
|-
| <code>minval</code> || Minimaler realer Wert für eine Funktion || Minimale Strobe-Frequenz oder Drehgeschwindigkeit für die Goborotation eines Gerät
|-
| <code>maxval</code> || Maximaler realer Wert für eine Funktion || Maximale Strobe-Frequenz oder Drehgeschwindigkeit für die Goborotation eines Gerät
|-
| <code>caption</code> || Beschreibung || Name einer Farbe auf dem Farbrad
|-
| <code>handler</code> || Information zur Arbeitsweise der entsprechenden Defintion bzw. Verweis zu einer weiteren, abhängigen Angabe an anderer Stelle im DDF, wenn zum Ausführen einer Funktion ein anderer Wertebereich auf dem gleichen DMX-Kanal aufgerufen werden muss || Typische Werte sind <code>goboindex</code>, <code>goborotation</code>, <code>goboshake</code>, wenn diese Funktionen auf dem gleichen DMX-Kanal liegen wie das Gobo selbst, jedoch der nachfolgende Wertebereichg aufgerufen werden muss
|}
{{Manual Box | de | Important | Ob die genannten Funktionselemente und entsprechende Attribute benötigt werden, hängt von der jeweiligen Funktion ab. Hier müssen die Angaben und Beispiele zu den jeweiligen Funktionen beachtet werden.}}
 
Existiert bereits eine Standardimplementierung direkt in DMXControl 3, wie es zum Beispiel beim <code>dimmer</code> der Fall ist, können Funktionselemente oder auch verschiedene Attribute entfallen. Besitzt eine Funktion entweder keine Standardimplementierung oder man muss davon abweichen, kommen die Funktionselemente <code>step</code> oder <code>range</code> mit verschiedenen Attributen mehr oder minder verpflichtend zum Einsatz.
 
Verschiedene Attribute für Funktionselemente wie zum Beispiel der <code>caption</code> oder <code>handler</code> 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 ==
== Benötigte Funktionselemente ==
Zeile 125: Zeile 148:
* der minimale und maximale Abstrahlwinkel des Zooms
* 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 [[DDF-Syntax_Gobo_DMXC3#Basis-Funktionen|Goborad]] zu finden. Eine übersichtlichere Konstellation zeigt dagegen das folgende Beispiel für die Strobefrequenz, wo beim niedrigsten DMX-Wert <code>0</code> auch die geringste Strobefrequenz von <code>0,5</code> Hz ausgegeben wird.
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 [[DDF-Syntax_Gobo_DMXC3#Basis-Funktionen|Goborad]] zu finden. Eine übersichtlichere Konstellation zeigt dagegen das folgende Beispiel für die Strobefrequenz, wo beim niedrigsten DMX-Wert {{Manual Value | DMX value | 0}} auch die geringste Strobefrequenz von {{Manual Value | | 0,5 Hz}} ausgegeben wird.


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Zeile 133: Zeile 156:
== Optionale Funktionselemente ==
== Optionale Funktionselemente ==
=== <code>supporthandler</code>: Werteabhängige Steuerung von DMX-Kanälen ===
=== <code>supporthandler</code>: 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 {{Manual Value | DMX value | 0}} bis {{Manual Value | DMX value | 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 <code>supporthandler</code>. 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 <code>supporthandler</code> ist eine weitere Zeile innerhalb des Elements <code>goboindex</code>, 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.
<syntaxhighlight lang="xml"><goboindex dmxchannel="2"></syntaxhighlight>
Diese Implementierung entspricht dabei der normalen Implementierung ohne die Ergänzung durch den <code>supporthandler</code>. Durch die Angabe der direkt nachfolgenden Zeile
<syntaxhighlight lang="xml"><support dmxchannel="1" name="goboindex" /></syntaxhighlight>
wird definiert, dass die Umschaltung der Funktion auf DMX-Kanal {{Manual Value | DMX channel | 2}} erfolgt. Das zugehörige Schlüsselwort lautet hier ebenfalls <code>goboindex</code>, 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 <code>supporthandler</code> arbeitet. Die Zeile unterscheidet sich nur dahingehend, dass für <code>mindmx</code> und <code>maxdmx</code> der angegebene Wertebereich des DMX-Kanals erfolgt, welcher den Wert festlegt. Des weiteren schließt man die Zeile durch <code>/></code>nicht ab, sondern lässt diese offen.
<syntaxhighlight lang="xml"><range range="360" mindmx="0" maxdmx="255" minval="0" maxval="360" ></syntaxhighlight>
In der nachfolgenden Zeile, die ein untergeordnetes Element zum <code>range</code>-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 <code>mindmx</code> und <code>maxdmx</code>, erhält diese Zeile den zweiten Teil des <code>supporthandler</code>. Dieser besteht aus dem Attribut <code>handler</code> und als Wert dem Schlüsselwort, welches man zuvor gewählt hat. Hier ist es das Schlüsselwort <code>goboindex</code>, welches man mit dem Präfix <code>support-</code> als Wert hinterlegt. Damit sind alle Definitionen innerhalb dieser Zeile abgeschlossen.
<syntaxhighlight lang="xml"><step handler="support-goboindex" mindmx="0" maxdmx="15" /></syntaxhighlight>
{{Manual Box | de | Important | 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.
{{DMXC3 Manual-Tableheader DDF-Code examples | de }}
| Goboindizierung
| <syntaxhighlight lang="xml">
<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" />
</syntaxhighlight>
Goborad auf DMX-Kanal {{Manual Value | DMX channel | 1}}, Goboindizierung auf DMX-Kanal {{Manual Value | DMX channel | 3}}, Auswahl des Modus "Goboindizierung" über DMX-Kanal {{Manual Value | DMX channel | 2}}:
* Aktivierung der Goboindizierung bei einem DMX-Wert auf DMX-Kanal {{Manual Value | DMX channel | 2}} zwischen {{Manual Value | DMX value | 0}} und {{Manual Value | DMX value | 15}}. Positionierung / Ausrichtung des Gobos über DMX-Kanal {{Manual Value | DMX channel | 3}} in einem Winkel zwischen {{Manual Value | | 0°}} bei DMX-Wert {{Manual Value | DMX value | 0}} und {{Manual Value | | 360°}} bei DMX-Wert {{Manual Value | DMX value | 255}}.
|}
''Weitere Beispiele für die Nutzung des <code>supporthandler</code> sind in den Artikeln zum '''[[Color (DDF-Syntax) DMXC3#Farbrad|Farbrad]]''' und zum '''[[Gobo (DDF-Syntax) DMXC3#Goborad|Goborad]]''' zu finden.''


[[en: Function elements (DDF-Syntax) DMXC3]]
[[Kategorie: DDF DMXControl 3]]
[[Kategorie: DDF DMXControl 3]]

Aktuelle Version vom 7. August 2025, 12:32 Uhr

Blockdevice.png Artikel beschreibt
DMXControl 3.3.1
Stand: 07.08.2025
Funktionselemente (DDF-Syntax) DMXC3
Arrow back.png Grundaufbau der DDFs
Grundregeln der DDF-Erstellung Arrow forw.png
Inhaltsverzeichnis
Teil 1: Grundlagen
Teil 2: Funktionen
Teil 3: Procederes
Teil 4: Beispiele


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.

Wann und wo welche der nachfolgend beschriebenen Funktionselemente mit ihren verschiedenen Attributen und Werten verwendet werden müssen bzw. dürfen, ist immer im Kontext der jeweiligen Funktion beschrieben. In diesem Artikel erfolgt nur die grundlegende Auflistung der vorhandenen Funktionselemente und eine allgemeine Beschreibung deren Arbeitsweise.


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ösung
  • finedmxchannel für 16-bit-Auflösung
  • ultradmxchannel für 24-bit-Auflösung
  • ultrafinedmxchannel 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 defaultval ein DMX-Wert von 63 ausgegeben.

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 (wie zum Beispiel der supporthandler

Hinzu kommen noch verschiedene ergänzende Attribute innerhalb der Funktionselemente, die je nach Funktion auch Pflicht sein können:

Attribut Beschreibung Beispiele für Werte
type Information, wie die Angaben verarbeitet werden sollen Definuert bei der Strobe-Funktion den Strobe-Modus an
range Angabe des Aktionsbereichs für eine Funktion Schwenkbereich für die Pan oder Tilt-Achse
mindmx DMX-Wert, wo der minimale Wert für eine Funktion gesetzt wird DMX-Wert um die geringste Drehgeschwindigkeit für die Goborotation zu setzen
maxdmx DMX-Wert, wo der maximale Wert für eine Funktion gesetzt wird DMX-Wert, um die höchste Drehgeschwindigkeit für die Goborotation zu setzen
minval Minimaler realer Wert für eine Funktion Minimale Strobe-Frequenz oder Drehgeschwindigkeit für die Goborotation eines Gerät
maxval Maximaler realer Wert für eine Funktion Maximale Strobe-Frequenz oder Drehgeschwindigkeit für die Goborotation eines Gerät
caption Beschreibung Name einer Farbe auf dem Farbrad
handler Information zur Arbeitsweise der entsprechenden Defintion bzw. Verweis zu einer weiteren, abhängigen Angabe an anderer Stelle im DDF, wenn zum Ausführen einer Funktion ein anderer Wertebereich auf dem gleichen DMX-Kanal aufgerufen werden muss Typische Werte sind goboindex, goborotation, goboshake, wenn diese Funktionen auf dem gleichen DMX-Kanal liegen wie das Gobo selbst, jedoch der nachfolgende Wertebereichg aufgerufen werden muss
Wichtiger Hinweis Ob die genannten Funktionselemente und entsprechende Attribute benötigt werden, hängt von der jeweiligen Funktion ab. Hier müssen die Angaben und Beispiele zu den jeweiligen Funktionen beachtet werden.

Existiert bereits eine Standardimplementierung direkt in DMXControl 3, wie es zum Beispiel beim dimmer der Fall ist, können Funktionselemente oder auch verschiedene Attribute entfallen. Besitzt eine Funktion entweder keine Standardimplementierung oder man muss davon abweichen, kommen die Funktionselemente step oder range mit verschiedenen Attributen mehr oder minder verpflichtend zum Einsatz.

Verschiedene Attribute für Funktionselemente wie zum Beispiel der caption oder handler 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" />


Wichtiger Hinweis 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:

  • Aktivierung der Goboindizierung bei einem DMX-Wert auf DMX-Kanal 2 zwischen 0 und 15. Positionierung / Ausrichtung des Gobos über DMX-Kanal 3 in einem Winkel zwischen bei DMX-Wert 0 und 360° bei DMX-Wert 255.

Weitere Beispiele für die Nutzung des supporthandler sind in den Artikeln zum Farbrad und zum Goborad zu finden.