DDF-Tutorial Moving Head DMXC3: Unterschied zwischen den Versionen

Aus Deutsches DMXC-Wiki
Zur Navigation springen Zur Suche springen
K
(Code-Highlighting im Fließtext hinzugefügt und Bearbeitungsvermerk entfernt)
Zeile 1: Zeile 1:
{{Kapitelüberschrift|Version=DMXControl 3.1.2}} {{Inuse}}
+
{{Kapitelüberschrift|Version=DMXControl 3.1.2}}
  
  
Zeile 10: Zeile 10:
  
  
=Einstieg=
 
 
Dieses dritte Beispiel zeigt euch nun, wie ihr das DDF für einen einfachen Moving Head erstellt. Als Vorlage dient hier der Showtec Indigo 150 LED, der teilweise auch unter anderen Marken vertrieben wurde. Von den Funktionen her ist dieser Moving Head relativ unspektakulär, aber dafür umso besser geeignet, euch einen guten Einstieg zu vermitteln. Denn dieser Funktionsumfang ist bei vielen Einsteigergeräten zu finden, sodass sich dieses Tutorial recht schnell von euch auf ähnliche Geräte adaptieren lässt.
 
Dieses dritte Beispiel zeigt euch nun, wie ihr das DDF für einen einfachen Moving Head erstellt. Als Vorlage dient hier der Showtec Indigo 150 LED, der teilweise auch unter anderen Marken vertrieben wurde. Von den Funktionen her ist dieser Moving Head relativ unspektakulär, aber dafür umso besser geeignet, euch einen guten Einstieg zu vermitteln. Denn dieser Funktionsumfang ist bei vielen Einsteigergeräten zu finden, sodass sich dieses Tutorial recht schnell von euch auf ähnliche Geräte adaptieren lässt.
 
Bitte bedenkt aber, dass gerade Moving Heads und Scanner zu den komplexesten Geräten gehören, die auch viele Informationen im DDF für eine ordnungsgemäße Ansteuerung benötigen. Wenn ihr also ein entsprechendes Gerät mit vielen Funktionen vor euch habt, schaut am besten in die Beschreibung der einzelnen Funktionen mit der zugehörigen Syntax.
 
Bitte bedenkt aber, dass gerade Moving Heads und Scanner zu den komplexesten Geräten gehören, die auch viele Informationen im DDF für eine ordnungsgemäße Ansteuerung benötigen. Wenn ihr also ein entsprechendes Gerät mit vielen Funktionen vor euch habt, schaut am besten in die Beschreibung der einzelnen Funktionen mit der zugehörigen Syntax.
Zeile 73: Zeile 72:
 
</source>
 
</source>
  
Im Basisteil geben wir dieses Mal auch an, dass das DDF für die Programmversion 3.1.2 erstellt ist und auf Grund von mehreren Anpassungen im Vorfeld bei der Version 1.2 steht.
+
Im Basisteil geben wir dieses Mal auch an, dass das DDF für die Programmversion <code>3.1.2</code> erstellt ist und auf Grund von mehreren Anpassungen im Vorfeld bei der Version <code>1.2</code> steht.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 80: Zeile 79:
  
 
== Informationsteil ==
 
== Informationsteil ==
Die Angaben im Informationsteil werden wie gehabt hinterlegt. Hier ist es aber sinnvoll, dass du das mode-Element trotzdem ausfüllst, selbst wenn wir hier das DDF nur für den 12-Kanal-Modus programmieren. Sollte später jemand anderes noch das DDF für den 9-Kanal-Modus, lassen sich später beide DDFs einfacher auseinanderhalten.
+
Die Angaben im Informationsteil werden wie gehabt hinterlegt. Hier ist es aber sinnvoll, dass du das <code>mode</code>-Element trotzdem ausfüllst, selbst wenn wir hier das DDF nur für den 12-Kanal-Modus programmieren. Sollte später jemand anderes noch das DDF für den 9-Kanal-Modus, lassen sich später beide DDFs einfacher auseinanderhalten.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 87: Zeile 86:
 
     <vendor>Showtec</vendor>
 
     <vendor>Showtec</vendor>
 
     <author>Stefan Kistner</author>
 
     <author>Stefan Kistner</author>
 +
    <mode>12 Channel</mode>
 
   </information>
 
   </information>
 
</source>
 
</source>
Zeile 92: Zeile 92:
 
== Funktionsteil ==
 
== Funktionsteil ==
 
=== Pan- und Tilt-Kanäle ===
 
=== Pan- und Tilt-Kanäle ===
Die Kanäle für die Pan- und Tilt-Bewegung werden allesamt in dem position-Element zusammengefasst. Die Angabe der DMX-Kanäle erfolgt aber erst in den untergeordneten pan- bzw. tilt-Elementen. Da der Moving Head bei beiden Bewegungsachsen mit 16 bit auflöst, was auch gerne als Pan fine und Tilt fine bezeichnet wird, definieren wir den zusätzlichen DMX-Kanal für den 16-bit-Anteil der Bewegung mit dem zusätzlichen Attribut finedmxchannel, welches dem bereits bekannten Attribut dmxchannel folgt. Neben der Angabe der DMX-Kanäle müssen bei dem position-Element auch die jeweiligen Schwenkbereiche von 540 bzw. 270 Grad für beide Bewegungsachsen hinterlegt werden. Ohne diese Angaben kann die HAL mit dem Moving Head nicht arbeiten.
+
Die Kanäle für die Pan- und Tilt-Bewegung werden allesamt in dem <code>position</code>-Element zusammengefasst. Die Angabe der DMX-Kanäle erfolgt aber erst in den untergeordneten <code>pan</code>- bzw. <code>tilt</code>-Elementen. Da der Moving Head bei beiden Bewegungsachsen mit 16 bit auflöst, was auch gerne als Pan fine und Tilt fine bezeichnet wird, definieren wir den zusätzlichen DMX-Kanal für den 16-bit-Anteil der Bewegung mit dem zusätzlichen Attribut <code>finedmxchannel</code>, welches dem bereits bekannten Attribut <code>dmxchannel</code> folgt. Neben der Angabe der DMX-Kanäle müssen bei dem <code>position</code>-Element auch die jeweiligen Schwenkbereiche von <code>540</code> bzw. <code>270</code> Grad für beide Bewegungsachsen hinterlegt werden. Ohne diese Angaben kann die HAL mit dem Moving Head nicht arbeiten.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 107: Zeile 107:
  
 
=== Bewegungsgeschwindigkeit für Pan und Tilt ===
 
=== Bewegungsgeschwindigkeit für Pan und Tilt ===
Um die Bewegungsgeschwindigkeit für die Pan- und Tilt-Bewegung im DDF zu hinterlegen, musst du nur darauf achten, bei welchem DMX-Wert der Moving Head die schnellste Bewegungsgeschwindigkeit besitzt und welcher DMX-Wert für die langsamste Bewegungsgeschwindigkeit eingestellt werden muss. DMXControl setzt diesen Wert standardmäßig auf 100%, sodass der zugehörige Wert für maxval=“100“ bei diesem Moving Head maxdmx=“0“ lautet. Daraus leiten sich die Werte für minval und mindmx ab.
+
Um die Bewegungsgeschwindigkeit für die Pan- und Tilt-Bewegung im DDF zu hinterlegen, musst du nur darauf achten, bei welchem DMX-Wert der Moving Head die schnellste Bewegungsgeschwindigkeit besitzt und welcher DMX-Wert für die langsamste Bewegungsgeschwindigkeit eingestellt werden muss. DMXControl setzt diesen Wert standardmäßig auf 100%, sodass der zugehörige Wert für <code>maxval=“100“</code> bei diesem Moving Head <code>maxdmx=“0“</code> lautet. Daraus leiten sich die Werte für <code>minval</code> und <code>mindmx</code> ab.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 116: Zeile 116:
  
 
=== Farbrad ===
 
=== Farbrad ===
Das Programmieren des Farbrads teilen wir an dieser Stelle in zwei Teile auf. Im ersten Teil hinterlegen wir im DDF die Farben, welches in der Regel Fleißarbeit ist. Das Schema ist bei allen step aber das gleiche: jedem DMX-Wertebereich ordnest du jeweils im Attribut val den zugehörigen Farbewert im HEX-Wert zu und gibt im Attribut caption ein möglichst passenden Namen in englischer Sprache an. Solltest du nicht sicher sein, wie der HEX-Wert für die verschiedenen Farben lautet, suche im Internet am besten unter dem Stichwort „RGB zu HEX“ nach entsprechenden Tools. Bei vielen Tools ist auch ein Farbkreis mit von der Partie, sodass du die Farbe hier live auswählen kannst.
+
Das Programmieren des Farbrads teilen wir an dieser Stelle in zwei Teile auf. Im ersten Teil hinterlegen wir im DDF die Farben, welches in der Regel Fleißarbeit ist. Das Schema ist bei allen <code>step</code> aber das gleiche: jedem DMX-Wertebereich ordnest du jeweils im Attribut <code>val</code> den zugehörigen Farbewert im HEX-Wert zu und gibt im Attribut <code>caption</code> ein möglichst passenden Namen in englischer Sprache an. Solltest du nicht sicher sein, wie der HEX-Wert für die verschiedenen Farben lautet, suche im Internet am besten unter dem Stichwort „RGB zu HEX“ nach entsprechenden Tools. Bei vielen Tools ist auch ein Farbkreis mit von der Partie, sodass du die Farbe hier live auswählen kannst.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 132: Zeile 132:
 
</source>
 
</source>
  
Im zweiten Teil widmen wir uns der kontinuierlichen Drehung des Farbrads. Nachdem alle Farben eingefügt sind, erstellst das untergeordnete Element wheelrotation. Dort gibst du unter type mit dem Wert cw an, dass sich das Farbrad dreht in diesem Fall im Uhrzeigersinn dreht und definierst die zugehörigen Werte den DMX-Wert für die minimale Drehzahl sowie den DMX-Wert für die maximale Drehzahl. Da dieser Moving Head nur eine Richtung für die kontinuierliche Drehung des Farbrads unterstützt, folgen in dem Element wheelrotation keine weiteren Angaben.
+
Im zweiten Teil widmen wir uns der kontinuierlichen Drehung des Farbrads. Nachdem alle Farben eingefügt sind, erstellst das untergeordnete Element <code>wheelrotation</code>. Dort gibst du unter <code>type</code> mit dem Wert <code>cw</code> an, dass sich das Farbrad dreht in diesem Fall im Uhrzeigersinn dreht und definierst die zugehörigen Werte den DMX-Wert für die minimale Drehzahl sowie den DMX-Wert für die maximale Drehzahl. Da dieser Moving Head nur eine Richtung für die kontinuierliche Drehung des Farbrads unterstützt, folgen in dem Element <code>wheelrotation</code> keine weiteren Angaben.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 143: Zeile 143:
 
=== Goborad ===
 
=== Goborad ===
 
Das Goborad lässt sich auf ähnliche Weise programmieren, wie das Farbrad zuvor. Allerdings musst du hier genau drauf achten, welche Funktionen du bei deinem Moving Head bei den Gobos hast und wie du die einstellen musst.
 
Das Goborad lässt sich auf ähnliche Weise programmieren, wie das Farbrad zuvor. Allerdings musst du hier genau drauf achten, welche Funktionen du bei deinem Moving Head bei den Gobos hast und wie du die einstellen musst.
Beim „wie einstellen“ gibt es nämlich verschiedene Varianten. Folgende Varianten werden von DMXControl 3 aktuell nativ unterstützt, sodass du diese direkt und auf einheitliche Weise über die GUI ansprechen bzw. aufrufen kannst. Die Auflistung bezieht sich dabei aus übersichtsgründen nur auf die Goborotation, für Goboshake und Goboindizierung gilt dies gleichermaßen. Die detaillierte Beschreibung aller Varianten findest du in der Funktionsbeschreibung für Gobo.
+
Beim „wie einstellen“ gibt es nämlich verschiedene Varianten. Folgende Varianten werden von DMXControl 3 aktuell nativ unterstützt, sodass du diese direkt und auf einheitliche Weise über die GUI ansprechen bzw. aufrufen kannst. Die Auflistung bezieht sich dabei aus Übersichtsgründen nur auf die Goborotation, für Goboshake und Goboindizierung gilt dies gleichermaßen. Die detaillierte Beschreibung aller Varianten findest du in der Funktionsbeschreibung für Gobo.
 
* Drehgeschwindigkeit und -richtung auf gleichem DMX-Kanal mit entsprechender Unterteilung der einzelnen Wertebereiche der Gobos.
 
* Drehgeschwindigkeit und -richtung auf gleichem DMX-Kanal mit entsprechender Unterteilung der einzelnen Wertebereiche der Gobos.
 
* Zusätzlicher DMX-Kanal für Drehgeschwindigkeit und -richtung.
 
* Zusätzlicher DMX-Kanal für Drehgeschwindigkeit und -richtung.
 
* Auswahl des Gobos auf einem ersten DMX-Kanal, Festlegung der Drehrichtung auf einem zweiten DMX-Kanal und Einstellen der Drehgeschwindigkeit auf einem dritten DMX-Kanal.
 
* Auswahl des Gobos auf einem ersten DMX-Kanal, Festlegung der Drehrichtung auf einem zweiten DMX-Kanal und Einstellen der Drehgeschwindigkeit auf einem dritten DMX-Kanal.
 
Aus der Kanalbelegung entnimmst du, dass du die Drehgeschwindigkeit und -drehrichtung über einen separaten DMX-Kanal festlegst, während die Frequenz für die Goboshake-Funktion auf demselben DMX-Kanal liegt wie die Auswahl der Gobos selbst.
 
Aus der Kanalbelegung entnimmst du, dass du die Drehgeschwindigkeit und -drehrichtung über einen separaten DMX-Kanal festlegst, während die Frequenz für die Goboshake-Funktion auf demselben DMX-Kanal liegt wie die Auswahl der Gobos selbst.
Beginnen wir also mit der Programmierung des DMX-Kanals für die Drehgeschwindigkeit und -drehrichtung. Dieser Teil ist eines von mehreren untergeordneten Elementen des gobo-Elements. Für die Drehung gibt es in DMXControl 3 das Element goborotation, dem du direkt auch einen dmxchannel zuordnest.
+
Beginnen wir also mit der Programmierung des DMX-Kanals für die Drehgeschwindigkeit und -drehrichtung. Dieser Teil ist eines von mehreren untergeordneten Elementen des <code>gobo</code>-Elements. Für die Drehung gibt es in DMXControl 3 das Element <code>goborotation</code>, dem du direkt auch einen <code>dmxchannel</code> zuordnest.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 155: Zeile 155:
 
</source>
 
</source>
  
Die folgenden drei Einträge definieren dann die jeweilige Drehrichtung und die zugehörige Geschwindigkeit sowie den DMX-Wertebereich, bei dem die Goborotation gestoppt wird. Wie du siehst, hinterlegst du die Angaben genauso wie für die kontinuierliche Drehung des Farbrads. Der Wert ccw steht hierbei für Drehung entgegen dem Uhrzeigersinn. Bei der Angabe für das Stoppen der Goborotation genügt nur eine einzige Angabe. Bei diesem Moving Head verwenden wir für den step mit dem stop-Wert den DMX-Wertebereich 0 bis 2.
+
Die folgenden drei Einträge definieren dann die jeweilige Drehrichtung und die zugehörige Geschwindigkeit sowie den DMX-Wertebereich, bei dem die Goborotation gestoppt wird. Wie du siehst, hinterlegst du die Angaben genauso wie für die kontinuierliche Drehung des Farbrads. Der Wert <code>ccw</code> steht hierbei für Drehung entgegen dem Uhrzeigersinn. Bei der Angabe für das Stoppen der Goborotation genügt nur eine einzige Angabe. Bei diesem Moving Head verwenden wir für den step mit dem <code>stop</code>-Wert den DMX-Wertebereich <code>0</code> bis <code>2</code>.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 170: Zeile 170:
 
</source>
 
</source>
  
Mit den folgenden Schritten hinterlegst du die verfügbaren Gobos in dem Moving Head. Neben den step-Elementen, wo der DMX-Wertebereiche für das entsprechende Gobo definiert, mit dem Attribut val das Icon verlinkt und beim Attribut caption eine beliebige Beschreibung des Gobos angeben ist, folgt in dem untergeordneten range-Element die Definition der Goboshake-Frequenz. Der wesentliche Unterschied zu den bisherigen Geschwindigkeitsangaben ist, dass du hier zusätzlich das Attribut handler mit dem Wert goboshake einfügen musst. Wie hier andere Konstellationen umgesetzt werden, findest du im Artikel Grundaufbau der DDFs bzw. in der vollständigen Erläuterung der Syntax für das Gobo. Die eingetragenen Werte bei minval und maxval für die minimale und maximale Goboshake-Frequenz sind hier im übrigen Schätzwerte, da diese nicht in der Kanalbelegung oder an anderer Stelle in der Bedienungsanleitung angegeben sind.
+
Mit den folgenden Schritten hinterlegst du die verfügbaren Gobos in dem Moving Head. Neben den <code>step</code>-Elementen, wo der DMX-Wertebereiche für das entsprechende Gobo definiert, mit dem Attribut <code>val</code> das Icon verlinkt und beim Attribut caption eine beliebige Beschreibung des Gobos angeben ist, folgt in dem untergeordneten <code>rang</code>e-Element die Definition der Goboshake-Frequenz. Der wesentliche Unterschied zu den bisherigen Geschwindigkeitsangaben ist, dass du hier zusätzlich das Attribut <code>handler</code> mit dem Wert <code>goboshake</code> einfügen musst. Wie hier andere Konstellationen umgesetzt werden, findest du im Artikel Grundaufbau der DDFs bzw. in der vollständigen Erläuterung der Syntax für das Gobo. Die eingetragenen Werte bei <code>minval</code> und <code>maxval</code> für die minimale und maximale Goboshake-Frequenz sind hier im übrigen Schätzwerte, da diese nicht in der Kanalbelegung oder an anderer Stelle in der Bedienungsanleitung angegeben sind.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 207: Zeile 207:
  
 
=== Prisma ===
 
=== Prisma ===
Das Prisma auf DMX-Kanal 9 lässt sich nach dem umfangreichen DMX-Kanal für Goborad und Goborotation mit sehr wenigen Zeilen in den XML-Code aufnehmen. Du musst hier nur zwei Zustände definieren: den Zustand ohne Prisma mit dem Wert open und den Zustand mit dem eingefahrenen Prisma mit dem Wert prism für das Attribut type. Auch hier kannst du beim Attribut caption eine kurze Beschreibung eintragen.
+
Das Prisma auf DMX-Kanal 9 lässt sich nach dem umfangreichen DMX-Kanal für Goborad und Goborotation mit sehr wenigen Zeilen in den XML-Code aufnehmen. Du musst hier nur zwei Zustände definieren: den Zustand ohne Prisma mit dem Wert open und den Zustand mit dem eingefahrenen Prisma mit dem Wert <code>prism</code> für das Attribut <code>type</code>. Auch hier kannst du beim Attribut <code>caption</code> eine kurze Beschreibung eintragen.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 224: Zeile 224:
  
 
=== Shutter ===
 
=== Shutter ===
In der Kanalbelegung findest du auf dem DMX-Kanal 11 sowohl die Strobefunktion als auch den Shutter. Dieser ist trotz der verbauten LED dem ursprünglich mechanisch arbeitendem Shutter nachempfunden, der für Moving Heads mit Entladungslampe benötigt wird. Im DDF musst du nur zwei der aufgeführten Zustände aufnehmen, damit die HAL die Funktion ordnungsgemäß umsetzen kann. Üblicherweise reicht es aus, wenn du für den Zustand open den niedrigsten der aufgeführten DMX-Wertebereiche übernimmst. Genauso verfährst du mit dem Zustand closed, sofern dieser mehrfach auf dem DMX-Kanal enthalten ist. Für beide Zustände gibt du dann nur über minval und maxval die DMX-Werte für den jeweiligen Zustand an.
+
In der Kanalbelegung findest du auf dem DMX-Kanal 11 sowohl die Strobefunktion als auch den Shutter. Dieser ist trotz der verbauten LED dem ursprünglich mechanisch arbeitendem Shutter nachempfunden, der für Moving Heads mit Entladungslampe benötigt wird. Im DDF musst du nur zwei der aufgeführten Zustände aufnehmen, damit die HAL die Funktion ordnungsgemäß umsetzen kann. Üblicherweise reicht es aus, wenn du für den Zustand <code>open</code> den niedrigsten der aufgeführten DMX-Wertebereiche übernimmst. Genauso verfährst du mit dem Zustand <code>closed</code>, sofern dieser mehrfach auf dem DMX-Kanal enthalten ist. Für beide Zustände gibt du dann nur über <code>minval</code> und <code>maxval</code> die DMX-Werte für den jeweiligen Zustand an.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 235: Zeile 235:
 
=== Strobe ===
 
=== Strobe ===
 
Wie bei der Funktion Shutter erwähnt, teilen sich der Shutter und die Strobe-Funktion meistens einen DMX-Kanal. Die HAL kann mit dieser Situation entsprechend umgehen, sodass du hier für zwei Funktionen bei dmxchannel die gleichen DMX-Kanäle einträgst.
 
Wie bei der Funktion Shutter erwähnt, teilen sich der Shutter und die Strobe-Funktion meistens einen DMX-Kanal. Die HAL kann mit dieser Situation entsprechend umgehen, sodass du hier für zwei Funktionen bei dmxchannel die gleichen DMX-Kanäle einträgst.
Du musst du neben den drei verschiedenen Strobe-Funktionen linear, pulse und random noch den Bereich angeben, in dem die Strobe-Funktion deaktiviert ist. Hier empfiehlt es sich, dass du einfach den gesamten DMX-Wertebereich für Shutter closed und open übernimmt. In diesem Fall ist es so, dass der Shutter ab DMX-Wert 0 geschlossen und bis DMX-Wert 63 offen ist.
+
Du musst du neben den drei verschiedenen Strobe-Funktionen <code>linear</code>, <code>pulse</code> und <code>random</code> noch den Bereich angeben, in dem die Strobe-Funktion deaktiviert ist. Hier empfiehlt es sich, dass du einfach den gesamten DMX-Wertebereich für Shutter <code>closed</code> und <code>open</code> übernimmt. In diesem Fall ist es so, dass der Shutter ab DMX-Wert <code>0</code> geschlossen und bis DMX-Wert <code>63</code> offen ist.
 
Die Angaben für die minimale und maximale Strobe-Frequenz ergeben sich übrigens wieder aus den technischen Daten zu diesem Moving Head. Diese Werte musst du auch zwingend eintragen, da sonst das DDF deinem Projekt nicht hinzugefügt werden kann.
 
Die Angaben für die minimale und maximale Strobe-Frequenz ergeben sich übrigens wieder aus den technischen Daten zu diesem Moving Head. Diese Werte musst du auch zwingend eintragen, da sonst das DDF deinem Projekt nicht hinzugefügt werden kann.
  
Zeile 248: Zeile 248:
  
 
=== Kanal für allgemeine Gerätefunktionen ===
 
=== Kanal für allgemeine Gerätefunktionen ===
Von dem DMX-Kanal 12 übernehmen wir nur Teile in ein rawstep-Element, um beim Auswählen des Moving Heads in der Stage View eine Auswahlliste zu erhalten, die sich später dann in einer Cue abspeichern lässt. Das Unterscheidungskriterium war hier, dass alle folgenden Einstellungen dauerhaft an den Moving Head gesendet, während Funktionen für den Reset nur kurzzeitig aufgerufen werden müssen. Für diese Funktionen erstellen wir im nächsten Abschnitt passende Procedures.
+
Von dem DMX-Kanal 12 übernehmen wir nur Teile in ein <code>rawstep</code>-Element, um beim Auswählen des Moving Heads in der Stage View eine Auswahlliste zu erhalten, die sich später dann in einer Cue abspeichern lässt. Das Unterscheidungskriterium war hier, dass alle folgenden Einstellungen dauerhaft an den Moving Head gesendet, während Funktionen für den Reset nur kurzzeitig aufgerufen werden müssen. Für diese Funktionen erstellen wir im nächsten Abschnitt passende Procedures.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 277: Zeile 277:
  
 
=== Geräte-Reset ===
 
=== Geräte-Reset ===
Für den Geräte-Reset verwenden wir ein Standard-Procedure von DMXControl 3. Dieses Element trägt die Bezeichnung reset. Der eigentliche Programmablauf beginnt dann in der folgenden Zeile, in der beim Attribut dmxchannel der DMX-Kanal 11 ausgewählt und mit value auf den Wert 200 gesetzt wird.
+
Für den Geräte-Reset verwenden wir ein Standard-Procedure von DMXControl 3. Dieses Element trägt die Bezeichnung <code>reset</code>. Der eigentliche Programmablauf beginnt dann in der folgenden Zeile, in der beim Attribut <code>dmxchannel</code> der DMX-Kanal <code>11</code> ausgewählt und mit <code>value</code> auf den Wert <code>200</code> gesetzt wird.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 285: Zeile 285:
 
</source>
 
</source>
  
Die zweite Zeile in diesem Procedure sagt aus, wie lange der DMX-Wert 200 gehalten werden soll. Hier tragen wir für das Attribut value den Wert 6000 ein. 6000 steht hier für 6000 Millisekunden, also 6 Sekunden.
+
Die zweite Zeile in diesem Procedure sagt aus, wie lange der DMX-Wert <code>200</code> gehalten werden soll. Hier tragen wir für das Attribut <code>value</code> den Wert <code>6000</code> ein. <code>6000</code> steht hier für 6000 Millisekunden, also 6 Sekunden.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 291: Zeile 291:
 
</source>
 
</source>
  
In der letzten Zeile wird der DMX-Kanal 11 wieder auf den Ausgangswert zurückgesetzt, wie er durch andere Funktionen in diesem DDF gesetzt wird. Mit </reset> wird das Procedure geschlossen und damit funktionsfähig.
+
In der letzten Zeile wird der DMX-Kanal 11 wieder auf den Ausgangswert zurückgesetzt, wie er durch andere Funktionen in diesem DDF gesetzt wird. Mit <code></reset></code> wird das Procedure geschlossen und damit funktionsfähig.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 299: Zeile 299:
  
 
=== Testprogramm ===
 
=== Testprogramm ===
Um ein eigenes Procedure zu erstellen, musst du nur zu Beginn etwas anders starten. Die Elemente deiner eigenem Procedures tragen allesamt den Namen procedure. Um auch in der GUI einen Namen für dein eigenes Procedure zu sehen, trägst du in dem Attribut name eine entsprechende Bezeichnung ein. In diesem Fall lautet der Name dieses Procedure Test.
+
Um ein eigenes Procedure zu erstellen, musst du nur zu Beginn etwas anders starten. Die Elemente deiner eigenem Procedures tragen allesamt den Namen <code>procedure</code>. Um auch in der GUI einen Namen für dein eigenes Procedure zu sehen, trägst du in dem Attribut <code>name</code> eine entsprechende Bezeichnung ein. In diesem Fall lautet der Name dieses Procedure <code>Test</code>.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 305: Zeile 305:
 
</source>
 
</source>
  
Alle folgenden Einträge erstellst analog zum ersten Procedure. Wir sprechen den DMX-Kanal 11 an und setzen für 20 Sekunden den DMX-Wert auf 160. Nach Ablauf dieser Zeit springt der DMX-Wert wieder auf den Ausgang-Wert zurück. Mit </procedure> wird dein eigenes Procedure geschlossen.
+
Alle folgenden Einträge erstellst analog zum ersten Procedure. Wir sprechen den DMX-Kanal 11 an und setzen für 20 Sekunden den DMX-Wert auf 160. Nach Ablauf dieser Zeit springt der DMX-Wert wieder auf den Ausgang-Wert zurück. Mit <code></procedure></code> wird dein eigenes Procedure geschlossen.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 315: Zeile 315:
  
 
=== Pan-Tilt-Blackout ===
 
=== Pan-Tilt-Blackout ===
Zum Aktivieren und Deaktivieren des Blackouts bei der Pan-Tilt-Bewegung erstellen wir insgesamt zwei Procedures. Nach dem zweiten Procedure schließt du nicht nur das Procedure selbst, sondern mit </procedures> im Anschluss auch den gesamten Procedures-Teil im DDF. Die letzte Zeile ist dann wie üblich </device>.
+
Zum Aktivieren und Deaktivieren des Blackouts bei der Pan-Tilt-Bewegung erstellen wir insgesamt zwei Procedures. Nach dem zweiten Procedure schließt du nicht nur das Procedure selbst, sondern mit <code></procedures></code> im Anschluss auch den gesamten Procedures-Teil im DDF. Die letzte Zeile ist dann wie üblich <code></device></code>.
  
 
<source lang="xml">
 
<source lang="xml">
Zeile 342: Zeile 342:
 
     <vendor>Showtec</vendor>
 
     <vendor>Showtec</vendor>
 
     <author>Stefan Kistner</author>
 
     <author>Stefan Kistner</author>
 +
    <mode>12 channel</mode>
 
   </information>
 
   </information>
 
   <functions>
 
   <functions>

Version vom 22. März 2019, 09:54 Uhr

Books.png DDF-Tutorial Moving Head DMXC3 Artikel beschreibt
DMXControl 3.1.2


Arrow back.png 4er-Bar
Inhaltsverzeichnis
Teil 1: Grundlagen
Teil 2: Funktionen
Teil 3: Procederes
Teil 4: Beispiele


Dieses dritte Beispiel zeigt euch nun, wie ihr das DDF für einen einfachen Moving Head erstellt. Als Vorlage dient hier der Showtec Indigo 150 LED, der teilweise auch unter anderen Marken vertrieben wurde. Von den Funktionen her ist dieser Moving Head relativ unspektakulär, aber dafür umso besser geeignet, euch einen guten Einstieg zu vermitteln. Denn dieser Funktionsumfang ist bei vielen Einsteigergeräten zu finden, sodass sich dieses Tutorial recht schnell von euch auf ähnliche Geräte adaptieren lässt. Bitte bedenkt aber, dass gerade Moving Heads und Scanner zu den komplexesten Geräten gehören, die auch viele Informationen im DDF für eine ordnungsgemäße Ansteuerung benötigen. Wenn ihr also ein entsprechendes Gerät mit vielen Funktionen vor euch habt, schaut am besten in die Beschreibung der einzelnen Funktionen mit der zugehörigen Syntax.


Ausgangsdaten: die Bedienungsanleitung

Kanalbelegung

Bei jedem Gerät sieht die Bedienungsanleitung jedes Mal anders aus. Für den Showtec Indigo 150 LED ist die Kanalbelegung diesmal eine Grafik, in der alle Funktionen aufgeführt sind. Diese Darstellung erinnert euch bestimmt an ein DMX-Pult und zeigt die Belegung für den 12-Kanal-Modus. Den kleineren 9-Kanal-Modus werden wir an dieser Stelle nicht weiter besprechen.

Technische Daten

Neben der Kanalbelegung findet ihr in dem Handbuch folgende technische Daten zu diesem Moving Head.

Kanalbelegung des Showtec Indigo 150 V2

Allgemeine Angaben

  • Modell: Showtec Indigo 150 LED
  • Eingangsspannung: 240V, 50 Hz (CE)
  • Leistungsaufnahme: 20W
  • Sicherung: T1,5A / 250V
  • Abmessungen 210x245x370mm (LxBxH)
  • Gewicht: 6,3kg

Bedienung und Steuerung

  • Ausgangsbelegung: Pin 1 Erde, Pin 2 (-), Pin 3 (+)
  • Geräteeinstellung und -adressierung: LED Display
  • DMX-Kanäle: 9 oder 12
  • Signaleingang: XLR-Stecker, 3-polig
  • Signalausgang: XLR-Buchse, 3-polig

Elektro-mechanische Effekte

  • Automatische Pan- / Tilt-Korrektur
  • Musiksteuerung
  • Goborad mit sieben rotierenden Gobos und offen
  • Goboshake-Funktion
  • Farbrad mit neun dichroitischen Farben plus weiß
  • Manueller Fokus
  • Lüftergekühlt
  • Abstrahlwinkel: 16°
  • Gobodurchmesser: 26mm
  • Bildurchmesser: 20mm
  • Shutter: 0 bis 15Hz
  • Dimmer: elektronischer Dimmer
  • Pan: 0° bis 530°
  • Tilt: 0° bis 270°
  • Bewegungsauflösung: 8bit oder 16bit
  • Steuerungsmöglichkeiten: DMX-512, Master / Slave, Sound-to-light
  • DMX-Modes: Basic (9 Kanäle) oder Erweitert (12 Kanäle)
  • Helles LCD-Display

Gobos

  • Farbrad: hitzebeständiges und verstärktes Glas, dichroitische Glasbeschichtung
  • Maximaltemperaturen: maximale Umgebungstemperatur 40°C, maximale Gehäusetemperatur 80°C
  • Kühlung: ein Lüfter im Gerät
  • Motoren: hochwertige Mikrokontroller-gesteuerte Stepper-Motoren


Programmierung: der XML-Code für den 12-Kanal-Modus

Wir beginnen wieder mit einer leeren XML-Datei in dem Texteditor eures Vertrauens. Auch in diesem Beispiel gilt, dass hier nur die Dinge ausführlicher erläutert werden, die in den vorherigen Beispielen nicht enthalten sind.

Basisteil

Dieses DDF beginnt standardmäßig wieder mit den folgenden Zeilen:

<?xml version="1.0" encoding="utf-8"?>

Im Basisteil geben wir dieses Mal auch an, dass das DDF für die Programmversion 3.1.2 erstellt ist und auf Grund von mehreren Anpassungen im Vorfeld bei der Version 1.2 steht.

<device image="Showtec Indigo 150.png" type="DMXDevice" dmxcversion="3.1.2" ddfversion="1.2">

Informationsteil

Die Angaben im Informationsteil werden wie gehabt hinterlegt. Hier ist es aber sinnvoll, dass du das mode-Element trotzdem ausfüllst, selbst wenn wir hier das DDF nur für den 12-Kanal-Modus programmieren. Sollte später jemand anderes noch das DDF für den 9-Kanal-Modus, lassen sich später beide DDFs einfacher auseinanderhalten.

  <information>
    <model>Indigo 150 LED</model>
    <vendor>Showtec</vendor>
    <author>Stefan Kistner</author>
    <mode>12 Channel</mode>
  </information>

Funktionsteil

Pan- und Tilt-Kanäle

Die Kanäle für die Pan- und Tilt-Bewegung werden allesamt in dem position-Element zusammengefasst. Die Angabe der DMX-Kanäle erfolgt aber erst in den untergeordneten pan- bzw. tilt-Elementen. Da der Moving Head bei beiden Bewegungsachsen mit 16 bit auflöst, was auch gerne als Pan fine und Tilt fine bezeichnet wird, definieren wir den zusätzlichen DMX-Kanal für den 16-bit-Anteil der Bewegung mit dem zusätzlichen Attribut finedmxchannel, welches dem bereits bekannten Attribut dmxchannel folgt. Neben der Angabe der DMX-Kanäle müssen bei dem position-Element auch die jeweiligen Schwenkbereiche von 540 bzw. 270 Grad für beide Bewegungsachsen hinterlegt werden. Ohne diese Angaben kann die HAL mit dem Moving Head nicht arbeiten.

  <functions>
    <position>
      <pan dmxchannel="0" finedmxchannel="1">
        <range range="540" />
      </pan>
      <tilt dmxchannel="2" finedmxchannel="3">
        <range range="270" />
      </tilt>
    </position>

Bewegungsgeschwindigkeit für Pan und Tilt

Um die Bewegungsgeschwindigkeit für die Pan- und Tilt-Bewegung im DDF zu hinterlegen, musst du nur darauf achten, bei welchem DMX-Wert der Moving Head die schnellste Bewegungsgeschwindigkeit besitzt und welcher DMX-Wert für die langsamste Bewegungsgeschwindigkeit eingestellt werden muss. DMXControl setzt diesen Wert standardmäßig auf 100%, sodass der zugehörige Wert für maxval=“100“ bei diesem Moving Head maxdmx=“0“ lautet. Daraus leiten sich die Werte für minval und mindmx ab.

    <ptspeed dmxchannel="4">
      <range type="linear" mindmx="255" maxdmx="0" minval="0" maxval="100" />
    </ptspeed>

Farbrad

Das Programmieren des Farbrads teilen wir an dieser Stelle in zwei Teile auf. Im ersten Teil hinterlegen wir im DDF die Farben, welches in der Regel Fleißarbeit ist. Das Schema ist bei allen step aber das gleiche: jedem DMX-Wertebereich ordnest du jeweils im Attribut val den zugehörigen Farbewert im HEX-Wert zu und gibt im Attribut caption ein möglichst passenden Namen in englischer Sprache an. Solltest du nicht sicher sein, wie der HEX-Wert für die verschiedenen Farben lautet, suche im Internet am besten unter dem Stichwort „RGB zu HEX“ nach entsprechenden Tools. Bei vielen Tools ist auch ein Farbkreis mit von der Partie, sodass du die Farbe hier live auswählen kannst.

    <colorwheel dmxchannel="5">
      <step type="color" val="#FFFFFF" mindmx="0" maxdmx="14" caption="White" />
      <step type="color" val="#FF0000" mindmx="15" maxdmx="29" caption="Red" />
      <step type="color" val="#FFFF00" mindmx="30" maxdmx="44" caption="Yellow" />
      <step type="color" val="#00FF00" mindmx="45" maxdmx="59" caption="Green" />
      <step type="color" val="#FF00FF" mindmx="60" maxdmx="74" caption="Pink" />
      <step type="color" val="#0000FF" mindmx="75" maxdmx="89" caption="Blue" />
      <step type="color" val="#FF7F00" mindmx="90" maxdmx="104" caption="Orange" />
      <step type="color" val="#B200CC" mindmx="105" maxdmx="119" caption="Purple" />
      <step type="color" val="#3399FF" mindmx="120" maxdmx="134" caption="Light Blue" />
      <step type="color" val="#99FF66" mindmx="135" maxdmx="149" caption="Light Green" />

Im zweiten Teil widmen wir uns der kontinuierlichen Drehung des Farbrads. Nachdem alle Farben eingefügt sind, erstellst das untergeordnete Element wheelrotation. Dort gibst du unter type mit dem Wert cw an, dass sich das Farbrad dreht in diesem Fall im Uhrzeigersinn dreht und definierst die zugehörigen Werte den DMX-Wert für die minimale Drehzahl sowie den DMX-Wert für die maximale Drehzahl. Da dieser Moving Head nur eine Richtung für die kontinuierliche Drehung des Farbrads unterstützt, folgen in dem Element wheelrotation keine weiteren Angaben.

      <wheelrotation>
        <range type="cw" mindmx="150" maxdmx="255" minval="0.1" maxval="8" />
      </wheelrotation>
    </colorwheel>

Goborad

Das Goborad lässt sich auf ähnliche Weise programmieren, wie das Farbrad zuvor. Allerdings musst du hier genau drauf achten, welche Funktionen du bei deinem Moving Head bei den Gobos hast und wie du die einstellen musst. Beim „wie einstellen“ gibt es nämlich verschiedene Varianten. Folgende Varianten werden von DMXControl 3 aktuell nativ unterstützt, sodass du diese direkt und auf einheitliche Weise über die GUI ansprechen bzw. aufrufen kannst. Die Auflistung bezieht sich dabei aus Übersichtsgründen nur auf die Goborotation, für Goboshake und Goboindizierung gilt dies gleichermaßen. Die detaillierte Beschreibung aller Varianten findest du in der Funktionsbeschreibung für Gobo.

  • Drehgeschwindigkeit und -richtung auf gleichem DMX-Kanal mit entsprechender Unterteilung der einzelnen Wertebereiche der Gobos.
  • Zusätzlicher DMX-Kanal für Drehgeschwindigkeit und -richtung.
  • Auswahl des Gobos auf einem ersten DMX-Kanal, Festlegung der Drehrichtung auf einem zweiten DMX-Kanal und Einstellen der Drehgeschwindigkeit auf einem dritten DMX-Kanal.

Aus der Kanalbelegung entnimmst du, dass du die Drehgeschwindigkeit und -drehrichtung über einen separaten DMX-Kanal festlegst, während die Frequenz für die Goboshake-Funktion auf demselben DMX-Kanal liegt wie die Auswahl der Gobos selbst. Beginnen wir also mit der Programmierung des DMX-Kanals für die Drehgeschwindigkeit und -drehrichtung. Dieser Teil ist eines von mehreren untergeordneten Elementen des gobo-Elements. Für die Drehung gibt es in DMXControl 3 das Element goborotation, dem du direkt auch einen dmxchannel zuordnest.

    <gobowheel dmxchannel="6">
      <goborotation dmxchannel="7">

Die folgenden drei Einträge definieren dann die jeweilige Drehrichtung und die zugehörige Geschwindigkeit sowie den DMX-Wertebereich, bei dem die Goborotation gestoppt wird. Wie du siehst, hinterlegst du die Angaben genauso wie für die kontinuierliche Drehung des Farbrads. Der Wert ccw steht hierbei für Drehung entgegen dem Uhrzeigersinn. Bei der Angabe für das Stoppen der Goborotation genügt nur eine einzige Angabe. Bei diesem Moving Head verwenden wir für den step mit dem stop-Wert den DMX-Wertebereich 0 bis 2.

        <step type="stop" mindmx="0" maxdmx="2" />
        <range type="cw" mindmx="3" maxdmx="128" minval="0.1" maxval="8" />
        <range type="ccw" mindmx="133" maxdmx="255" minval="0.1" maxval="8" />
      </goborotation>

Da die Frequenz für die Goboshake-Funktion auf dem gleichen DMX-Kanal liegt, wie das eigentliche Goborad selbst, musst du hier keine weiteren Angaben machen. Stattdessen fügst du dem XML-Code einfach die folgende Zeile hinzu. Damit weiß die HAL, dass die Goboshake-Funktion ebenfalls auf dem DMX-Kanal 6 liegt.

      <goboshake />

Mit den folgenden Schritten hinterlegst du die verfügbaren Gobos in dem Moving Head. Neben den step-Elementen, wo der DMX-Wertebereiche für das entsprechende Gobo definiert, mit dem Attribut val das Icon verlinkt und beim Attribut caption eine beliebige Beschreibung des Gobos angeben ist, folgt in dem untergeordneten range-Element die Definition der Goboshake-Frequenz. Der wesentliche Unterschied zu den bisherigen Geschwindigkeitsangaben ist, dass du hier zusätzlich das Attribut handler mit dem Wert goboshake einfügen musst. Wie hier andere Konstellationen umgesetzt werden, findest du im Artikel Grundaufbau der DDFs bzw. in der vollständigen Erläuterung der Syntax für das Gobo. Die eingetragenen Werte bei minval und maxval für die minimale und maximale Goboshake-Frequenz sind hier im übrigen Schätzwerte, da diese nicht in der Kanalbelegung oder an anderer Stelle in der Bedienungsanleitung angegeben sind.

      <step type="open" mindmx="0" maxdmx="9" caption="Open" />
      <step type="gobo" mindmx="10" maxdmx="19" val="Showtec Indigo 150 Gobo 1.png" caption="Splash">
        <range handler="goboshake" mindmx="200" maxdmx="219" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="20" maxdmx="29" val="Showtec Indigo 150 Gobo 2.png" caption="Sun">
        <range handler="goboshake" mindmx="180" maxdmx="199" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="30" maxdmx="39" val="Showtec Indigo 150 Gobo 3.png" caption="Star">
        <range handler="goboshake" mindmx="160" maxdmx="179" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="40" maxdmx="49" val="Showtec Indigo 150 Gobo 4.png" caption="Quadrangle">
        <range handler="goboshake" mindmx="140" maxdmx="159" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="50" maxdmx="59" val="Showtec Indigo 150 Gobo 5.png" caption="Line">
        <range handler="goboshake" mindmx="120" maxdmx="139" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="60" maxdmx="69" val="Showtec Indigo 150 Gobo 6.png" caption="Glass 1">
        <range handler="goboshake" mindmx="100" maxdmx="119" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="70" maxdmx="79" val="Showtec Indigo 150 Gobo 7.png" caption="Glass 2">
        <range handler="goboshake" mindmx="80" maxdmx="99" minval="0.1" maxval="3" />
      </step>

Die kontinuierliche Drehung des Goborads definierst du auf die gleiche Weise, wie du es bereits beim Farbrad gemacht hast.

      <wheelrotation>
        <range type="cw" mindmx="220" maxdmx="255" minval="0.1" maxval="2" />
      </wheelrotation>
    </gobowheel>

Prisma

Das Prisma auf DMX-Kanal 9 lässt sich nach dem umfangreichen DMX-Kanal für Goborad und Goborotation mit sehr wenigen Zeilen in den XML-Code aufnehmen. Du musst hier nur zwei Zustände definieren: den Zustand ohne Prisma mit dem Wert open und den Zustand mit dem eingefahrenen Prisma mit dem Wert prism für das Attribut type. Auch hier kannst du beim Attribut caption eine kurze Beschreibung eintragen.

    <prism dmxchannel="8">
      <step type="open" mindmx="0" maxdmx="127" caption="open" />
      <step type="prism" mindmx="128" maxdmx="255" caption="3-fach Primsa" />
    </prism>

Dimmer

Der Moving Head verfügt über einen Dimmerkanal ohne weitere Zusatzfunktionen, sodass du hier keine weiteren Angaben im DDF hinterlegen musst und auf die Standardwerte der HAL zurückgreifen kannst.

    <dimmer dmxchannel="9" />

Shutter

In der Kanalbelegung findest du auf dem DMX-Kanal 11 sowohl die Strobefunktion als auch den Shutter. Dieser ist trotz der verbauten LED dem ursprünglich mechanisch arbeitendem Shutter nachempfunden, der für Moving Heads mit Entladungslampe benötigt wird. Im DDF musst du nur zwei der aufgeführten Zustände aufnehmen, damit die HAL die Funktion ordnungsgemäß umsetzen kann. Üblicherweise reicht es aus, wenn du für den Zustand open den niedrigsten der aufgeführten DMX-Wertebereiche übernimmst. Genauso verfährst du mit dem Zustand closed, sofern dieser mehrfach auf dem DMX-Kanal enthalten ist. Für beide Zustände gibt du dann nur über minval und maxval die DMX-Werte für den jeweiligen Zustand an.

    <shutter dmxchannel="10">
      <step type="closed" mindmx="0" maxdmx="31" />
      <step type="open" mindmx="32" maxdmx="63" />
    </shutter>

Strobe

Wie bei der Funktion Shutter erwähnt, teilen sich der Shutter und die Strobe-Funktion meistens einen DMX-Kanal. Die HAL kann mit dieser Situation entsprechend umgehen, sodass du hier für zwei Funktionen bei dmxchannel die gleichen DMX-Kanäle einträgst. Du musst du neben den drei verschiedenen Strobe-Funktionen linear, pulse und random noch den Bereich angeben, in dem die Strobe-Funktion deaktiviert ist. Hier empfiehlt es sich, dass du einfach den gesamten DMX-Wertebereich für Shutter closed und open übernimmt. In diesem Fall ist es so, dass der Shutter ab DMX-Wert 0 geschlossen und bis DMX-Wert 63 offen ist. Die Angaben für die minimale und maximale Strobe-Frequenz ergeben sich übrigens wieder aus den technischen Daten zu diesem Moving Head. Diese Werte musst du auch zwingend eintragen, da sonst das DDF deinem Projekt nicht hinzugefügt werden kann.

    <strobe dmxchannel="10">
      <step type="open" mindmx="0" maxdmx="63" />
      <range type="linear" mindmx="64" maxdmx="95" minval="0.5" maxval="15" />
      <range type="pulse" mindmx="128" maxdmx="159" minval="0.5" maxval="15" />
      <range type="random" mindmx="192" maxdmx="223" minval="0.5" maxval="15" />
    </strobe>

Kanal für allgemeine Gerätefunktionen

Von dem DMX-Kanal 12 übernehmen wir nur Teile in ein rawstep-Element, um beim Auswählen des Moving Heads in der Stage View eine Auswahlliste zu erhalten, die sich später dann in einer Cue abspeichern lässt. Das Unterscheidungskriterium war hier, dass alle folgenden Einstellungen dauerhaft an den Moving Head gesendet, während Funktionen für den Reset nur kurzzeitig aufgerufen werden müssen. Für diese Funktionen erstellen wir im nächsten Abschnitt passende Procedures.

    <rawstep dmxchannel="11" name="Control">
      <step caption="No function" mindmx="0" maxdmx="19" />
      <step caption="Auto 1" mindmx="60" maxdmx="79" />
      <step caption="Auto 2" mindmx="80" maxdmx="99" />
      <step caption="Sound 1" mindmx="100" maxdmx="119" />
      <step caption="Sound 2" mindmx="120" maxdmx="139" />
    </rawstep>
  </functions>

Procedures

In diesem Beispiel haben wir es nun erstmals mit Procedures zu tun. Procedures setzt du immer dann ein, wenn du Funktionen deiner Geräte schnell ansteuern möchtest, die du für den Live-Betrieb (also die Lichtshow) am Ende nicht brauchst und deswegen auch in keiner Cuelist abspeicherst. Für diesen Moving Head richten wir vier verschiedene Procedures ein:

  • Procedure 1 zum Resetten des Moving Heads
  • Procedure 2 für das Starten des automatischen Testprogramms
  • Procedure 3 zum Aktivieren des Blackouts während der Pan- und Tilt-Bewegung
  • Procedure 4 zum Deaktivieren des Pan-Tilt-Blackouts

Das Angelegen der Procedures geht in DMXControl 3 auch um ein Vielfaches schnell und ist dabei auch weniger komplex, wenn du noch Procedures von DDFs für DMXControl 2 vor Augen hast. Bei DMXControl 3 besteht ein Standard-Procedure neben dem einrahmenden Element in der Regel nur aus drei weiteren Codezeilen. In diesen drei Codezeilen wird bestimmt,

  • welcher DMX-Kanal auf welchen DMX-Wert gesetzt,
  • wie lange der zuvor gesetzt DMX-Wert ausgegeben und
  • ob der DMX-Wert des zugehörigen DMX-Kanals wieder zurückgesetzt werden soll.

DMXControl 3 arbeitet die Befehle grundsätzlich in der Reihenfolge ab, wie sie im DDF hinterlegt sind. Somit ist es auch möglich, innerhalb eines Procedures weitere DMX-Kanäle anzusprechen und hier ebenfalls bestimmte DMX-Werte zu setzen. Dieser Punkt sei an dieser Stelle nur der Vollständigkeit erwähnt. Des Weiteren gibt es in DMXControl 3 Procedures für Standard-Funktionen, wie beispielsweise den Reset eines Geräts. Das erkennst du immer direkt an der Tag-Bezeichnung. Bei diesen Procedure ist die Beschreibung einheitlich hinterlegt und der Eintrag im Kontextmenü in der Stage View größtenteils auch mit einem Icon versehen. Du kannst dir aber auch eigene Procedures mit eigenen Namen anlegen. Wie du später sehen wirst, gibt es hier nur marginale Unterschiede du den Procedures für die Standard-Funktionen.

Geräte-Reset

Für den Geräte-Reset verwenden wir ein Standard-Procedure von DMXControl 3. Dieses Element trägt die Bezeichnung reset. Der eigentliche Programmablauf beginnt dann in der folgenden Zeile, in der beim Attribut dmxchannel der DMX-Kanal 11 ausgewählt und mit value auf den Wert 200 gesetzt wird.

  <procedures>
    <reset>
      <set dmxchannel="11" value="200" />

Die zweite Zeile in diesem Procedure sagt aus, wie lange der DMX-Wert 200 gehalten werden soll. Hier tragen wir für das Attribut value den Wert 6000 ein. 6000 steht hier für 6000 Millisekunden, also 6 Sekunden.

      <hold value="6000" />

In der letzten Zeile wird der DMX-Kanal 11 wieder auf den Ausgangswert zurückgesetzt, wie er durch andere Funktionen in diesem DDF gesetzt wird. Mit </reset> wird das Procedure geschlossen und damit funktionsfähig.

      <restore dmxchannel="11" />
    </reset>

Testprogramm

Um ein eigenes Procedure zu erstellen, musst du nur zu Beginn etwas anders starten. Die Elemente deiner eigenem Procedures tragen allesamt den Namen procedure. Um auch in der GUI einen Namen für dein eigenes Procedure zu sehen, trägst du in dem Attribut name eine entsprechende Bezeichnung ein. In diesem Fall lautet der Name dieses Procedure Test.

    <procedure name="Test">

Alle folgenden Einträge erstellst analog zum ersten Procedure. Wir sprechen den DMX-Kanal 11 an und setzen für 20 Sekunden den DMX-Wert auf 160. Nach Ablauf dieser Zeit springt der DMX-Wert wieder auf den Ausgang-Wert zurück. Mit </procedure> wird dein eigenes Procedure geschlossen.

      <set dmxchannel="11" value="160" />
      <hold value="20000" />
      <restore dmxchannel="11" />
    </procedure>

Pan-Tilt-Blackout

Zum Aktivieren und Deaktivieren des Blackouts bei der Pan-Tilt-Bewegung erstellen wir insgesamt zwei Procedures. Nach dem zweiten Procedure schließt du nicht nur das Procedure selbst, sondern mit </procedures> im Anschluss auch den gesamten Procedures-Teil im DDF. Die letzte Zeile ist dann wie üblich </device>.

    <procedure name="Pan-Tilt blackout on">
      <set dmxchannel="11" value="20" />
      <hold value="4500" />
      <restore dmxchannel="11" />
    </procedure>
    <procedure name="Pan-Tilt blackout off">
      <set dmxchannel="11" value="40" />
      <hold value="4500" />
      <restore dmxchannel="11" />
    </procedure>
  </procedures>
</device>

Ergebnis: das fertige DDF

Das komplette DDF für den Showtec Indigo 150 sieht wie folgt aus:

<?xml version="1.0" encoding="utf-8"?>
<device image="Showtec Indigo 150 V2.png" type="DMXDevice" dmxcversion="3.1.2" ddfversion="1.2">
  <information>
    <model>Indigo 150 V2</model>
    <vendor>Showtec</vendor>
    <author>Stefan Kistner</author>
    <mode>12 channel</mode>
  </information>
  <functions>
    <position>
      <pan dmxchannel="0" finedmxchannel="1">
        <range range="540" />
      </pan>
      <tilt dmxchannel="2" finedmxchannel="3">
        <range range="270" />
      </tilt>
    </position>
    <ptspeed dmxchannel="4">
      <range type="linear" mindmx="255" maxdmx="0" minval="0" maxval="100" />
    </ptspeed>
    <colorwheel dmxchannel="5">
      <step type="color" val="#FFFFFF" mindmx="0" maxdmx="14" caption="White" />
      <step type="color" val="#FF0000" mindmx="15" maxdmx="29" caption="Red" />
      <step type="color" val="#FFFF00" mindmx="30" maxdmx="44" caption="Yellow" />
      <step type="color" val="#00FF00" mindmx="45" maxdmx="59" caption="Green" />
      <step type="color" val="#FF00FF" mindmx="60" maxdmx="74" caption="Pink" />
      <step type="color" val="#0000FF" mindmx="75" maxdmx="89" caption="Blue" />
      <step type="color" val="#FF7F00" mindmx="90" maxdmx="104" caption="Orange" />
      <step type="color" val="#B200CC" mindmx="105" maxdmx="119" caption="Purple" />
      <step type="color" val="#3399FF" mindmx="120" maxdmx="134" caption="Light Blue" />
      <step type="color" val="#99FF66" mindmx="135" maxdmx="149" caption="Light Green" />
      <wheelrotation>
        <range type="cw" mindmx="150" maxdmx="255" minval="0.1" maxval="8" />
      </wheelrotation>
    </colorwheel>
    <gobowheel dmxchannel="6">
      <goborotation dmxchannel="7">
        <step type="stop" mindmx="0" maxdmx="2" />
        <range type="cw" mindmx="3" maxdmx="128" minval="0.1" maxval="8" />
        <range type="ccw" mindmx="133" maxdmx="255" minval="0.1" maxval="8" />
      </goborotation>
      <goboshake />
      <step type="open" mindmx="0" maxdmx="9" caption="Open" />
      <step type="gobo" mindmx="10" maxdmx="19" val="Showtec Indigo 150 Gobo 1.png" caption="Splash">
        <range handler="goboshake" mindmx="200" maxdmx="219" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="20" maxdmx="29" val="Showtec Indigo 150 Gobo 2.png" caption="Sun">
        <range handler="goboshake" mindmx="180" maxdmx="199" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="30" maxdmx="39" val="Showtec Indigo 150 Gobo 3.png" caption="Star">
        <range handler="goboshake" mindmx="160" maxdmx="179" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="40" maxdmx="49" val="Showtec Indigo 150 Gobo 4.png" caption="Quadrangle">
        <range handler="goboshake" mindmx="140" maxdmx="159" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="50" maxdmx="59" val="Showtec Indigo 150 Gobo 5.png" caption="Line">
        <range handler="goboshake" mindmx="120" maxdmx="139" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="60" maxdmx="69" val="Showtec Indigo 150 Gobo 6.png" caption="Glass 1">
        <range handler="goboshake" mindmx="100" maxdmx="119" minval="0.1" maxval="3" />
      </step>
      <step type="gobo" mindmx="70" maxdmx="79" val="Showtec Indigo 150 Gobo 7.png" caption="Glass 2">
        <range handler="goboshake" mindmx="80" maxdmx="99" minval="0.1" maxval="3" />
      </step>
      <wheelrotation>
        <range type="cw" mindmx="220" maxdmx="255" minval="0.1" maxval="2" />
      </wheelrotation>
    </gobowheel>
    <prism dmxchannel="8">
      <step type="open" mindmx="0" maxdmx="127" caption="open" />
      <step type="prism" mindmx="128" maxdmx="255" caption="3-fach Primsa" />
    </prism>
    <dimmer dmxchannel="9" />
    <shutter dmxchannel="10">
      <step type="closed" mindmx="0" maxdmx="31" />
      <step type="open" mindmx="32" maxdmx="63" />
    </shutter>
    <strobe dmxchannel="10">
      <step type="open" mindmx="0" maxdmx="63" />
      <range type="linear" mindmx="64" maxdmx="95" minval="0.5" maxval="15" />
      <range type="pulse" mindmx="128" maxdmx="159" minval="0.5" maxval="15" />
      <range type="random" mindmx="192" maxdmx="223" minval="0.5" maxval="15" />
    </strobe>
    <rawstep dmxchannel="11" name="Control">
      <step caption="No function" mindmx="0" maxdmx="19" />
      <step caption="Auto 1" mindmx="60" maxdmx="79" />
      <step caption="Auto 2" mindmx="80" maxdmx="99" />
      <step caption="Sound 1" mindmx="100" maxdmx="119" />
      <step caption="Sound 2" mindmx="120" maxdmx="139" />
    </rawstep>
  </functions>
  <procedures>
    <reset>
      <set dmxchannel="11" value="200" />
      <hold value="6000" />
      <restore dmxchannel="11" />
    </reset>
    <procedure name="Test">
      <set dmxchannel="11" value="160" />
      <hold value="20000" />
      <restore dmxchannel="11" />
    </procedure>
    <procedure name="Pan-Tilt blackout on">
      <set dmxchannel="11" value="20" />
      <hold value="4500" />
      <restore dmxchannel="11" />
    </procedure>
    <procedure name="Pan-Tilt blackout off">
      <set dmxchannel="11" value="40" />
      <hold value="4500" />
      <restore dmxchannel="11" />
    </procedure>
  </procedures>
</device>