DDF-Tutorial Moving Head DMXC3: Unterschied zwischen den Versionen
(Code-Highlighting im Fließtext hinzugefügt und Bearbeitungsvermerk entfernt) |
(Angaben zur elektrischen Leistungsaufnahme ergänzt) |
||
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | {{Kapitelüberschrift|Version=DMXControl 3. | + | {{Kapitelüberschrift|Version=DMXControl 3.2.3}} |
Zeile 10: | Zeile 10: | ||
− | 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. | + | [[Image:Showtec Indigo 150.png|thumb|300px]]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 68: | Zeile 68: | ||
Dieses DDF beginnt standardmäßig wieder mit den folgenden Zeilen: | Dieses DDF beginnt standardmäßig wieder mit den folgenden Zeilen: | ||
− | < | + | <syntaxhighlight lang="xml"> |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
− | </ | + | </syntaxhighlight> |
− | Im Basisteil geben wir dieses Mal auch an, dass das DDF für die Programmversion <code>3. | + | Im Basisteil geben wir dieses Mal auch an, dass das DDF für die Programmversion <code>3.2.3</code> erstellt ist und auf Grund von mehreren Anpassungen im Vorfeld bei der Version <code>1.2.0</code> steht. |
− | < | + | <syntaxhighlight lang="xml"> |
− | <device image="Showtec Indigo 150.png" type="DMXDevice" dmxcversion="3. | + | <device image="Showtec Indigo 150.png" type="DMXDevice" dmxcversion="3.2.3" ddfversion="1.2.0"> |
− | </ | + | </syntaxhighlight> |
== Informationsteil == | == Informationsteil == | ||
− | 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. | + | 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 erstellen, lassen sich später beide DDFs einfacher auseinanderhalten. |
− | < | + | <syntaxhighlight lang="xml"> |
<information> | <information> | ||
<model>Indigo 150 LED</model> | <model>Indigo 150 LED</model> | ||
Zeile 87: | Zeile 87: | ||
<author>Stefan Kistner</author> | <author>Stefan Kistner</author> | ||
<mode>12 Channel</mode> | <mode>12 Channel</mode> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Neben den Angaben zu Hersteller, Modellbezeichnung etc. tragen wir hier nun auch mal Werte zur elektrischen Leistungsaufnahme ein. Deswegen wird der Informationsteil nach dem <code>20</code>-Element noch nicht wieder geschlossen. Bei den Angaben zur elektrischen Leistungsaufnahme gibt es zwei verschiedene Einträge, die man im DDF entweder jeweils nur allein oder gemeinsam hinterlegen kann: | ||
+ | * <code>static</code>: Dies ist die elektrische Leistung, die ein Gerät immer verbraucht, sobald es eingeschaltet ist. Hierunter fällt nicht nur die grundlegende Leistungsaufnahme der Steuerelektronik. Zu diesem Eintrag zählt auch die Leistungsaufnahme von Geräten mit einer Entladungslampe, auch wenn man diese oftmals ferngesteuert ein- und ausschalten kann. Ein anderes Beispiel ist das Heizelement von Nebelmaschinen, welches zwar nicht dauerhaft läuft, aber trotzdem eine hohe elektrische Leistung benötigt. | ||
+ | * <code>dimmer</code>: Unter diese Kategorie versteht DMXControl 3 alles, wo sich die Leistungsaufnahme durch hoch- und runterschieben des Dimmer-Regelers bzw. durch das Anpassen des Werts für den Dimmer ändert. Das sind zum einen klassische Halogen-Leuchtmittel in PAR-Scheinwerfern. Aber hierunter fallen auf der anderen Seite auch nahezu sämtliche LED-Scheinwerfer und eben Moving-Heads mit einer LED als Leuchtmittel. Im Gegensatz zu den Moving-Heads mit Entladungslampe wird die Helligkeit bei LEDs elektronisch geregelt. | ||
+ | Insgesamt muss du aber zum Punkt elektrische Leistungsaufnahme wissen, dass dies nur als eine grobe Orientierungshilfe verstanden werden darf. Die tatsächlichen Leistungsaufnahmen können nochmals variieren und sind daher besser mit geeigneten Messgeräten zu prüfen, solltest du Wert auf genaue Werte legen. | ||
+ | |||
+ | Die elektrische Leistungsaufnahme ist ein Unterpunkt des Informationsteils und wird durch <code>electrical</code>-Element eingefasst. Darin befinden sich wie im aktuellen Beispiel beide zugehörigen Elemente: <code>static</code> und <code>dimmer</code>. Die elektrische Leistungsaufnahme lässt sich weitestegehend anhand des verbauten LED-Chips herleiten. Von daher tragen wir für <code>dimmer</code> den Wert <code>20</code> ein, also 20 W. Bei der Leistungsaufnahme für die Elektronik etc. im eingeschalteten Zustand gibt es keine genaue Angabe im Handbuch bzw. in den technischen Daten. Hier nehmen wir daher 10 W an und tragen für <code>static</code> entsprechend <code>10</code> ein. Nach diesen beiden Elementen wird sowohl das <code>electrical</code>-Element als auch das <code>information</code>-Element geschlossen. Damit ist der Informationsteil vollständig. | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <electrical> | ||
+ | <static>10</static> | ||
+ | <dimmer>20</dimmer> | ||
+ | </electrical> | ||
</information> | </information> | ||
− | </ | + | </syntaxhighlight> |
== Funktionsteil == | == Funktionsteil == | ||
Zeile 94: | Zeile 107: | ||
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<functions> | <functions> | ||
<position> | <position> | ||
Zeile 104: | Zeile 117: | ||
</tilt> | </tilt> | ||
</position> | </position> | ||
− | </ | + | </syntaxhighlight> |
=== 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 <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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<ptspeed dmxchannel="4"> | <ptspeed dmxchannel="4"> | ||
<range type="linear" mindmx="255" maxdmx="0" minval="0" maxval="100" /> | <range type="linear" mindmx="255" maxdmx="0" minval="0" maxval="100" /> | ||
</ptspeed> | </ptspeed> | ||
− | </ | + | </syntaxhighlight> |
=== 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 <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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<colorwheel dmxchannel="5"> | <colorwheel dmxchannel="5"> | ||
<step type="color" val="#FFFFFF" mindmx="0" maxdmx="14" caption="White" /> | <step type="color" val="#FFFFFF" mindmx="0" maxdmx="14" caption="White" /> | ||
Zeile 130: | Zeile 143: | ||
<step type="color" val="#3399FF" mindmx="120" maxdmx="134" caption="Light Blue" /> | <step type="color" val="#3399FF" mindmx="120" maxdmx="134" caption="Light Blue" /> | ||
<step type="color" val="#99FF66" mindmx="135" maxdmx="149" caption="Light Green" /> | <step type="color" val="#99FF66" mindmx="135" maxdmx="149" caption="Light Green" /> | ||
− | </ | + | </syntaxhighlight> |
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<wheelrotation> | <wheelrotation> | ||
<range type="cw" mindmx="150" maxdmx="255" minval="0.1" maxval="8" /> | <range type="cw" mindmx="150" maxdmx="255" minval="0.1" maxval="8" /> | ||
</wheelrotation> | </wheelrotation> | ||
</colorwheel> | </colorwheel> | ||
− | </ | + | </syntaxhighlight> |
=== Goborad === | === Goborad === | ||
Zeile 150: | Zeile 163: | ||
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<gobowheel dmxchannel="6"> | <gobowheel dmxchannel="6"> | ||
<goborotation dmxchannel="7"> | <goborotation dmxchannel="7"> | ||
− | </ | + | </syntaxhighlight> |
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>. | 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>. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<step type="stop" mindmx="0" maxdmx="2" /> | <step type="stop" mindmx="0" maxdmx="2" /> | ||
<range type="cw" mindmx="3" maxdmx="128" minval="0.1" maxval="8" /> | <range type="cw" mindmx="3" maxdmx="128" minval="0.1" maxval="8" /> | ||
<range type="ccw" mindmx="133" maxdmx="255" minval="0.1" maxval="8" /> | <range type="ccw" mindmx="133" maxdmx="255" minval="0.1" maxval="8" /> | ||
</goborotation> | </goborotation> | ||
− | </ | + | </syntaxhighlight> |
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<goboshake /> | <goboshake /> | ||
− | </ | + | </syntaxhighlight> |
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<step type="open" mindmx="0" maxdmx="9" caption="Open" /> | <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"> | <step type="gobo" mindmx="10" maxdmx="19" val="Showtec Indigo 150 Gobo 1.png" caption="Splash"> | ||
Zeile 195: | Zeile 208: | ||
<range handler="goboshake" mindmx="80" maxdmx="99" minval="0.1" maxval="3" /> | <range handler="goboshake" mindmx="80" maxdmx="99" minval="0.1" maxval="3" /> | ||
</step> | </step> | ||
− | </ | + | </syntaxhighlight> |
Die kontinuierliche Drehung des Goborads definierst du auf die gleiche Weise, wie du es bereits beim Farbrad gemacht hast. | Die kontinuierliche Drehung des Goborads definierst du auf die gleiche Weise, wie du es bereits beim Farbrad gemacht hast. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<wheelrotation> | <wheelrotation> | ||
<range type="cw" mindmx="220" maxdmx="255" minval="0.1" maxval="2" /> | <range type="cw" mindmx="220" maxdmx="255" minval="0.1" maxval="2" /> | ||
</wheelrotation> | </wheelrotation> | ||
</gobowheel> | </gobowheel> | ||
− | </ | + | </syntaxhighlight> |
=== 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 <code>prism</code> für das Attribut <code>type</code>. Auch hier kannst du beim Attribut <code>caption</code> 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<prism dmxchannel="8"> | <prism dmxchannel="8"> | ||
<step type="open" mindmx="0" maxdmx="127" caption="open" /> | <step type="open" mindmx="0" maxdmx="127" caption="open" /> | ||
<step type="prism" mindmx="128" maxdmx="255" caption="3-fach Primsa" /> | <step type="prism" mindmx="128" maxdmx="255" caption="3-fach Primsa" /> | ||
</prism> | </prism> | ||
− | </ | + | </syntaxhighlight> |
=== Dimmer === | === 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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<dimmer dmxchannel="9" /> | <dimmer dmxchannel="9" /> | ||
− | </ | + | </syntaxhighlight> |
=== 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 <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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<shutter dmxchannel="10"> | <shutter dmxchannel="10"> | ||
<step type="closed" mindmx="0" maxdmx="31" /> | <step type="closed" mindmx="0" maxdmx="31" /> | ||
<step type="open" mindmx="32" maxdmx="63" /> | <step type="open" mindmx="32" maxdmx="63" /> | ||
</shutter> | </shutter> | ||
− | </ | + | </syntaxhighlight> |
=== Strobe === | === Strobe === | ||
Zeile 238: | Zeile 251: | ||
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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<strobe dmxchannel="10"> | <strobe dmxchannel="10"> | ||
<step type="open" mindmx="0" maxdmx="63" /> | <step type="open" mindmx="0" maxdmx="63" /> | ||
Zeile 245: | Zeile 258: | ||
<range type="random" mindmx="192" maxdmx="223" minval="0.5" maxval="15" /> | <range type="random" mindmx="192" maxdmx="223" minval="0.5" maxval="15" /> | ||
</strobe> | </strobe> | ||
− | </ | + | </syntaxhighlight> |
=== Kanal für allgemeine Gerätefunktionen === | === Kanal für allgemeine Gerätefunktionen === | ||
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<rawstep dmxchannel="11" name="Control"> | <rawstep dmxchannel="11" name="Control"> | ||
<step caption="No function" mindmx="0" maxdmx="19" /> | <step caption="No function" mindmx="0" maxdmx="19" /> | ||
Zeile 259: | Zeile 272: | ||
</rawstep> | </rawstep> | ||
</functions> | </functions> | ||
− | </ | + | </syntaxhighlight> |
== Procedures == | == Procedures == | ||
Zeile 279: | Zeile 292: | ||
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<procedures> | <procedures> | ||
<reset> | <reset> | ||
<set dmxchannel="11" value="200" /> | <set dmxchannel="11" value="200" /> | ||
− | </ | + | </syntaxhighlight> |
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<hold value="6000" /> | <hold value="6000" /> | ||
− | </ | + | </syntaxhighlight> |
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<restore dmxchannel="11" /> | <restore dmxchannel="11" /> | ||
</reset> | </reset> | ||
− | </ | + | </syntaxhighlight> |
=== 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 <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>. | 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>. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<procedure name="Test"> | <procedure name="Test"> | ||
− | </ | + | </syntaxhighlight> |
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. | 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. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<set dmxchannel="11" value="160" /> | <set dmxchannel="11" value="160" /> | ||
<hold value="20000" /> | <hold value="20000" /> | ||
<restore dmxchannel="11" /> | <restore dmxchannel="11" /> | ||
</procedure> | </procedure> | ||
− | </ | + | </syntaxhighlight> |
=== 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 <code></procedures></code> im Anschluss auch den gesamten Procedures-Teil im DDF. Die letzte Zeile ist dann wie üblich <code></device></code>. | 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>. | ||
− | < | + | <syntaxhighlight lang="xml"> |
<procedure name="Pan-Tilt blackout on"> | <procedure name="Pan-Tilt blackout on"> | ||
<set dmxchannel="11" value="20" /> | <set dmxchannel="11" value="20" /> | ||
Zeile 330: | Zeile 343: | ||
</procedures> | </procedures> | ||
</device> | </device> | ||
− | </ | + | </syntaxhighlight> |
= Ergebnis: das fertige DDF = | = Ergebnis: das fertige DDF = | ||
Das komplette DDF für den Showtec Indigo 150 sieht wie folgt aus: | Das komplette DDF für den Showtec Indigo 150 sieht wie folgt aus: | ||
− | < | + | <syntaxhighlight lang="xml"> |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
− | <device image="Showtec Indigo 150 V2.png" type="DMXDevice" dmxcversion="3. | + | <device image="Showtec Indigo 150 V2.png" type="DMXDevice" dmxcversion="3.2.3" ddfversion="1.2.0"> |
<information> | <information> | ||
<model>Indigo 150 V2</model> | <model>Indigo 150 V2</model> | ||
Zeile 343: | Zeile 356: | ||
<author>Stefan Kistner</author> | <author>Stefan Kistner</author> | ||
<mode>12 channel</mode> | <mode>12 channel</mode> | ||
+ | <electrical> | ||
+ | <static>10</static> | ||
+ | <dimmer>20</dimmer> | ||
+ | </electrical> | ||
</information> | </information> | ||
<functions> | <functions> | ||
Zeile 450: | Zeile 467: | ||
</procedures> | </procedures> | ||
</device> | </device> | ||
− | </ | + | </syntaxhighlight> |
[[Kategorie: DDF DMXControl 3]] | [[Kategorie: DDF DMXControl 3]] | ||
[[Kategorie: Tutorials DMXControl 3]] | [[Kategorie: Tutorials DMXControl 3]] |
Aktuelle Version vom 28. Januar 2022, 11:40 Uhr
DDF-Tutorial Moving Head DMXC3 | Artikel beschreibt DMXControl 3.2.3 |
|
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.
Inhaltsverzeichnis
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.
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.2.3
erstellt ist und auf Grund von mehreren Anpassungen im Vorfeld bei der Version 1.2.0
steht.
<device image="Showtec Indigo 150.png" type="DMXDevice" dmxcversion="3.2.3" ddfversion="1.2.0">
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 erstellen, 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>
Neben den Angaben zu Hersteller, Modellbezeichnung etc. tragen wir hier nun auch mal Werte zur elektrischen Leistungsaufnahme ein. Deswegen wird der Informationsteil nach dem 20
-Element noch nicht wieder geschlossen. Bei den Angaben zur elektrischen Leistungsaufnahme gibt es zwei verschiedene Einträge, die man im DDF entweder jeweils nur allein oder gemeinsam hinterlegen kann:
static
: Dies ist die elektrische Leistung, die ein Gerät immer verbraucht, sobald es eingeschaltet ist. Hierunter fällt nicht nur die grundlegende Leistungsaufnahme der Steuerelektronik. Zu diesem Eintrag zählt auch die Leistungsaufnahme von Geräten mit einer Entladungslampe, auch wenn man diese oftmals ferngesteuert ein- und ausschalten kann. Ein anderes Beispiel ist das Heizelement von Nebelmaschinen, welches zwar nicht dauerhaft läuft, aber trotzdem eine hohe elektrische Leistung benötigt.dimmer
: Unter diese Kategorie versteht DMXControl 3 alles, wo sich die Leistungsaufnahme durch hoch- und runterschieben des Dimmer-Regelers bzw. durch das Anpassen des Werts für den Dimmer ändert. Das sind zum einen klassische Halogen-Leuchtmittel in PAR-Scheinwerfern. Aber hierunter fallen auf der anderen Seite auch nahezu sämtliche LED-Scheinwerfer und eben Moving-Heads mit einer LED als Leuchtmittel. Im Gegensatz zu den Moving-Heads mit Entladungslampe wird die Helligkeit bei LEDs elektronisch geregelt.
Insgesamt muss du aber zum Punkt elektrische Leistungsaufnahme wissen, dass dies nur als eine grobe Orientierungshilfe verstanden werden darf. Die tatsächlichen Leistungsaufnahmen können nochmals variieren und sind daher besser mit geeigneten Messgeräten zu prüfen, solltest du Wert auf genaue Werte legen.
Die elektrische Leistungsaufnahme ist ein Unterpunkt des Informationsteils und wird durch electrical
-Element eingefasst. Darin befinden sich wie im aktuellen Beispiel beide zugehörigen Elemente: static
und dimmer
. Die elektrische Leistungsaufnahme lässt sich weitestegehend anhand des verbauten LED-Chips herleiten. Von daher tragen wir für dimmer
den Wert 20
ein, also 20 W. Bei der Leistungsaufnahme für die Elektronik etc. im eingeschalteten Zustand gibt es keine genaue Angabe im Handbuch bzw. in den technischen Daten. Hier nehmen wir daher 10 W an und tragen für static
entsprechend 10
ein. Nach diesen beiden Elementen wird sowohl das electrical
-Element als auch das information
-Element geschlossen. Damit ist der Informationsteil vollständig.
<electrical>
<static>10</static>
<dimmer>20</dimmer>
</electrical>
</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 rang
e-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.2.3" ddfversion="1.2.0">
<information>
<model>Indigo 150 V2</model>
<vendor>Showtec</vendor>
<author>Stefan Kistner</author>
<mode>12 channel</mode>
<electrical>
<static>10</static>
<dimmer>20</dimmer>
</electrical>
</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>