LibertyStick - WLED-Pixel-Tube DDF für DMXControl erstellen

17.04.2024 erstellt
18.04.2024 editiert

Hier beschreibe ich, wie ich eine DDF-Datei erstelle, mithilfe von Excel und den Tabellen (Effekte und Palletten) von der WLED-Webseite.

Was ist DMXControl?

DMXControl ist eine DMX-Steuerungssoftware, mit der man sehr komplexe Bühnenlichtsteuerungen umsetzen kann. Alle DMX-Geräte werden in der Software angelegt und können Gruppenweise angesprochen, mit Bewegungsabläufen, Farben und Effekten programmiert werden. 

Folgende "Features" machen DMXC für mich zur Software der Wahl:

  • extrem Leistungs- und Featurestark
  • H.A.L. Hardware Abstraktions-Layer (Erklärung weiter unten)
  • unterstützt viele kommerzielle DMX-Interfaces von Hause aus
  • sendet ArtNET "out-of-the-Box"
  • OS2L-Plugin empfängt BPM/Beat-Informationen direkt von DJ-Software (VirtualDJ) 
  • kostenlos
  • außerordentliche Community
  • Stark netzwerkfähig, Licht und Ton können am selben Rechner laufen, Lichtsteuerung kann auch auf 2. Rechner ausgelagert werden - BPM/Beat-Info kommt trotzdem an
  • Version 3.3 (RC2) unterstützt StreamDeck XL für Bedienung ohne separaten Rechner

H.A.L.

Software-DMX-Steuerungen arbeiten üblicherweise kanalbasiert. Das heißt, man legt Farben, Bewegungen , Gobos usw. jeweils auf den entsprechenden Kanälen der Geräte ab. Gerätegruppen können meist nur gleichartige Geräte beinhalten, da nur so sichergestellt ist, dass die korrekten Kanäle angesprochen werden.

Das Hardware-Abstraktions-Layer von DMXControl funktioniert anders. In DMXC patcht man die Geräte zwar genau so, wie in anderen Programmen - es wird aber so etwas wie ein Funktions-Layer darüber gelegt. Ein Moving-Head zum Bsp. bekommt verschiedene Funktionen zugewiesen: Dimmer, Farbe, Gobo, Pan/Tilt, Prisma usw. Die Software kümmert sich aber alleine darum, welches Gerät welche Funktion auf welchem Kanal liegen hat. So ist es möglich, ganz unterschiedliche Geräte verschiedener Hersteller zusammen in einer Gerätegruppe zu verwalten.

Wird bei anderen Programmen zum Bsp. ein Bewegungsablauf für die Geräte(gruppe) einer Art erstellt, muss die Programmierung oft neu ausgeführt werden, wenn sich z.Bsp. die Anzahl der Geräte ändert oder die Geräte umgepatcht werden.

Nicht so in DMXC. Hier werden alle Bewegungs-, Farb- oder Chaser-Szenen einer oder mehrerer Gerätegruppen zugeordnet. Die Ansteuerung der Geräte wird immer live berechnet. Egal ob heute 4 MH's auf der Bühne hängen oder morgen 12 ganz andere MH's am Bühnenrand stehen. Alle MHs befinden sich in der Gruppe und werden je nach Location einfach de- oder aktiviert. An der Programmierung ändert sich nichts.

ArtNET Steuerung per DMXControl - nicht ohne DDF

Jeder, der schon einmal eine Software-DMX-Steuerung benutzt hat, weiß, dass man spezielle Gerätedateien benötigt. Was bei Daslight die SSL-Files sind, sind bei DMXC die DDF's (Device Definition Files). Diese bestehen aus einer mehr oder weniger übersichtlichen XML-Struktur und sagen der Software, welche Funktion eine Lampe hat und auf welchem DMX-Kanal diese angesprochen werden müssen.

DMX-Kanäle für WLED-Leuchten

So wie die meisten kommerziellen DMX-Geräte unterschiedliche Kanalbelegungs-Modi mitbringen, sind auch in WLED unterschiedliche Modi möglich, welche am Gerät in der Konfiguration eingestellt werden kann.

Disabled

Incoming E1.31 packets will be ignored.

Single RGB

All LEDs are set to the same color. 3 Channels: Red, Green, Blue

Single DRGB

All LEDs are set to the same color. 4 Channels: Master Dimmer, Red, Green, Blue

Effect

Not a realtime mode & only support 1 universe. Allows setting WLED effect properties over E1.31 with 15 channels.

Effect + White

Same as Effect with additional whites = 18 channels

Effect Segment

Same as Effect with 15 channels per segment

Effect Segment + White

Same as Effect Segment including whites, so it uses 18 DMX channels per segment.

Multiple RGB

3 Channels per LED in sequence. LED 0 Red, LED 0 Green, LED 0 Blue, LED 1 Red, ... Default mode, equivalent to pre-0.9.1 E1.31. This is the mode you want to use for xLights and LedFx.

Multiple RGBW

Like Multiple RGB + additional white channels.

Dimmer + Multi RGB

Like Multiple RGB, but the first channel is a brightness control. Master Dimmer, LED 0 Red, LED 0 Green, ...

Preset

Trigger presets and control brightness. 2 Channels: Brightness, Preset ID

Mehr und jeweils aktuelle Infos hier: https://kno.wled.ge/interfaces/e1.31-dmx/

Kanalbelegung für "Effect" Modus

Theoretisch könnte man jetzt den Multi RGB Modus nutzen für jede LED 3 Kanäle für RG und B nutzen. Das hat aber den Nachteil, dass bei 8-12 Sticks mit jeweils 120 LED-Pixeln massiv viele Kanäle benötigt würden. Zusätzlich ist hier die Ansteuerung per WLAN m. E. nicht echtzeitfähig, wodurch Effekte nicht sehr schön fließend aussehen. Nebenbei hat man so keinen Zugriff auf die WLED-eigenen Effekte, um die es ja eigentlich geht.

Also nutzen wir den Effect Mode. Die 15 Kanäle lassen folgende Funktionen zu:

Effect mode (15 Channels)

ChannelNameBeschreibung
1Master Dimmer0 ... 255, Gerätehelligkeit 0...100%
2Effect Mode ID0 ... 255, Effekt-Nummer
3Effect Speed0 ... 255, Effekt-Geschwindigkeit
4Effect Intensity0 ... 255, Effekt-Intensität, je nach Typ
5Effect Pallette ID0 ... 255, Farbpallette, soweit anwendbar
6Effect Option0 ... 63, normal
64 ... 127, reverse
128 ... 191, Mirror
192 ... 255, reverse & Mirror
7Primary RED
erste Effekt-Farbe, R/G/B
8Primary GREENjeweils 0 ... 255
9Primary BLUE-> 0 ... 100 %
10Secondary RED
zweite Effekt-Farbe, R/G/B
11Secondary GREEN
jeweils 0 ... 255
12Secondary BLUE
-> 0 ... 100 %
13Tertiary REDdritte Effektfarbe, R/G/B
14Tertiary GREENjeweils 0 ... 255
15Tertiary BLUE-> 0 ... 100 %

Anforderungen an die Gerätedatei (XML/DDF)

Aus der Tabelle links ergeben sich nun die Funktionsblöcke, die in der XML angegeben sein müssen. 

Der Master Dimmer ist am einfachsten zugeordnet. Effect Speed,  -Intensity und -Option lassen sich ebenfalls sehr einfach festlegen.

Da DMXC pro Gerät nur einen RGBx-Funktionsblock zulässt, bietet es sich an, nur die ersten 6 DMX-Kanäle in der XML festzulegen und die drei RGB-Farbbereiche hier weg zu lassen.

Diese kann man separat als generische RGB-Devices patchen und dann jeweils in einer "Primär-, Sekundär- und eine Tertiär-Gruppe zusammenfassen". Damit lassen sich dann die Farben einzeln pro Gerät, oder aber für die ganze Gruppe festlegen.

Für Effect Mode ID und Effect Pallette ID wird es nun schon schwieriger. Hier müssen alle Effekte und Palletten, die in WLED programmiert sind, mit Namen und Ihrer Nummer in der XML angelegt werden, damit jeder Effekt und jede Pallette auch in DMXC anwählbar sind.

Hierbei habe ich mir von Excel helfen lassen. MS Excel bietet aktuell eine Funktion, Tabellen direkt von Webseiten einzulesen. Wenn man diese einmal in einer Tabelle hat, kann man gut damit weiter arbeiten und die Funktionsblöcke ohne viel Schreibarbeit exportieren.

Und so geht es...

Funktionsblöcke mit Excel erfassen und bearbeiten

Excel öffnen und "Daten" "aus dem Web" wählen
Hierbei die URL zur WLED-Effektseite eingeben.
https://kno.wled.ge/features/effects
Excel interpretiert nun die Webseite und schlägt alle erkannten Tabellen zum Import vor

nach "Laden" landet die gesamte Tabelle in einem Excel Arbeitsblatt und kann weiter bearbeitet werden.
In der Spalte "Flags" sind die verschiedenen Modi erkennbar. So können wir nun die Effekte für 2D-Anzeigen löschen, da wir im Beispiel ja nur einen Pixel-Streifen einsetzen wollen, und keine Matrix.
erst alle Haken entfernen und nur das Quadrat (2D) auswählen
Hier löscht man jetzt die Zeilen komplett, so dass auch keine Leerzeilen verbleiben

und in der Spalte Flags aktiviert man nun wieder "alle"
am Ende können wir noch den Tabellenbereich markieren und nach der ID-Nummer sortieren lassen 

in einem zweiten Arbeitsblatt ...

... füge ich mir nun alle gewünschten Infos aus der Tabelle zusammen.
Dabei füge ich auch gleich die XML-Elemente für jede Zeile ein, die ich für die DDF benötige. Hier kommt ein  "STEP" mit "mindmx" und "maxdmx" zum Einsatz.
So soll jede Einzelzeile Am Ende aussehen:
Die gesamte Tabelle exportiere ich nun als CSV-Datei.
​Da diese nun noch zuviele Trennzeichen enthält, entferne ich mit einem Textprogramme die Semikola und die überflüssigen Textanführungszeichen.

zuerst am Zeilenanfang - "suchen und ersetzen"
suche nach "< und ersetze mit <
dann die dreifachen Anführungszeichen vor ...
suche nach """;  und ersetze mit "
... und die dreifachen Anführungszeichen danach ...
suche nach ;""" und ersetze mit "
und am Zeilenende:

suche nach />" und ersetze mit />
Damit sind die Zeilen vollständig und können in die XML hineinkopiert werden.
Im Bereich <rawstep.... namens "Effect Name" sind nun alle verfügbaren Effekte mit der ID als Kanelwert enthalten. Fast ohne Tipparbeit.

Effect Pallettes

Den selben Vorgang wiederhole ich für die Effect Palletten. Diesmal aus der Webseite: https://kno.wled.ge/features/palettes/

damit sind auch alle Farbpalletten in der DDF drin... in wenigen Minuten...