Ob beim Krippenspiel, einer Schulaufführung, einem kleinen Bandauftritt oder beim Kinderferienprogramm: Oft sind es nur wenige Scheinwerfer, aber stimmiges Licht hebt die gesamte Veranstaltung sofort auf ein anderes Niveau. Das Problem dabei ist meistens die Steuerung. Herkömmliche analoge DMX-Pulte sind in der Handhabung mühsam, und das Programmieren wird zum Geduldsspiel, wenn man es nicht jede Woche macht. Professionelle Softwarelösungen sind dagegen oft überladen, teuer und erfordern viel Einarbeitung.
Ziel dieses Projekts war ein minimalistisches, digitales Lichtpult: Direkte Fader zum Einstellen ohne Adressrechnerei, freie Beschriftung und Farbcodierung der Kanäle sowie das einfache Speichern und Überblenden von Lichtszenen.
Technische Funktionsweise
Die Software basiert auf Python (PySide6) für das Backend und QML (QtQuick) für die grafische Benutzeroberfläche:
- Signalverarbeitung und Datenhaltung: Das Python-Backend verwaltet alle 512 DMX-Kanäle in einem statischen Byte-Array. Beim Bankwechsel oder Faden werden nur Signale für die gerade sichtbaren 8 Fader an die Oberfläche gesendet, was die Prozessorlast minimal hält.
- Protokoll und Timing: Ein QTimer sendet das DMX-Signal mit ca. 30 Hz über die serielle Schnittstelle. Das Paket besteht aus einem 518-Byte-Frame nach dem Standard-FTDI-Protokoll (Header, Startcode, 512 Datenbytes und Footer).
- Hardware-Anbindung: Die Ausgabe ist aktuell auf das EUROLITE USB-DMX512 PRO Kabel-Interface ausgelegt, da dieses die feste Baudrate von 250.000 Baud und das geforderte Rahmenformat nativ unterstützt.
- Szenen- und Workspace-Verwaltung: Beim Programmstart ist das System komplett leer (alle Werte auf 0). Szenen, Faderfarben, Beschriftungen und eigene Farbpaletten werden erst aktiv, wenn eine Workspace-Datei im JSON-Format geladen oder explizit gespeichert wird.
Die Benutzeroberfläche
1. Die Fader-Ansicht (Standardansicht)
Im regulären Betrieb siehst du acht Fader-Züge im analogen Pult-Design
3. Der Theatermodus
Für den Live-Einsatz dient der Theater-Tab
Ausblick und geplante Funktionen
- COM-Port-Auswahl: Auswahl der seriellen Schnittstelle direkt in den Einstellungen der Oberfläche oder automatische Erkennung des USB-Interfaces.
- Automatischer Szenenablauf (Chaser): Zeitgesteuertes, automatisiertes Durchlaufen von gespeicherten Szenen für Hintergrundbeleuchtung oder Partymodi.
- Moving-Head-Integration: Vordefinierte Kurven und Bewegungsformen (Kreis, Acht, Welle), die Standard-Scheinwerfer einfach abfahren können, ohne Kanäle einzeln programmieren zu müssen.
Installation und Inbetriebnahme
Bevor das Pult genutzt werden kann, sind einige wenige Vorbereitungen auf dem Rechner nötig:
- Zusätzliche Software und Bibliotheken:
Voraussetzung ist eine installierte Python-Umgebung (Version 3.10 oder neuer). Über die Eingabeaufforderung müssen zusätzlich die beiden benötigten Pakete mit folgendem Befehl installiert werden:
pip install PySide6 pyserial
PySide6 liefert die grafische Oberfläche samt QtQuick-Engine, während pyserial die Kommunikation mit dem USB-DMX-Interface übernimmt. - Warnhinweis beim Download:
Da es sich bei dem Quellcode um reine Python-Skripte (.py) handelt, schlagen moderne Browser oder Virenscanner beim Herunterladen mitunter Alarm. Diese Dateien können geblockt oder als potenzielles Risiko eingestuft werden, da es sich um ausführbaren Code handelt. Die Warnung kann in diesem Fall bedenkenlos bestätigt und der Download zugelassen werden. - Start per Batch-Datei (.bat):
Um das Pult nicht jedes Mal über das Terminal aufrufen zu müssen, empfiehlt sich eine einfache Batch-Datei (z. B. start_dmx.bat) im selben Ordner. Diese startet das Skript per Doppelklick und hält das Konsolenfenster im Hintergrund offen, sodass Verbindungsmeldungen oder Statusfehler sofort sichtbar bleiben . Ein einfacher Inhalt dafür sieht so aus : @echo off cd /d "%~dp0" python main.py pause






