DDF DMXC3: Unterschied zwischen den Versionen

Aus Deutsches DMXC-Wiki
(Kapitel 5.4 vollständig neu verfasst sowie Artikel formatiert, alter Stand aktuell noch beibehalten)
Keine Bearbeitungszusammenfassung
 
(63 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Kapitelüberschrift|Version=DMXControl 3.1.1}} {{Inuse}}
{{Manual Header
 
| Type = DMXC3 DDFs
{{NavigationTop-Man3
| Version = 3.3.0
|zurückLink =
|zurückText =
|vorLink =
|vorText =
}}
}}
{{Start-LaTeX}}
{{Hinweis|18.10.2013: JKuehn: Artikel wurde erstellt<br>
14.04.2015: JKuehn: Übertragung des Artikels muss durchgeführt werden}}


==Hintergrund: Wofür werden DDFs benötigt?==
Das [[Glossar_DMXC2#DDF|Device Definition File]] (kurz DDF) ist eine XML-Datei, in der für DMXControl 3 alle erforderlichen Informationen hinterlegt sind, um ein Gerät wie Movinghead, Scanner oder LED-PAR intelligent ansteuern können. Es sagt DMXControl 3, dass bei einem LED-PAR zum Beispiel die Farben rot, grün und blau auf den Kanälen 2, 3 und 4 sowie Dimmer und Strobe auf den Kanälen 1 und 5 liegen.


Der zweite Punkt ist, dass mit den Informationen im DDF der Inhalt des Device Controls sowie der Funktionsumfang der einzelnen Controls für Color, Gobo, Intensity und ggf. weitere Controls selbstständig automatisch dargestellt wird. Eine Gestaltung der Bedienoberfläche für die DDFs so wie bei DMXControl 2 ist bei DMXControl 3 nicht mehr erforderlich.
DDF ist die Abkürzung für {{Manual Objectcaption|"Device Definition File"}}. DDFs werden von DMXControl verwendet, um Informationen über die verwendeten Geräte zu erhalten:
* welche DMX-Kanäle werden überhaupt belegt?
* welche Funktionen habe die verschiedenen DMX-Kanäle?
* wie sehen die Farben auf einem Farbrad bzw. die Gobo auf einem Goborad aus?
* gibt es verschiedene Strobe-Funktionen und wenn ja, welche?
Dies und viele weitere Informationen sind in einem vollständigen DDF enthalten. DMXControl 3 benötigt die Informationen, um anhand dessen die Bedienoberfläche in Form der {{Manual Windowcaption|[[Device Control DMXC3|Gerätesteuerung (Device Control)]]}} und den {{Manual Windowcaption|[[Control Panel DMXC3|Steuerfenster (Control Panel)]]}} aufzubauen. Darüber hinaus ermöglicht DMXControl 3 unter Einbeziehung des {{Manual Windowcaption|[[Hardware Abstraction Layer (HAL) DMXC3|Hardware Abstraktions-Layers (HAL)]]}} auch das Ansteuern unterschiedlicher Geräte. Alle Informationen werden in der Datei in einer klassischen XML-Struktur beschrieben, sodass alle Angaben auch nur mit dem klassischen Editor von Windows oder Notepad++<ref>Notepad++ ist ein freier Text- und Quellcodeeditor. Weitere Informationen auf der Herstellerseite: https://notepad-plus-plus.org/</ref> und dem dort verfügbaren Plugin XML-Tools<ref> Installationsanleitung für das Plugin XML-Tools mit Hilfe des integrierten Pluginadministrator von Notepad++: https://community.notepad-plus-plus.org/topic/16983/xml-tools/2</ref> im Klartext lesbar sind.


Sobald sich die Funktionen der Geräte ändern, muss ein neues DDF angelegt werden. Das bedeutet, dass für 20 gleiche Dimmer (klassische PAR-Kannen an Dimmerpacks) das gleiche DDF verwendet werden kann, wohingegen Movingheads mit verschiedenen Kanalbelegungen (DMX-Modi<ref>Unterschiedliche Anzahl und Belegung der DMX-Kanäle, einstellbar am Gerät selbst</ref>) auch getrennte DDFs benötigt werden. Bei letzterem Punkt ist wichtig, dass das DDF zum ausgewählten DMX-Modus passen muss, damit eine ordnungsgemäße Ansteuerung möglich ist.
Dieser Teil des Handbuchs über DMXControl 3 beschäftigt mit der Erstellung von DDFs. Die Unterteilung der Artikel orientiert sich dabei an den vorhandenen {{Manual Windowcaption|Steuerfenster}} in DMXControl 3 selbst. Der Teil des Handbuchs zu den DDFs in DMXControl 3 gliedert sich in vier Bereiche:
* [[Einführung (DDF-Syntax) DMXC3|'''Grundlagen''']] und wichtige Hinweise zur DDF-Erstellung
* [[Intensity (DDF-Syntax) DMXC3|'''Syntax''']] der unterstützten Funktionen
* [[Procedures (DDF-Syntax) DMXC3|'''Procedures''']] zum Aufrufen bestimmter Gerätefunktionen
* [[DDF-Tutorial LED-Scheinwerfer DMXC3|'''Beispiele''']] zur manuellen Programmierung von DDFs für DMXControl 3


==Speicherort: Wo sind die DDFs zu finden?==
{{Manual Box | de | Important | Der aktuelle DDFCreator unterstützt auf Grund seines Alters nicht alle Funktionen, die in den DDFs für DMXControl 3 abgebildet werden können. Unter Umständen löscht der [[DDFCreator 3|DDFCreator]] Bestandteile im DDF, die dieser nicht kennt. Daher ist es empfehlenswert, den DDFCreator nicht mehr zu verwenden, sobald im DDF manuell zusätzliche Funktionen hinzugefügt wurden.}}
Die DDFs von DMXControl 3 sind lokal auf dem PC in folgendem Verzeichnis zu finden:
{{Manual Box | de | Attention | DDFs für DMXControl 2 sind nicht mit den DDFs für DMXControl 3 kompatibel, da sich der interne Aufbau komplett unterscheidet. DMXControl 3 benötigt für den {{Manual Windowcaption|[[Hardware Abstraction Layer (HAL) DMXC3|Hardware Abstraktions-Layers (HAL)]]}} zusätzliche Informationen. Auch bringen die DDFs keine selbst gebaute Bedienoberfläche mit. Alle Steuerelemente generiert DMXControl 3 einheitlich über die GUI.}}
<br />
<source lang="xml">
[Installationsverzeichnis]\kernel\devices\
</source>
<br />
[Installationsverzeichnis] steht hierbei für das Verzeichnis, in dem DMXControl 3 installiert wurde. Wurde dies beim Installieren nicht geändert, lautet der Pfad üblicherweise
<br />
<source lang="xml">
C:\Programme (x86)\DMXControl3\
</source>
<br />
Das Bild für das Icon des Geräts in der Stage View liegt immer im Verzeichnis
<br />
<source lang="xml">
[Installationsverzeichnis]\kernel\devices\images\
</source>
<br />
und die Icons der Gobos unter
<br />
<source lang="xml">
[Installationsverzeichnis]\kernel\icons
</source>
<br />
==Struktur: Wie ist ein DDF aufgebaut?==
Das DDF für DMXControl 3 besteht aus vier Teilen:
* '''Basisteil''' mit grundlegenden Angaben zum DDF selbst wie DDF-Version und Bild
* '''Informationsteil''' mit Angaben zum Gerät, Hersteller, Autor sowie DMX-Modus
* '''Funktionsteil''' mit den Funktionen jedes DMX-Kanals und zugehörigen Wertebereichen
* '''Procedures-Teil''' für spezielle Geräte-Funktionen wie Reset oder Lampen ein- oder ausschalten
<br />
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<device image="bild.png" type="DMXDevice" dmxaddresscount="1" dmxcversion="3" ddfversion="1" subdevice="no">
  <information>
    ...
  </information>
  <functions>
    ...
  </functions>
  <procedures>
    ...
  </procedures>
</device>
</source>
<br />
Insbesondere der zweite Teil ist wichtig für die Aufbereitung des DDFs durch die GUI, damit alle Steuerelemente wie das Device Control und die Controls richtig dargestellt werden. Des Weiteren greift die HAL auf diese Informationen zurück, um die eingestellten Lichtstimmungen in den Cues eines Projekts abzuspeichern.


===Inhalt der vier Teile innerhalb des DDFs===
====Basisteil====
Im Basisteil des DDFs sind allgemeine Informationen zur Datei sowie das Element <code>device</code> enthalten. Der Tag <code>device</code> umfasst folgende Attribute:


{| class="wikitable"
= Grundlagen =
|-
{| class="wikitable toptextcells"
! Attribut !! Beschreibung !! Standard-Wert !! Zulässige Werte !! Optional
|-
| <code>image</code> || Bild-Datei des DDFs || Nicht vorhanden || Dateiname des Bilds als *.png-Datei ||
|-
| <code>type</code> || || <code>DMXDevice</code> || DMXDevice ||
|-
| <code>dmxaddresscount</code> || Gesamtzahl der DMX-Kanäle des Geräts || Nicht vorhanden || Ganze Zahlen von 1 bis 512 || X
|-
| <code>dmxcversion</code> || Erforderliche Programmversion zur Verwendung des DDFs || <code>3</code> || 3, 3.0.1, 3.0.2, 3.1, 3.1.1 und alle zukünftigen Programmversion ||
|-
| <code>ddfversion</code> || Version des DDFs || Nicht vorhanden || 1, 1.1, 1.2 usw. ||
|-
| <code>subdevice</code> || Zusatzgerät für vorhandenes Gerät wie zum Beispiel Colorscroller für klassische PAR-Scheinwerfer || <code>No</code> || No oder yes || X
|}
 
Das Element <code>device</code> umklammert alle Informationen des DDFs. Angaben außerhalb des Tags führen zu Fehlern beim Einfügen des DDFs in ein Projekt.
Beim Eintragen des Dateinamens für Icon in der Stage View ist nur der Dateiname inkl. der Dateiendung einzusetzen. Die Angabe des Pfades ist nicht erforderlich.
 
====Informationsteil====
Im Informationsteil werden alle grundlegenden Informationen zum Gerät hinterlegt, für dies das DDF erstellt wurde. Mit Hilfe dieser Informationen erfolgt auch die Einsortierung des neuen DDFs im Device Manager. Alle Angaben werden durch das Element <code><information> ... </information></code> eingeklammert.
{| class="wikitable"
|-
! Tag !! Beschreibung !! Optional
|-
| <code>model</code> || Bezeichnung des Geräts gemäß Bedienungsanleitung ||
|-
| <code>vendor</code> || Hersteller des Geräts gemäß vorgegebener Herstellerliste ||
|-
| <code>author</code> || Autor des DDFs ||
|-
| <code>mode</code> || DMX-Modus || X
|-
|-
| <code>comment</code> || Kommentar zum DDF oder Gerät || X
! style="height: 40px; width: 200px" | Kapitel !! style="width: 600px" | Zusammenfassung
|}
 
====Funktionsteil====
Im Funktionsteil werden die eigentlichen Funktionen des Geräts eingetragen, wie beispielsweise Pan und Tilt, Dimmer, Farbrad, Strobe etc. Welche Funktionen aktuell unterstützt werden, sind im Syntax: die möglichen Funktions-Bausteine im Detail inklusive Code-Beispielen aufgelistet. Alle Angaben werden durch das Element <code><functions> ... </functions></code> eingeklammert.
 
=====Unterfunktionen eines DMX-Kanals=====
Jede einzelne Funktion eines DMX-Kanals kann durch eine Unterfunktion erweitert werden. Prominentestes Beispiel ist der Goboshake, welcher sich jeweils zu dem aktuell ausgewählten Gobo zusätzlich aktiviert lässt. Diese Funktion liegt meist auf dem gleichen DMX-Kanal wie die Funktion zum Auswählen des Gobos, in der Regel aber in einem anderen Wertebereich.
 
=====Ergänzende Funktionen für einen DMX-Kanal=====
Neben den Unterfunktionen gibt es noch ergänzende Funktionen Diese können entweder auf dem gleichen DMX-Kanal liegen, wie zum Beispiel das kontinuierliche Drehen des Farbrads in einem Movinghead oder Scanner. Im Falle der Goborotation liegt die ergänzende Funktion auf einem getrennten DMX-Kanal. Hier wird über den ersten DMX-Kanal das Gobo ausgewählt und über den zweiten DMX-Kanal bestimmt, wie schnell sich das Gobo in welche Richtung drehen soll.
 
====Procedures====
Procedures werden nur eingesetzt, um selten benutzte Funktionen am Gerät zu aktivieren, die für den Live-Betrieb in der Regel nicht erforderlich sind. Üblicherweise verfügen insbesondere Movingheads oder Scanner über Funktionen zur Durchführung eines Resets oder zum Ein- bzw. Ausschalten des Leuchtmittels. Alle diese Funktionen werden ausgeführt, wenn ein bestimmter DMX-Wert auf dem zugehörigen DMX-Kanal für eine bestimmte Zeit gehalten wird. Procedures können nicht in Cues abgespeichert werden und lassen sich nur über die Stage View aufrufen.
 
===Aufbau einer Funktion auf einem DMX-Kanal===
Liegen auf einem DMX-Kanal wie beispielsweise beim Strobe, Shutter oder Goborad mehrere Funktionen, so werden diese in zwei Kategorien unterteilt:
* <code>step</code> für Funktionen, die immer nur umgeschaltet werden, zum Beispiel das Wechseln der Farbe auf einem Farbrad
* <code>range</code> für Funktionen, die parallel zum Umschalten auch noch in bestimmten Bereichen variiert werden können, wie zum Beispiel die Richtung und die Geschwindigkeit der Goborotation
Ein <code>step</code> besteht dabei immer aus dem eigentlichen Tag <code>step</code>, dem Attribut <code>type</code>, sowie den Attributen für den minimalen DMX-Wert <code>mindmx</code> und den maximalen DMX-Wert <code>maxdmx</code> für den <code>step</code>. Der Wert für das Attribut <code>type</code> ist immer abhängig von der Eigenschaft des DMX-Kanals, die abgebildet werden soll. Welche Werte zulässig sind, wird bei der Beschreibung der jeweiligen Eigenschaft angegeben.
<br />
<source lang="xml">
<step type="open" mindmx="225" maxdmx="255" />
</source>
<br />
Der Tag <code>range</code> ist ähnlich aufgebaut, wie der Tag <code>step</code>. Der wesentlichste Unterschied ist die Ergänzung der Attribute <code>minval</code> und <code>maxval</code>. Hier werden beispielsweise die minimale und maximale Drehzahl für die Goborotation angegeben.
 
Die Besonderheit ist an dieser Stelle, dass die DMX-Werte den Geschwindigkeiten zugeordnet werden. Das heißt, zur minimalen Drehzahl wird der DMX-Wert eingetragen, wo sich das Gobo am langsamsten dreht. Genauso verhält es sich mit der maximalen Drehzahl. Daher kann es vorkommen, dass die minimale Drehzahl nicht immer automatisch auch der niedrige DMX-Wert und die maximale Drehzahl beim größten DMX-Wert anliegt. Ein Code-Beispiel ist im Abschnitt Goborad zu finden.
<br />
<source lang="xml">
<range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="15" />
</source>
<br />
===Grundregeln bei der Erstellung eines DDFs===
Bei den DDFs sind folgende grundlegenden Regeln zu beachten:
* Die DMX-Kanäle werden in den DDFs immer bei 0 beginnend gezählt. Deswegen sind für einen LED-PAR mit 5 DMX-Kanälen im DDF auch die DMX-Kanäle 0 bis 4 angegeben, während die Funktionen in der Bedienungsanleitung von DMX-Kanal 1 bis 5 beschriftet sind.
* Die Eintragung der Werte für Strobe-Frequenz, Schwenk-Bereiche für Pan und Tilt, Drehzahl für Gobo-Rotation etc. erfolgt ohne Einheiten. Die üblichen Einheiten für diese Werte sind in der nachfolgenden Tabelle aufgelistet.
* Die zugehörigen DMX-Werte zum Beispiel für die Drehzahl der Goborotation sind so einzutragen, dass von dem Punkt Goborotation stopp aus die Drehzahlen vor und entgegen des Uhrzeigersinns zunehmen.
* Bilder für das Geräte-Icon sowie für die Gobos sollen in einer Auslösung von 128 x 128 Pixeln und als *.png-Datei im DDF hinterlegt werden.
*  Die DDFs werden üblicherweise in englischer Sprache verfasst.
{| class="wikitable"
|-
! Wert !! Einheit !! Verwendung
|-
|-
| Drehzahl || <code>1/min</code> (Umdrehung pro Minute) || Goborotation, Prismenrotation, kontinuierliche Drehung des Farbrads, kontinuierliche Drehung des Goborads
! [[Einführung (DDF-Syntax) DMXC3|Allgemeine Einführung]]
| Die allgemeine Einführung gibt einen groben Überblick, was DDFs im Kontext von DMXControl 3 sind, nach welchen Merkmalen die DDFs in DMXControl 3 zum Einsatz kommen und welche Verzeichnisse auf dem PC für die DDFs genutzt werden.
|-
|-
| Farbtemperatur || <code>K</code> (Kelvin) || Farbtemperatur
! [[Grundaufbau (DDF-Syntax) DMXC3|Grundaufbau]]
| Dieser Artikel beschreibt die grundlegende Struktur eines DDFs für DMXControl 3 sowie die Angaben wie Informationen zum Gerät, die im Informationsteil zu machen sind.
|-
|-
| Frequenz || <code>Hz</code> (Hertz) || Strobe-Frequenz, Goboshake-Geschwindigkeit
! [[Funktionselemente (DDF-Syntax) DMXC3|Funktionselemente]]
| In diesem Artikel werden verschiedene Gemeinsamkeiten erläutert, die unabhängig von der verwendeten Funktion zu einer vollständigen Definition von insbesondere komplexeren DMX-Kanälen benötigt werden und daher in den meistern DDFs zu finden sind.
|-
|-
| Winkel || <code>°</code> (Grad) || Pan- und Tilt-Schwenkbereich, Goboindizierung, Prismenindizierung, Zoom
! [[Grundregeln (DDF-Syntax) DMXC3|Grundregeln]]
|-
| Die Grundregeln fassen zusammen, von welchen Einheiten der HAL beispielsweise bei der Festlegung der maximalen Strobefrequenz ausgeht.
| Einheitslos || <code>%</code> (Prozent) || Dimmer, Iris
|}
|}


==Beispiel: So sieht ein einfaches DDF aus==
{{Manual Box | de | Hint | DMXControl 3.2 unterstützt noch keine Multibeam-Geräte (Geräte mit seperat gesteuerten Lampen). Dies kann mithilfe mehrerer einzelner DDFs, bzw. einem DDF und Generic RGB, Dimmer, etc. umgangen werden.}}
Für einen einfachen LED-PAR-Scheinwerfer mit eigenem Dimmer- und Strobe-Kanal soll im Folgenden ein DDF erstellt werden. Das LED-PAR-Scheinwerfer hat damit fünf DMX-Kanäle.
 
===Basisteil===
Nach den Informationen zum Dokumentenstandard wird mit dem Tag <code>device</code> der Bereich für die eigentlichen Informationen geöffnet, die im DDF hinterlegt sind. Die Bild-Datei für das Icon in der Stage View trägt den Dateinamen <code>led-par.png</code>. Bei dem Gerät handelt es sich um ein <code>DMXDevice</code> mit <code>5</code> DMX-Kanälen. Das DDF wird für DMXControl Version <code>3</code> erstellt und wurde bislang nur einmal bearbeitet, weswegen es die Version <code>1</code> ist.
<br />
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<device image="led-par.png" type="DMXDevice" dmxaddresscount="5" dmxcversion="3" ddfversion="1">
</source>
 
===Informationsteil===
Im Informationsteil ist die Bezeichnung des Geräts, in diesem Fall <code>LED-PAR</code> hinterlegt, der vom Hersteller <code>Various</code> geliefert wurde. Erstellt hat dieses DDF <code>Stefan Kistner</code> und es ist gültig für den DMX-Modus <code>Basic</code>. Alle diese Informationen sind durch das Element <code><information> ... </information></code> eingeklammert.
<br />
<source lang="xml">
  <information>
    <model>LED-PAR</model>
    <vendor>Various</vendor>
    <author>Stefan Kistner</author>
    <mode>Basic</mode>
  </information>
</source>
 
===Funktionsteil===
Der Funktionsteil wird immer durch den Tag <code>functions</code> geöffnet.
 
====Dimmer-Kanal====
Es wird als erstes ein Dimmer-Property für den DMX-Kanal 1 angelegt, welches in dem DMX-Bereich (<code>range</code>) von <code>192</code> (dunkel) bis <code>0</code> (hell) im Gerät implementiert ist. Der Parameterwertebereich erstreckt sich von <code>minval</code> bis <code>maxval</code>, also von <code>0</code> bis <code>100</code>. Im Dimmer-Property wird also die Intensität zwischen 0 (%) und 100 (%) eingestellt und DMXControl 3 rechnet diese dann proportional in die DMX-Werte um anhand der Zuordnung <code>mindmx</code> ≙ <code>minval</code> und <code>maxdmx</code> ≙ <code>maxval</code>.
<br />
<source lang="xml">
  <functions>
    <dimmer dmxchannel="0" mindmx="192" maxdmx="0" minval="0" maxval="100" />
</source>
 
====Kanäle für rot, grün und blau====
Da bei diesem LED-PAR-Scheinwerfer nur rote, grüne und blaue LEDs für die Farbmischung verbaut sind, wird im DDF ein einfaches RGB-Element verwendet. Dabei steuert der DMX-Kanal 2 die roten LEDs, der DMX-Kanal 3 die grünen und der DMX-Kanal 4 die blauen LEDs.
<br />
<source lang="xml">
    <rgb>
      <red dmxchannel="1" />
      <green dmxchannel="2" />
      <blue dmxchannel="3" />
    </rgb>
</source>
 
====Strobe-Kanal====
Der Strobe-Kanal liegt auf Kanal 5. Der vorliegende LED-PAR-Scheinwerfer verfügt nur über eine einfache Strobe-Funktion, die beim DMX-Wert <code>0</code> aus ist (<code>0</code> Hz) und bis DMX-Wert <code>255</code> kontinuierlich schneller wird bis zu einer Strobe-Frequenz von <code>15</code> Hz. Wichtig ist an dieser Stelle, dass die Einheit (hier Hertz) nicht eingetragen wird.
 
Da nach dem Strobe-Element keine weiteren Funktionen folgen, wird das Element <code><functions></code> mit dem End-Tag <code></functions></code> geschlossen.
<br />
<source lang="xml">
    <strobe dmxchannel="4" >
      <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="15" />
    </strobe>
  </functions>
</source>
 
===Procedures===
Bei diesem einfachen LED-PAR-Scheinwerfer gibt es keine Sonderfunktionen, wie zum Bespiel die Initiierung eines Reset (ein Neustart) des Geräts. Deswegen entfällt das Element für Procedures komplett.
Zum Schluss muss das Element <code><device></code> noch mittels des End-Tags <code></device></code> geschlossen werden.
 
===Zusammenfassung===
Das komplette DDF für diesen LED-PAR-Scheinwerfer sieht wie folgt aus:
<br />
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<device image="led-par.png" type="DMXDevice" dmxaddresscount="5" dmxcversion="3" ddfversion="1">
  <information>
    <model>LED-PAR</model>
    <vendor>Various</vendor>
    <author>Stefan Kistner</author>
    <mode>Basic</mode>
  </information>
  <functions>
    <dimmer dmxchannel="0" mindmx="192" maxdmx="0" minval="0" maxval="100" />
    <rgb>
      <red dmxchannel="1" />
      <green dmxchannel="2" />
      <blue dmxchannel="3" />
    </rgb>
    <strobe dmxchannel="4" >
      <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="15" />
    </strobe>
  </functions>
</device>
</source>


==Syntax: die möglichen Funktions-Bausteine==
= Funktionsübersicht =
Nachfolgend sind alle aktuell unterstützten Funktionen aufgelistet, die von DMXControl direkt unterstützt werden. Jede Funktion ist mit einem Codebeispiel versehen, der wiederum in Klartext übersetzt ist.
In den DDFs werden folgende Funktionen direkt von der HAL unterstützt. Die Tabelle verweist euch auf die verschiedenen Artikel, in denen euch die jeweiligen Funktionen inklusive aller möglichen Varianten mit entsprechenden Beispielen erklärt werden.
 
===Dimmer===
Über den Dimmer-Kanal wird die Helligkeit eines Geräts gesteuert. LED-PAR-Scheinwerfer oder Movingheads haben meistens nur einen Dimmerkanal. Je nach Ausführung sind von der Standard-Auflösung mit 8 bit feiner Auflösung bis hin zu 32 bit möglich. Dazu wird das Element auf <code><dimmer dmxchannel="0" finedmxchannel="1" ultraddmxchannel="2" ultrafinedmxchannel="3" /></code> erweitert. Die entsprechende Berechnung, wie welcher DMX-Kanal anzusteuern ist, übernimmt DMXControl automatisch.
 
Dimmerpacks besitzen im Gegensatz zu LED-PARs, Scannern oder Movingheads mehrere Dimmer-Kanäle. Hier ist es aber nicht erforderlich, das Dimmerpack mit seinen vier, sechs oder zwölf Dimmer-Kanälen selbst abzubilden. Hilfreicher und einfacher ist es an dieser Stelle, die daran angeschlossenen Halogen-PAR-Scheinwerfer in entsprechender Anzahl dem Projekt hinzufügen.


{| class="wikitable toptextcells"
{| class="wikitable toptextcells"
|-
|-
! Tag !! Variante !! Code
! style="height: 40px; width: 200px" | Bereich !! style="width: 600px" | Funktionen
|-
|-
|style="width: 10em" rowspan="3"| <code>dimmer</code>
! [[Intensity (DDF-Syntax) DMXC3|Intensität]]
|style="width: 10em"| Standard
| [[Intensity (DDF-Syntax) DMXC3#Dimmer|Dimmer]], [[Intensity (DDF-Syntax) DMXC3#Switch|Switch]], [[Intensity (DDF-Syntax) DMXC3#Shutter|Shutter]], [[Intensity (DDF-Syntax) DMXC3#Strobe|Strobe]]
|style="width: 60em"| <source lang="xml">
<dimmer dmxchannel="0" />
</source>
Dimmer auf DMX-Kanal 1
|-
|-
| Dimmer mit 16 bit-Auflösung
! [[Position (DDF-Syntax) DMXC3|Position]]
| <source lang="xml">
| [[Position (DDF-Syntax) DMXC3#Position|Position]], [[Position (DDF-Syntax) DMXC3#Pan-Tilt-Geschwindigkeit|Pan-Tilt-Geschwindigkeit]]
<dimmer dmxchannel="0" finedmxchannel="1" />
</source>
Dimmer mit 16 bit Auflösungen auf DMX-Kanal 1 und 2
|-
|-
| Einfacher Dimmer in bestimmtem DMX-Wertebereich
! [[Color (DDF-Syntax) DMXC3|Farbe]]
| <source lang="xml">
| [[Color (DDF-Syntax) DMXC3#RGBx-Farbmischung|RGBx-Farbmischung]], [[Color (DDF-Syntax) DMXC3#CMY-Farbmischung|CMY-Farbmischung]], [[Color (DDF-Syntax) DMXC3#HSV-Farbmischung|HSV-Farbmischung]], [[Color (DDF-Syntax) DMXC3#Farbrad|Farbrad]], [[Color (DDF-Syntax) DMXC3#Farbtemperatur|Farbtemperatur]]
<dimmer dmxchannel="0">
  <range type="linear" mindmx="0" maxdmx="127" />
</dimmer>
</source>
Dimmer auf DMX-Kanal 1:
* Lineares Dimmverhalten von 0% Helligkeit (aus) bei DMX-Wert 0 bis maximale Helligkeit (100%) bei DMX-Wert 127
|}
 
===Switch===
Die Funktion <code>switch</code> wird immer dann eingesetzt, wenn es nur zwischen zwei Zuständen hin- und her geschaltet werden soll, beispielsweise der Zustand "Arbeitslicht an" und der Zustand "Arbeitslicht aus".
 
{| class="wikitable toptextcells"
|-
! Tag !! Variante !! Code
|-
|style="width: 10em"| <code>switch</code>
|style="width: 10em"| Standard
|style="width: 60em"| <source lang="xml">
<switch dmxchannel="0" />
</source>
Switch auf DMX-Kanal 1
|}
 
===Shutter===
Der Shutter ist meistens bei Movingheads oder Scannern mit einer Entladungslampe zu finden. Hierbei werden mechanische Blenden in den Lichtstrahl geschoben, wenn das Gerät kein Licht ausgeben soll. Darüber hinaus wird über den Shutter der Strobe-Effekt erzeugt. Bei Movingheads oder Scannern mit LEDs als Lichtquelle wird dieses Verhalten über die Elektronik nachgestellt.
 
In der Regel sind beim Shutter-Kanal mehrere Funktionen zu hinterlegen, mindestens aber die Funktionen Shutter geschlossen und Shutter offen.
 
{| class="wikitable toptextcells"
|-
! Tag !! Variante !! Code
|-
|style="width: 10em"| <code>shutter</code>
|style="width: 10em"| Standard
|style="width: 60em"| <source lang="xml">
<shutter dmxchannel="0">
  <step type="closed" mindmx="0" maxdmx="21" />
  <step type="open" mindmx="234" maxdmx="255" />
</shutter>
</source>
Shutter auf DMX-Kanal 1:
* Shutter geschlossen bei DMX-Wert zwischen 0 und 21.
* Shutter geöffnet bei DMX-Wert zwischen 234 und 255.
|}
{| class="wikitable toptextcells"
|-
|-
! Attribut !! type !! mindmx !! maxdmx
! [[Matrix (DDF-Syntax) DMXC3|Pixel-Effekte]]
| [[Matrix (DDF-Syntax) DMXC3#Matrix|Matrix]], [[Radix (DDF-Syntax) DMXC3#Radix|Radix]]
|-
|-
!style="width: 10em; vertical-align:top"| Beschreibung
! [[Gobo (DDF-Syntax) DMXC3|Gobo]]
|style="width: 10em"|
| [[Gobo (DDF-Syntax) DMXC3#Goborad|Goborad]]
|style="width: 10em"| Unterer DMX-Wert für den Zustand
|style="width: 10em"| Oberer DMX-Wert für den Zustand
|-
|-
!style="vertical-align:top"| Attributwert
! [[Beam (DDF-Syntax) DMXC3|Lichtstrahl]]
| <code>closed</code><br />
| [[Beam (DDF-Syntax) DMXC3#Fokus|Fokus]], [[Beam (DDF-Syntax) DMXC3#Frost|Frost]], [[Beam (DDF-Syntax) DMXC3#Iris|Iris]], [[Beam (DDF-Syntax) DMXC3#Zoom|Zoom]]
<code>open</code>
| <code>0 bis 255</code>
| <code>0 bis 255</code>
|}
 
===Strobe===
====Basis-Funktionen====
Beim Strobe-Kanal können beliebig viele Funktionen wie zum Beispiel verschiedene Strobe-Effekte hinterlegt werden. Folgende Strobe-Effekte sind hierbei üblich:
* <code>linear</code>: Strobe-Frequenz nimmt stetig zu bis hin zu einem fast dauerhaften Leuchten
* <code>pulse</code>: Pulsierender Strobe-Effekt
* <code>random</code>: Blitze werden in zufälligen Zeitabständen mit zunehmender Intensität erzeugt
* <code>ramp up</code>: Blitze werden zunehmen heller bis zum Maximalwert und gehen dann abrupt aus
* <code>spikes</code>: Es werden einzelne Blitze erzeugt
 
{| class="wikitable toptextcells"
|-
|-
! Tag !! Variante !! Code
! [[Blades (DDF-Syntax) DMXC3|Blendenschieber]]
| [[Blades (DDF-Syntax) DMXC3|Blendenschieber]]
|-
|-
|style="width: 10em"| <code>strobe</code>
! [[Effectwheel (DDF-Syntax) DMXC3|Effektrad]]
|style="width: 10em"| Standard
| [[Effectwheel (DDF-Syntax) DMXC3#Prisma|Prisma]], [[Effectwheel (DDF-Syntax) DMXC3#Effektrad|Effektrad]]
|style="width: 60em"| <source lang="xml">
<strobe dmxchannel="0">
  <step type="open" mindmx="0" maxdmx="5" />
  <range type="linear" mindmx="6" maxdmx="89" minval="1" maxval="12" />
  <range type="pulse" mindmx="90" maxdmx="172" minval="0.5" maxval="6" />
  <range type="random" mindmx="173" maxdmx="255" minval="1" maxval="12" />
</strobe>
</source>
Strobe auf DMX-Kanal 1:
* Kein Strobe bei DMX-Wert zwischen 0 und 5.
* Linearer Strobe mit der Geschwindigkeit ansteigend von 1 Hz bei DMX-Wert 6 bis 12 Hz bei DMX-Wert 89.
* Pulsierender Strobe bei DMX-Wert zwischen 90 und 172 mit Geschwindigkeit von 0,5 Hz bis 6 Hz.
* Zufälliges Strobe bei DMX-Wert zwischen 173 und 255 mit Geschwindigkeit von 1 Hz bis 12 Hz.
|}
{| class="wikitable toptextcells"
|-
|-
! Attribut !! type !! mindmx !! maxdmx !! minval !! maxval
! [[Stage Effect (DDF-Syntax) DMXC3|Bühneneffekte]]
| [[Stage Effect (DDF-Syntax) DMXC3#Nebel|Nebel]], [[Stage Effect (DDF-Syntax) DMXC3#Ventilator|Ventilator]]
|-
|-
!style="width: 10em; vertical-align:top"| Beschreibung
! [[Open Function (DDF-Syntax) DMXC3|Allgemeine Funktionen]]
|style="width: 10em"|
| [[Open Function (DDF-Syntax) DMXC3#Index|Index]], [[Open Function (DDF-Syntax) DMXC3#Rotation|Rotation]], [[Open Function (DDF-Syntax) DMXC3#Cool|Cool]], [[Open Function (DDF-Syntax) DMXC3#Heat|Heat]]
|style="width: 10em"| DMX-Wert für die minimale Strobe-Frequenz
|style="width: 10em"| DMX-Wert für die maximale Strobe-Frequenz
|style="width: 10em"| Minimale Strobe-Frequenz
|style="width: 10em"| Maximale Strobe-Frequenz
|-
|-
!style="vertical-align:top"| Attributwert
! [[Open Function (DDF-Syntax) DMXC3|Freie Funktionen]]
| <code>linear</code><br />
| [[Open Function (DDF-Syntax) DMXC3#rawstep|rawstep]], [[Open Function (DDF-Syntax) DMXC3#raw|raw]], [[Open Function (DDF-Syntax) DMXC3#rawranges|rawranges]], [[Open Function (DDF-Syntax) DMXC3#const|const]]
<code>pulse</code><br />
<code>random</code><br />
<code>ramp up</code><br />
<code>ramp down</code><br />
<code>ramp up/down</code><br />
<code>lightning</code><br />
<code>spikes</code>
| <code>0 bis 255</code>
| <code>0 bis 255</code>
| <code>0 Hz bis 30 Hz</code>
| <code>0 Hz bis 30 Hz</code>
|}
|}


====Unterfunktionen====
= Procedures =
Für einzelne Funktionen des Strobe-Kanals sind folgende Unterfunktionen möglich:
* <code>strobetype</code>: Auswahl des Strobeeffekts über einen getrennten DMX-Kanal
 
=====Strobetype=====
{| class="wikitable toptextcells"
{| class="wikitable toptextcells"
|-
|-
! Tag !! Variante !! Code
! style="height: 40px; width: 200px" | Kapitel !! style="width: 600px" | Zusammenfassung
|-
|-
|style="width: 10em"| <code>strobe</code>
! [[Procedures (DDF-Syntax) DMXC3|Funktionen]]
|style="width: 10em"| Standard
| Dieser Artikel listet alle in DMXControl 3 verfügbaren Procedures auf.
|style="width: 60em"| <source lang="xml">
<strobe dmxchannel="0">
  <strobetype dmxchannel="1" />
  <step type="open" mindmx="0" maxdmx="5" />
  <range type="linear" mindmx="6" maxdmx="255" minval="0.5" maxval="25" >
    <step handler="strobetype" mindmx="6" maxdmx="42" />
  </range>
  <range type="random" mindmx="6" maxdmx="255" minval="0.5" maxval="25" >
    <step handler="strobetype" mindmx="43" maxdmx="85" />
  </range>
</strobe>
</source>
Strobe-Frequenz auf DMX-Kanal 1, Strobe-Effekt auf DMX-Kanal 2:
* Kein Strobe bei DMX-Wert zwischen 0 und 5.
* Linearer Strobe im Bereich zwischen den DMX-Werten 6 und 255 mit Geschwindigkeit von 1 Hz bis 12 Hz, bei einem DMX-Wert zwischen 6 und 42 auf DMX-Kanal 2.
* Zufälliger Strobe im Bereich zwischen den DMX-Werten 6 und 255 mit Geschwindigkeit von 1 Hz bis 12 Hz, bei einem DMX-Wert zwischen 43 und 85 auf DMX-Kanal 2.
|}
{| class="wikitable toptextcells"
|-
! Attribut !! handler !! mindmx !! maxdmx
|-
!style="width: 10em; vertical-align:top"| Beschreibung
|style="width: 10em"|
|style="width: 10em"| Minimaler DMX-Wert
|style="width: 10em"| Maximaler DMX-Wert
|-
|-
!style="vertical-align:top"| Attributwert
! [[Procedures (DDF-Syntax examples) DMXC3|Beispiele]]
| <code>strobetype</code>
| Der Artikel zeigt ein paar Beispiele für vorgegebene, aber auch für eigene Procedures.
| <code>0 bis 255</code>
| <code>0 bis 255</code>
|}
|}


====Ergänzende Funktionen====
= Tutorials =
Für den gesamten Strobe-Kanal sind folgende ergänzende Funktionen möglich:
* <code>duration</code>: Einstellen der Blitzdauer
 
=====Duration=====
{| class="wikitable toptextcells"
{| class="wikitable toptextcells"
|-
|-
! Sub-Tag !! Variante !! Code
! style="height: 40px; width: 200px" | Kapitel !! style="width: 600px" | Zusammenfassung
|-
|style="width: 10em"| <code>duration</code>
|style="width: 10em"| Standard
|style="width: 60em"| <source lang="xml">
<strobe dmxchannel="0">
  <step type="open" mindmx="0" maxdmx="5" />
  <range type="linear" mindmx="6" maxdmx="255" minval="1" maxval="12" />
  <duration dmxchannel="1" >
    <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="650" />
  </duration>
</strobe>
</source>
Strobe-Frequenz auf DMX-Kanal 1, Blitzdauer auf DMX-Kanal 2:
* Kein Strobe bei DMX-Wert zwischen 0 und 5.
* Linearer Strobe im Bereich zwischen den DMX-Werten 6 und 255 mit Geschwindigkeit von 1 Hz bis 12 Hz. Blitzdauer von 0 ms bis 650 ms über DMX-Kanal 2 im Bereich zwischen den DMX-Werten 0 und 255.
|}
{| class="wikitable toptextcells"
|-
|-
! Attribut !! type !! mindmx !! maxdmx !! minval !! maxval
! [[DDF-Tutorial LED-Scheinwerfer DMXC3|LED-Scheinwerfer]]
| Im ersten von insgesamt drei Tutorials wird das DDF für einen einfachen LED-Scheinwerfer erstellt. Als Vorlage dient Cameo LED Mini Tri Par Can 3W.
|-
|-
!style="width: 10em; vertical-align:top"| Beschreibung
! [[DDF-Tutorial 4er-Bar DMXC3|4er-LED-Bar]]
|style="width: 10em"|
| Das zweite Tutorial behandelt die manuelle Erstellung eines DDFs für einer 4er-LED-Bar am Beispiel der Eurolite LED KLS-2500.
|style="width: 10em"| DMX-Wert für die kürzeste Einschaltdauer
|style="width: 10em"| DMX-Wert für die längste Einschaltdauer
|style="width: 10em"| Kürzeste Einschaltdauer
|style="width: 10em"| Längste Einschaltdauer
|-
|-
!style="vertical-align:top"| Attributwert
! [[DDF-Tutorial Moving Head DMXC3|Moving Head]]
| <code>linear</code>
| Das dritte Beispiel zeigt, wie das DDF für einen einfachen Moving Head erstellt wird. Als Vorlage dient hier der Showtec Indigo 150 LED, der teilweise auch unter anderen Marken vertrieben wurde.
| <code>0 bis 255</code>
| <code>0 bis 255</code>
| <code>0 ms bis 2000 ms</code>
| <code>0 ms bis 2000 ms</code>
|}
|}


= Links und Referenzen =
== Links ==
<references/>


 
== Videotutorials ==
 
Auf unserem {{DMXCWebLinks|YouTube}} findet ihr zu diesem Thema folgende Videos.
 
{|
 
{{DMXC3 Manual-Tableentry Videolink | rHtUIUjNfLQ | Spot on: Wir bauen uns DDFs}}
==Alter Stand des Artikels bis 11.06.2017==
 
-------------------------------------------
Alter Stand
-------------------------------------------
 
Das DDF ist eine XML-Datei, welche einen beliebigen Punkt in der Signalkette beschreibt, der die gesendeten DMX-Daten auswerten und verarbeiten kann. Das sind meistens Geräte wie Dimmer, Movinglights oder LED-PARs. Es gibt aber auch Software und Plugins, die DMX-Daten erwarten und demzufolge ein DDF benötigen. Jedes dieser Devices mit eigener DMX-Belegung benötigt eine eigene Beschreibung. Das bedeutet, 20 gleiche Dimmer werden auf dasselbe DDF referenziert, hingegen benötigt ein Movinghead mit verschiedenen Modi meist mehrere DDFs.
 
==Beschreibung==
DMXControl muss irgendwoher die Information nehmen, welche Bedeutung den einzelnen DMX-Kanälen eines Devices zugeordnet ist, damit es intelligent die Steuerelement des Property Grid zuordnen kann. Diese Informationen stellt das DDF bereit. Dort heißt es vereinfacht: Der Dimmer liegt auf Kanal 12 und der Strobe-Effekt auf Kanal 7 zwischen den DMX-Werten 7 und 84. Wird ein Device in '''DMXC3 oder scheibt Lumos oder DMXControl 3?''' zu einem Projekt hinzugefügt, so wird dessen DDF geladen und die Steuerelemente bereitgestellt, welche den Funktionen des Devices entsprechen. Bei fehlerhaften DDFs gibt der Kernel zum Teil hilfreiche Fehlermeldungen aus. Wird das gleiche Gerät nochmal hinzugefügt, so wird dasselbe (schon eingelesene) DDF verwendet. Änderungen am DDF wirken sich ab dem nächsten Einlesen (z.B. Neustart von DMXC3) auf alle Devices des selben Typs aus. Insbesondere bei Movinglights muss bei der Device- (und damit DDF-) Auswahl auf den richtigen Modus geachtet werden, da verschiedene Modi meist verschiedene DMX-Belegungen haben und somit verschiedene DDFs benötigen. <small>Das ist doppelt (siehe Fußnote), welche Beschreibung gefällt euch besser?</small>
 
Zur Nachvollziehbarkeit ist es ratsam, das DDF "Lightmaxx DMX-Strobe 750" im Verzeichnis kernel/devices in einem Texteditor oder einem Browser zu öffnen. Ein DDF besteht aus einem Informationsteil in dem Gerätetyp, Hersteller, Autor der Datei und weitere Angaben enthalten sind. Darauf folgt normalerweise der Funktions-Block, der alle zu beschreibenden Funktionen/Parameter und deren Wertebereiche enthält. In DMXC wird nicht direkt der DMX-Wert geändert, sondern ein Parameter mit beliebig festlegbaren Wertebereich. Anhand des DDFs wird der Parameter-Wert (Value) in einen DMX-Wert umgerechnet. Folgendes Beispiel soll die Zuweisung im DDF erklären:
<source lang="xml">
<dimmer>
  <range  mindmx="127" maxdmx="0" minval="0" maxval="100" />
</dimmer>
</source>
{{Bild_mit_Unterschrift|Effekte_auf_RAW-Channel.png|X.1|Effekt auf selbst definierte Funktionen
für kontinuierliches Farbrad legen|right|300px}}
Es wird ein Dimmer-Property angelegt, welches in dem DMX-Bereich (range) von 127 (dunkel) bis 0 (hell) im Gerät implementiert ist. Der Parameterwertebereich erstreckt sich von minval bis maxval, also von 0 bis 100. Im Dimmer-Property? wird also die Intensität zwischen 0(%) und 100(%) eingestellt und DMXC rechnet diese dann proportional in die DMX-Werte um anhand der Zuordnung mindmx ≙ minval und maxdmx ≙ maxval.
Schon allein die Reihenfolge der Begriffe, also erst die Funktion "Dimmer" und danach der dazugehörige DMX-Kanal, macht deutlich, dass die Devices vor allem über ihre Eigenschaften und weniger über ihre Kanäle definiert werden. Durch die neue HAL in DMXC3 ist es nicht mehr nötig (und möglich), eine graphische Beschreibung des DDFs anzulegen. Alle Steuerelemente werden von der GUI erkannt und an den entsprechenden stellen automatisch dargestellt.
 
'''Artikel zu Speierorten anlegen! Ähnlich Mozilla-Wiki, dann kann man darauf im Forum verlinken und jeder weiß, wo er suchen muss nach Icons, Logs, DDFs etc.'''
 
===Syntax===
XML verwendet sogenannte Elemente mit öffnenden und schließenden Tags, die von spitzen Klammern begrenzt werden. Ein Element kann ein oder mehrere Attribute enthalten, deren Wert getrennt durch ein Gleichheitszeichen in Anführungszeichen stehen sollte.
<source lang="xml"><blockquote class="wissenschaftlich">Und sie bewegt sich doch!</blockquote>
|          |    |                ||                        |          |
|          |    |--Attributwert--||                        |          |
|          |                      ||                        |          |
|          |-------Attribut-------||                        |          |
|                                  |                        |          |
|------------(Start-)Tag------------|------Elementinhalt------|-(End-)Tag-|
|                                                                        |
|---------------------------------Element---------------------------------|</source><ref>http://selfhtml.apsel-mv.de/tag-element/tag-element-attribut.html</ref>
Inhaltsleere Elemente werden in sich geschlossen: <code>&lt;element attribut="wert" /&gt;</code>
Zur Vertiefung der Syntax siehe [http://wiki.selfhtml.org/wiki/Doku:XML#Elemente XML (selfHTML)]. Die Datei beschreibt eine Baumstruktur und es gibt zwingende Eltern-Kind-Beziehungen. Das heißt vereinfacht, dass ein <code>dimmer</code>-Element nur innerhalb des Funktionselement vorkommen darf.
 
 
* Erkläre Bezugssystem (step handler, step for)
* Kommentare
 
===Elemente===
jeweils Tabelle mit
 
{| class="wikitable"
|-
! Property !! Beschreibung !! Codebeispiel !! Attribute und erlaubte Kindelemente !! Kommentar
|-
| '''cmy''' || Farbmischung über Cyan Magenta Yellow ||
<source lang="xml"><cmy>
  <cyan dmxchannel="0"/>
  <magenta dmxchannel="1"/>
  <yellow dmxchannel="2"/>
<!-- <step type="color" val="#eedefe" caption="1/2 Minus Green" mindmx="128" maxdmx="128" /> -->
</cmy>
</source>
|| Kindelemente:  
*cyan
*magenta
*yellow
Universalattribute, keine Kindelemnte
|| Subtraktive Farbmischung
|}
ist das zu technisch/formalistisch?
==== information-Teil ====
==== functions ====
==== procedures ====
===Attribute===
====Universalattribute====
====spezielle Attribute====
== Beispiele ==
== Tipp(s) ==
== Fehlersuche ==
== aus Tutorial ==
 
=== Lektion 20: Neue Gerätedefinitionen erstellen  ===
Eine Gerätedefinitionsdatei (kurz: DDF) wird verwendet, um DMXControl über die Eigenschaften eines Gerätes zu informieren. Ein DDF ist in XML-Sprache geschrieben und die Datei befindet sich im Ordner
 
<DMXControl program path>\kernel\devices
<br>
Wenn Du mit DDFs von DMXControl 2 vertraut bist, dann kannst Du einige wichtige Unterschiede feststellen:
 
*Es gibt keine grafische Oberfläche (GUI), da DMXControl 3 kein Gerätekontextmenü unterstützt.
*Einige Syntaxelemente sind sehr ähnlich (speziell im Informations-Teil), d.h. Du kannst die bestehenden DDFs wiederverwenden.
*Der Funktionsteil ist viel abstrakter: Du machst die Definition vor allem durch die Eigenschaften und nicht durch die DMX-Kanäle.
<br>
Als erstes schauen wir uns ein sehr einfaches DDF an ("Generic RGB Par"):
 
----
 
{| cellspacing="1" cellpadding="1" border="0" align="center" width="200"
|-
| <source lang="xml">
01 <?xml version="1.0" encoding="utf-8" ?>
02 <device image="bild" type="DMXDevice">
03  <information>
04    <modell>Generic RGB PAR</modell>
05    <vendor>Generic</vendor>
06    <author>Arne Luedtke</author>
07    <comment>KLEINER TEXT</comment>
08  </information>
09  <functions>
10    <rgb>
11      <red dmxchannel="0" />
12      <green dmxchannel="1" />
13      <blue dmxchannel="2" />
14    </rgb>
15  </functions>
16 </device>
</source>
|
<br>[[Image:DeviceManegerInfoBox.jpg|DeviceManegerInfoBox.jpg]]
|}
|}


----
[[en: DDF DMXC3]]
 
Zeile 01 ist zwingend notwendig für die Beschreibung der XML-Version. Zeile 02 ("bild" kann ersetzt werden durch z.B. "Light.gif" oder "Light.png") und 15 bilden den Rahmen für die Geräte-Definition, die aus zwei Teilen besteht:
 
*Informationsbereich (Zeile 03 bis 08), keine weitere Erklärung notwendig.
*Funktionsbereich (Zeile 09 to 14)
 
Das Gerät in unserem Beispiel hat eine Eigenschaft: RGB color Modus. Die Zuordnung der DMX Kanäle wird in den Zeilen 11 bis 13 beschrieben.
 
Das ist alles!
 
Folgende Tabelle zeigt die vorhandenen Eigenschaften<br>
 
{| class="wikitable"
|-
! scope="col" | Property
! colspan="2" scope="col" | Description
! colspan="3" scope="col" | Comment
|-
| switch
| colspan="2" | Fixture hat einen Switch-Kanal.<br>
| colspan="3" | <source lang="xml"><switch dmxchannel="0" /></source>
|-
| dimmer
| colspan="2" | Fixture hat einen Dimmer-Kanal.<br>
| colspan="3" | <source lang="xml"><dimmer dmxchannel="0" /></source>
|-
| matrix
| colspan="2" | Fixture ist ein Matrix-Gerät.<br>
| colspan="3" | <source lang="xml"><matrix rows="2" columns="3">
  <rgb>
    <red dmxchannel="2" />
    <green dmxchannel="2" />
    <blue dmxchannel="2" />
  </rgb>
  <rgb>
    <red dmxchannel="2" />
    <green dmxchannel="2" />
    <blue dmxchannel="2" />
  </rgb>
  <rgb>
    <red dmxchannel="2" />
    <green dmxchannel="2" />
    <blue dmxchannel="2" />
  </rgb>
  <rgb>
    <red dmxchannel="2" />
    <green dmxchannel="2" />
    <blue dmxchannel="2" />
  </rgb>
  <rgb>
    <red dmxchannel="2" />
    <green dmxchannel="2" />
    <blue dmxchannel="2" />
  </rgb>
  <rgb>
    <red dmxchannel="2" />
    <green dmxchannel="2" />
    <blue dmxchannel="2" />
  </rgb>
</matrix>
</source>
|-
| fog
| colspan="2" | Nebel-Kanal<br>
| colspan="3" | <source lang="xml"><fog dmxchannel="0" /></source>
|-
| shutter
| colspan="2" | Fixture hat einen Shutter.<br>
| colspan="3" | <source lang="xml"><shutter dmxchannel="0" /></source>
|-
| strobe
| colspan="2" | Fixture hat einen Strobe-Kanal.<br>
| colspan="3" | <source lang="xml"><strobe dmxchannel="0" /></source>
|-
| iris<br>
| colspan="2" | Fixture hat einen Iris-Kanal.<br>
| colspan="3" | <source lang="xml"><iris dmxchannel="0"/></source>
|-
| focus<br>
| colspan="2" | Fixture hat einen Fokus-Kanal.<br>
| colspan="3" | <source lang="xml"><focus dmxchannel="0"/></source>
|-
| zoom<br>
| colspan="2" | Fixture hat einen Zoom-Kanal.<br>
| colspan="3" | <source lang="xml"><zoom dmxchannel="0"/></source>
|-
| rgb
| colspan="2" | Fixture hat die RGB-Funktion.
| colspan="3" | <source lang="xml"><rgb>
  <red dmxchannel="0" />
  <green dmxchannel="1" />
  <blue dmxchannel="2" />
</rgb>
</source>
|-
| cmy<br>
| colspan="2" | Fixture hat die CMY-Funktion.<br>
| colspan="3" | <source lang="xml"><cmy>
  <cyan dmxchannel="0"/>
  <magenta dmxchannel="1"/>
  <yellow dmxchannel="2"/>
</cmy>
</source>
|-
| position
| colspan="2" | Fixture hat Pan und/ oder Tilt.
| nowrap="nowrap" colspan="3" | <source lang="xml"><position>
  <pan dmxchannel="0">
    <range range="540" />
  </pan>
  <tilt dmxchannel="1">
    <range range="246" />
  </tilt>
</position>
</source>
|-
| color wheel
| colspan="2" | Fixture mit Farbrad
| colspan="2" | <source lang="xml"><colorwheel dmxchannel="0">
  <step type="color" val="#ffffff" caption="Weiß" mindmx="0" maxdmx="0" />
  <step type="color" val="#00bd52" caption="Grün 203" mindmx="32" maxdmx="32" />
  <step type="color" val="#080094" caption="Blau 108" mindmx="64" maxdmx="64" />
  <step type="color" val="#8e10bc" caption="UV" mindmx="96" maxdmx="96" />
  <step type="color" val="#eedefe" caption="1/2 Minus Green" mindmx="128" maxdmx="128" />
  <step type="color" val="#ffffff" caption="Weiß" mindmx="160" maxdmx="160" />
</colorwheel>
</source>
|-
| rowspan="3" | gobo wheel
| rowspan="3" | Fixture mit Gobobrad
| valign="top" nowrap="nowrap" |
<br>
 
Goborotation
 
| valign="top" nowrap="nowrap" rowspan="3" | <source lang="xml"><gobowheel dmxchannel="0">
  <goborotation dmxchannel="12" finedmxchannel="13">
    <step type="stop" mindmx="0" maxdmx="2" />
    <step type="stop" mindmx="253" maxdmx="255" />
    <range type="cw" mindmx="3" maxdmx="127" minval="0,1" maxval="8" />
    <range type="ccw" mindmx="252" maxdmx="128" minval="0,1" maxval="8" />
  </goborotation>
  <goboindex dmxchannel="8" finedmxchannel="9">
    <range mindmx="0" maxdmx="255" range="395" />
  </goboindex>
  <goboshake dmxchannel="7" />
    <step type="open" caption="Open" mindmx="0" maxdmx="11" />
    <step type="gobo" caption="Gobo 1" mindmx="12" maxdmx="15" val="gobo1.png">
      <step for="goborotation" mindmx="36" maxdmx="39" />
      <range handler="shake" mindmx="60" maxdmx="71" minval="0,1" maxval="3" />
    </step>
  ...
</gobowheel></source>
|-
| valign="top" |
Gobopositi
 
|-
|
Rotation Gobo 1
 
Shake Gobo 1<br>
|-
|| rawstep<br>
| colspan="2" | Fixture hat undefinierte Funktionen.<br>
|| <source lang="xml"><rawstep dmxchannel="0" name="Macros">
<step caption="MACRO 15" mindmx="0" maxdmx="1" />
...
</rawstep> </source>
|-
|| const<br>
| colspan="2" | Fixture hat nichtbenutzten Kanal.<br>
|| <source lang="xml"><const dmxchannel="1" val="0" name="Macro"/> </source>
|}
 
Wenn das Fixture über ein Farb-/Goborad verfügt, das sich kontinuierlich drehen kann, dann schreibt man das so:<br>
<source lang="xml"><gobowheel dmxchannel="0">
  <step type="open" caption="Open" mindmx="0" maxdmx="0" />
  <step type="gobo" caption="Gobo 1" mindmx="11" maxdmx="11" />
  ...
  <wheelrotation>
    <range type="cw" mindmx="221" maxdmx="203" minval="0,1" maxval="2" />
    <range type="ccw" mindmx="222" maxdmx="240" minval="0,1" maxval="2" />
  </wheelrotation>
</gobowheel>
</source>
<br>
 
Wenn das Fixture über ein Farb-/Goborad verfügt, das sich auf zufällige Positionen drehen kann, dann schreibt man das so:<br>
<source lang="xml">
<gobowheel dmxchannel="0">
  <step type="open" caption="Open" mindmx="0" maxdmx="0" />
  ...
  <random>
    <step type="fast" mindmx="241" maxdmx="245" />
    <step type="medium" mindmx="246" maxdmx="250" />
    <step type="slow" mindmx="251" maxdmx="255" />
  </random>
</gobowheel>
</source>
<br>
 
Wenn ein Gerät über feine Kanäle für z.B Zoom verfügt, dann schreibt man das so:
<br>
<source lang="xml"><zoom dmxchannel="0" finedmxchannel="1"/></source>
 
Das funktioniert bei jedem Property.
<br>
Die verschiedenen Intervalle in einem DMX-Kanal werden von der „Step“ Variablen definiert:
 
<source lang="xml">
<step val="0" mindmx="0" maxdmx="127" />
<step val="100" mindmx="128" maxdmx="255" />
</source>
 
oder:
 
<source lang="xml">
<step type="color" val="#FFFFFF" caption="Weiß" mindmx="0" maxdmx="31" />
<step type="color" val="#FF0000" caption="Rot" mindmx="32" maxdmx="63" />
</source>
 
{{BoxHinweis
|Text=Ein [[DDFCreator3.0#DDFCreator3.x|DDFCreator]] für DMXControl 3 ist bereits in Arbeit, siehe [http://www.dmxcontrol.de/forum/index.php?page=Thread&threadID=7931&pageNo=1 Forum]. Ihr könnt mit diesem Prototype arbeiten oder die eigenen DDFs mit einem XML-Editor Eurer Wahl oder einfach mit einem Texteditor erstellen. Manchmal hilft es, ein bereits existierendes DDF zu kopieren und anzupassen.
Gerne könnt ihr eure neuen DDFs auch im Forum teilen: [https://forum.dmxcontrol-projects.org/index.php?thread/7935-dmxcontrol-3-ddf-sammler-nur-funktionierende-ddfs-bitte/ DDF Sammlung].
}}
 
==Links und Referenzen==
Links
<references/>
{{End-LaTeX}}
{{NavigationTop-Man3
|zurückLink =
|zurückText =
|vorLink =
|vorText =
}}
 
 
[[Kategorie: Handbuch DMXControl 3]]
[[Kategorie: Handbuch DMXControl 3]]

Aktuelle Version vom 10. November 2024, 15:06 Uhr

Blockdevice.png Artikel beschreibt
DMXControl 3.3.0
DDF DMXC3
Inhaltsverzeichnis
Teil 1: Grundlagen
Teil 2: Funktionen
Teil 3: Procederes
Teil 4: Beispiele


DDF ist die Abkürzung für "Device Definition File". DDFs werden von DMXControl verwendet, um Informationen über die verwendeten Geräte zu erhalten:

  • welche DMX-Kanäle werden überhaupt belegt?
  • welche Funktionen habe die verschiedenen DMX-Kanäle?
  • wie sehen die Farben auf einem Farbrad bzw. die Gobo auf einem Goborad aus?
  • gibt es verschiedene Strobe-Funktionen und wenn ja, welche?

Dies und viele weitere Informationen sind in einem vollständigen DDF enthalten. DMXControl 3 benötigt die Informationen, um anhand dessen die Bedienoberfläche in Form der Gerätesteuerung (Device Control) und den Steuerfenster (Control Panel) aufzubauen. Darüber hinaus ermöglicht DMXControl 3 unter Einbeziehung des Hardware Abstraktions-Layers (HAL) auch das Ansteuern unterschiedlicher Geräte. Alle Informationen werden in der Datei in einer klassischen XML-Struktur beschrieben, sodass alle Angaben auch nur mit dem klassischen Editor von Windows oder Notepad++[1] und dem dort verfügbaren Plugin XML-Tools[2] im Klartext lesbar sind.

Dieser Teil des Handbuchs über DMXControl 3 beschäftigt mit der Erstellung von DDFs. Die Unterteilung der Artikel orientiert sich dabei an den vorhandenen Steuerfenster in DMXControl 3 selbst. Der Teil des Handbuchs zu den DDFs in DMXControl 3 gliedert sich in vier Bereiche:

  • Grundlagen und wichtige Hinweise zur DDF-Erstellung
  • Syntax der unterstützten Funktionen
  • Procedures zum Aufrufen bestimmter Gerätefunktionen
  • Beispiele zur manuellen Programmierung von DDFs für DMXControl 3


Wichtiger Hinweis Der aktuelle DDFCreator unterstützt auf Grund seines Alters nicht alle Funktionen, die in den DDFs für DMXControl 3 abgebildet werden können. Unter Umständen löscht der DDFCreator Bestandteile im DDF, die dieser nicht kennt. Daher ist es empfehlenswert, den DDFCreator nicht mehr zu verwenden, sobald im DDF manuell zusätzliche Funktionen hinzugefügt wurden.
Achtung, wichtiger Hinweis! DDFs für DMXControl 2 sind nicht mit den DDFs für DMXControl 3 kompatibel, da sich der interne Aufbau komplett unterscheidet. DMXControl 3 benötigt für den Hardware Abstraktions-Layers (HAL) zusätzliche Informationen. Auch bringen die DDFs keine selbst gebaute Bedienoberfläche mit. Alle Steuerelemente generiert DMXControl 3 einheitlich über die GUI.


Grundlagen

Kapitel Zusammenfassung
Allgemeine Einführung Die allgemeine Einführung gibt einen groben Überblick, was DDFs im Kontext von DMXControl 3 sind, nach welchen Merkmalen die DDFs in DMXControl 3 zum Einsatz kommen und welche Verzeichnisse auf dem PC für die DDFs genutzt werden.
Grundaufbau Dieser Artikel beschreibt die grundlegende Struktur eines DDFs für DMXControl 3 sowie die Angaben wie Informationen zum Gerät, die im Informationsteil zu machen sind.
Funktionselemente In diesem Artikel werden verschiedene Gemeinsamkeiten erläutert, die unabhängig von der verwendeten Funktion zu einer vollständigen Definition von insbesondere komplexeren DMX-Kanälen benötigt werden und daher in den meistern DDFs zu finden sind.
Grundregeln Die Grundregeln fassen zusammen, von welchen Einheiten der HAL beispielsweise bei der Festlegung der maximalen Strobefrequenz ausgeht.


Wichtiger Hinweis DMXControl 3.2 unterstützt noch keine Multibeam-Geräte (Geräte mit seperat gesteuerten Lampen). Dies kann mithilfe mehrerer einzelner DDFs, bzw. einem DDF und Generic RGB, Dimmer, etc. umgangen werden.

Funktionsübersicht

In den DDFs werden folgende Funktionen direkt von der HAL unterstützt. Die Tabelle verweist euch auf die verschiedenen Artikel, in denen euch die jeweiligen Funktionen inklusive aller möglichen Varianten mit entsprechenden Beispielen erklärt werden.

Bereich Funktionen
Intensität Dimmer, Switch, Shutter, Strobe
Position Position, Pan-Tilt-Geschwindigkeit
Farbe RGBx-Farbmischung, CMY-Farbmischung, HSV-Farbmischung, Farbrad, Farbtemperatur
Pixel-Effekte Matrix, Radix
Gobo Goborad
Lichtstrahl Fokus, Frost, Iris, Zoom
Blendenschieber Blendenschieber
Effektrad Prisma, Effektrad
Bühneneffekte Nebel, Ventilator
Allgemeine Funktionen Index, Rotation, Cool, Heat
Freie Funktionen rawstep, raw, rawranges, const

Procedures

Kapitel Zusammenfassung
Funktionen Dieser Artikel listet alle in DMXControl 3 verfügbaren Procedures auf.
Beispiele Der Artikel zeigt ein paar Beispiele für vorgegebene, aber auch für eigene Procedures.

Tutorials

Kapitel Zusammenfassung
LED-Scheinwerfer Im ersten von insgesamt drei Tutorials wird das DDF für einen einfachen LED-Scheinwerfer erstellt. Als Vorlage dient Cameo LED Mini Tri Par Can 3W.
4er-LED-Bar Das zweite Tutorial behandelt die manuelle Erstellung eines DDFs für einer 4er-LED-Bar am Beispiel der Eurolite LED KLS-2500.
Moving Head Das dritte Beispiel zeigt, wie das DDF für einen einfachen Moving Head erstellt wird. Als Vorlage dient hier der Showtec Indigo 150 LED, der teilweise auch unter anderen Marken vertrieben wurde.

Links und Referenzen

Links

  1. Notepad++ ist ein freier Text- und Quellcodeeditor. Weitere Informationen auf der Herstellerseite: https://notepad-plus-plus.org/
  2. Installationsanleitung für das Plugin XML-Tools mit Hilfe des integrierten Pluginadministrator von Notepad++: https://community.notepad-plus-plus.org/topic/16983/xml-tools/2

Videotutorials

Auf unserem YouTube-Kanal findet ihr zu diesem Thema folgende Videos.

Spot on: Wir bauen uns DDFs