Aufnehmen, abspielen, Musik, Pult-Fernbedienung und Licht — für Behringer-Mischpulte der X-Serie, auf einem Raspberry Pi, bedient über den Browser.
ScreenRecording_compressed.mp4
XRack turns a Raspberry Pi into a recorder, player and lighting desk for Behringer X-series mixing consoles (XAir, X32 and compatible). Plug the console in over USB, open the web interface from any phone, tablet or laptop, and you have every channel of the desk to record and play back — no screen or keyboard on the Pi.
It is built for the stage: everything is reachable in one or two taps, nothing needs a terminal, and features that are not set up simply do not appear.
- Raspberry Pi 5
- a Behringer X-series console (tested: XAir XR18)
- the USB cable between the two
- optional: a MediaTek MT7612U USB Wi-Fi adapter, if XRack should open its own Wi-Fi network
- optional: a USB-to-DMX cable with an FTDI chip, for the lighting features
git clone https://github.com/chrisse1/XRack.git
cd XRack
./install.shThe installer is meant for a freshly set up Raspberry Pi. It installs everything needed and sets up a service that starts XRack on boot. It asks for the interface language, the port, the hostname and a four-digit PIN that protects the settings, and it optionally sets up Wi-Fi and Bluetooth — the questions explain themselves as you go.
Afterwards the web interface is at https://<hostname>.local:<port>,
by default https://xrack.local:8080. The certificate is self-signed, so
the browser shows a warning once ("Advanced" → "Proceed"); it remembers
the exception afterwards.
At the end the installer says whether lighting could be set up. If it failed, the reason is right there — and it can be caught up on its own, without the whole installer:
./install.sh --dmxThree ways to wire it up, switchable in the settings:
- XRack and console both on a router, over cable
- XRack opens its own Wi-Fi network, console on a cable to the Pi (needs the USB Wi-Fi adapter)
- XRack joins an existing Wi-Fi network, console on a cable to the Pi
- Virtual soundcheck — record every channel straight off the desk, then play it back on exactly the same channels. The band can soundcheck without playing.
- Practice mix — combine several stereo files (a click track, your own instrument, the rest of the band) into one multichannel recording. File one lands on channels 1+2, file two on 3+4, and so on. At the desk you then dial in exactly what you want to hear.
- Upload and copy — add
.w64files through the web interface, and copy any recording to a plugged-in USB stick with one button.
Recordings are Wave64 (.w64), which does not have the 4 GB limit of
plain WAV — with 18 channels that is reached after about 26 minutes.
- Music player — shuffle a whole folder on a loop for break music, or play a single track, on any stereo pair you choose. Shows title and artist where the file carries them.
- Bluetooth audio — pair a phone from the dashboard and put its audio on a channel pair. Off after every restart, on purpose: Bluetooth is only so-so for live use.
Both cards have their own level control and mute for the pair they use, so you do not have to scroll to the channel strips.
- Channel strips — the desk's own faders and mutes with their channel names, plus the master. Locked until you open the padlock, and they lock themselves again after a while (you set whether and after how long). While locked, not a single packet goes onto the network.
- Snapshots — recall the snapshots (X32: scenes) stored in the console. This is the most far-reaching command XRack sends, so it sits behind the same lock and asks first.
- Reach the console from your home network — one switch, and the console hanging off the Pi is reachable from your network through XRack's own address. X32-Edit, X-AIR-Edit and Mixing Station work without replugging anything; the address to type in is right under the switch.
XRack finds the console by itself. If a router blocks the discovery broadcast, enter the IP in the settings; the magnifier button in the channel strip card searches again.
Everything below is behind one switch under Settings → Lighting — without DMX you never see it.
-
Fixtures — a template describes what each channel of a fixture does (red, green, blue, dimmer, pan, tilt, gobo, strobe …). A fixture is then just template + start address + name. Templates ship for a plain dimmer, RGB, RGB+dimmer, RGBW, an 8-segment LED bar and three Eurolite sets (KLS-180, KLS-180/6 in two modes, KLS Laser Bar PRO FX). Anything else you enter channel by channel from its manual — a guessed preset would be worse than none.
-
Scenes — save what is currently lit and recall it with one button. Scenes are stored relative to the fixture, so moving a fixture to a different start address does not invalidate them.
-
Music-driven light show — XRack listens to the desk and makes light out of it. The source is either a channel pair or a single channel, and the single channel is the interesting one: on an AUX bus you can build a mix just for the light — bass drum and snare up front, the vocal out — and it costs one USB channel instead of two. The one you save is free for recording. Each fixture has a kind:
Kind What it does Effect light every segment gets its own frequency band, derbys spin, lasers follow the music — on top of that one of two looks (below) Background light 1 and 2 one colour at a time, changing every few beats and fading across; each group has its own colours and they run offset from each other Left out of the show keeps whatever you set by hand or from a scene Each of the three groups has its own set of three colours. When the music stops, XRack fades into a scene you choose (or to black); when it starts again the show comes straight back in.
The effect light comes in two looks, switched in one place for the whole show:
Look What it does Moving point one segment lights up fully and moves on with every bass hit, the others stay at a base level Pulse on the beat all segments breathe together: on every beat they go to full and fall back until the next one. Each keeps its own colour, so you still see which band is doing what — and it works on a single RGB par, which the moving point cannot. How long a beat glows on and how bright it stays in between are both sliders The background light is a wash in both cases.
On top of that the colour order can reverse: every few beats it runs the other way across the segments — red-green-blue becomes blue-green-red and back. Brightness and movement stay as they are; only the mapping flips.
On top of that the show can flash the strobe channels on particularly loud hits — usually the snare. It is off until you switch it on: nobody wants a strobe that starts by itself. How loud much gets through and how hard the flash lands are two sliders. The middle of the sensitivity is set so the strong hits flash; further up the running beat comes through too, further down only the biggest accents.
One thing to keep in mind when switching to a single channel: the same signal comes in twice as loud as it would as one half of a pair whose neighbour is silent (6 dB). The bands do not care — they are measured against the running peak — but the silence threshold works on the absolute level, so it may need a nudge.
Shutter, gobo and the white channel are never driven automatically — they stay yours, and what you set by hand stays put while the show runs. The same holds for the strobe channels as long as the flash is off.
After installing, the DMX output has to be assigned once — under Settings → Lighting, pick the port your cable is on and press Assign. Until then the fixtures stay dark even though service and cable are fine; XRack says so in the lighting card. The assignment survives restarts.
- Update — one button fetches the current version from GitHub, the other takes a release ZIP off a USB stick (the way that works without internet). Recordings, music and all settings survive, and if the interface does not come back, XRack restores the previous version by itself. A ZIP older than what is installed is refused.
- Network self-test — one button under Maintenance that checks radio hardware, access point, home network and console in one go and says what does not fit together. The output can be copied and passed on; the Wi-Fi password is not in it.
- Diagnostic recording — a switch that logs in the background how XRack and the network are doing, for faults that only show up now and then. It survives a restart and the log downloads straight from the settings.
There is an emulator for the mixer: scripts/xair-emulator.py answers
on port 10024 like an XR18 — faders, mutes, channel names, links,
snapshots. Started by hand, on the Pi or on any computer with Python:
python3 scripts/xair-emulator.pyThen enter 127.0.0.1 as the console address in the settings (or
press the magnifier in the channel-strip card — the broadcast reaches
a program on the same machine too). Everything you change in XRack
shows up in the emulator's terminal.
With --audio it also plays 18 channels of test signal into an ALSA
loopback, which XRack then records like an interface — kick, snare,
hi-hat, bass, guitar, voice, and the light mix on 17+18. The kernel
module has to be loaded once:
sudo modprobe snd-aloop
python3 scripts/xair-emulator.py --audioThe same program stands in for the console in the test suite, so it
cannot quietly drift away from what XRack expects. --x32 makes it
answer as an X32 instead.
If the web interface does not come up, the update also runs from a terminal — the same path the button takes:
sudo ~/XRack/scripts/xrack-update.py ~/XRack pi 8080 \
--repository chrisse1/XRack --branch mainThe port has to be the one actually configured (config/local.yaml),
otherwise the updater thinks the restart failed and rolls back.
sudo systemctl status xrack # is XRack running?
journalctl -u xrack -f # follow the log
sudo systemctl status xrack-hostapd # is the access point up?
iw dev # which adapter is doing what?Why some things are built the way they are — access point, console discovery, updates, DMX — is written down separately in docs/hintergrund.md (German).
XRack is licensed under the GNU General Public License v3.0.
XRack macht aus einem Raspberry Pi einen Recorder, Zuspieler und ein Lichtpult für Behringer-Mischpulte der X-Serie (XAir, X32 und kompatible). Pult per USB anschließen, Weboberfläche am Handy, Tablet oder Rechner öffnen — und alle Kanäle des Pults stehen zum Aufnehmen und Abspielen bereit. Bildschirm oder Tastatur am Pi braucht es nicht.
Gebaut ist es für die Bühne: Alles ist mit ein, zwei Griffen erreichbar, nichts verlangt eine Kommandozeile, und was nicht eingerichtet ist, taucht auch nicht auf.
- Raspberry Pi 5
- ein Mischpult der X-Serie (getestet: XAir XR18)
- das USB-Kabel dazwischen
- optional: ein MediaTek-MT7612U-WLAN-Stick, wenn XRack ein eigenes WLAN aufspannen soll
- optional: ein USB-DMX-Kabel mit FTDI-Chip, für das Licht
git clone https://github.com/chrisse1/XRack.git
cd XRack
./install.shDer Installer ist für einen frisch aufgesetzten Raspberry Pi gedacht. Er installiert alles Nötige und richtet einen Dienst ein, der XRack beim Einschalten startet. Gefragt werden Sprache, Port, Hostname und eine vierstellige PIN, die die Einstellungen schützt; WLAN und Bluetooth richtet er auf Wunsch gleich mit ein — die Abfragen erklären sich beim Durchlaufen von selbst.
Danach ist die Weboberfläche unter https://<hostname>.local:<port>
erreichbar, standardmäßig https://xrack.local:8080. Das Zertifikat ist
selbstsigniert, der Browser zeigt deshalb einmalig eine Warnung
("Erweitert" → "Trotzdem fortfahren") und merkt sich die Ausnahme.
Am Ende sagt der Installer, ob die Lichtsteuerung eingerichtet werden konnte. Ist sie ausgefallen, steht der Grund dabei — nachholen lässt sie sich einzeln, ohne den ganzen Installer:
./install.sh --dmxDrei Betriebsarten, umschaltbar in den Einstellungen:
- XRack und Pult hängen per Kabel am selben Router
- XRack spannt ein eigenes WLAN auf, das Pult hängt per Kabel am Pi (dafür wird der WLAN-Stick gebraucht)
- XRack verbindet sich mit einem vorhandenen WLAN, das Pult hängt per Kabel am Pi
- Virtueller Soundcheck — alle Kanäle direkt vom Pult aufnehmen und danach auf genau denselben Kanälen wieder abspielen. Die Band kann soundchecken, ohne zu spielen.
- Übungsmix — mehrere Stereo-Dateien (Click, das eigene Instrument, der Rest der Band) zu einer Mehrkanal-Aufnahme zusammenfassen. Datei 1 landet auf Kanal 1+2, Datei 2 auf 3+4 und so weiter. Am Pult stellt man sich damit ein, was man beim Üben hören will.
- Hochladen und kopieren —
.w64-Dateien über die Weboberfläche in die Liste laden, und jede Aufnahme mit einem Knopf auf einen angesteckten USB-Stick kopieren.
Aufnahmen liegen als Wave64 (.w64). Dieses Format hat die 4-GB-Grenze
von gewöhnlichem WAV nicht — die wäre bei 18 Kanälen nach rund 26
Minuten erreicht.
- Musikplayer — einen ganzen Ordner zufällig in Dauerschleife abspielen (Pausenmusik) oder einen einzelnen Titel, auf einem frei wählbaren Kanalpaar. Titel und Interpret zeigt er, wenn die Datei sie mitbringt.
- Bluetooth-Audio — Handy oder Tablet direkt vom Dashboard aus koppeln und dessen Ton auf ein Kanalpaar legen. Nach jedem Neustart aus, mit Absicht: Bluetooth ist für den Live-Einsatz nur bedingt geeignet.
Beide Karten haben einen eigenen Regler samt Stummschaltung für ihr Kanalpaar — fürs Lautermachen muss man also nicht zu den Kanalzügen scrollen.
- Kanalzüge — die Fader und Stummschaltungen des Pults samt seiner Kanalbeschriftungen, dazu der Summenregler. Gesperrt, bis man das Schloss öffnet, und sie sperren sich von selbst wieder (ob überhaupt und nach wie vielen Sekunden, stellt man ein). Im gesperrten Zustand geht kein einziges Paket ins Netz.
- Snapshots — die im Pult gespeicherten Snapshots (beim X32: Szenen) aufrufen. Das ist der eingreifendste Befehl, den XRack ans Pult schickt: Er hängt an derselben Sperre und fragt vorher nach.
- Konsole aus dem Heimnetz erreichbar machen — ein Schalter, und das am Pi hängende Pult ist aus dem Heimnetz über XRacks Adresse ansprechbar. X32-Edit, X-AIR-Edit oder Mixing Station funktionieren damit, ohne etwas umzustecken; die Adresse für die App steht direkt unter dem Schalter.
Das Pult findet XRack selbst. Lässt ein Router die Suche nicht durch, trägt man die IP in den Einstellungen ein; der Lupen-Knopf in der Kanalzug-Karte sucht erneut.
Alles Folgende steckt hinter einem Schalter unter Einstellungen → Licht — wer kein DMX hat, sieht es gar nicht erst.
-
Lampen einrichten — eine Gerätevorlage beschreibt, welcher Kanal einer Lampe was macht (Rot, Grün, Blau, Dimmer, Pan, Tilt, Gobo, Strobe …). Eine Lampe ist dann nur noch Vorlage + Startadresse + Name. Mitgeliefert sind Vorlagen für Dimmer, RGB, RGB+Dimmer, RGBW, eine 8-Segment-LED-Bar und drei Eurolite-Sets (KLS-180, KLS-180/6 in zwei Modi, KLS Laser Bar PRO FX). Alles andere trägt man Kanal für Kanal aus dem Handbuch ein — ein geratenes Preset wäre schlimmer als keins.
-
Szenen — den aktuellen Stand speichern und per Knopfdruck wieder aufrufen. Szenen liegen relativ zur Lampe: Wer eine Lampe später auf eine andere Startadresse zieht, muss seine Szenen nicht neu bauen.
-
Musikgesteuerte Lichtshow — XRack hört auf das Pult und macht daraus Licht. Als Quelle lässt sich ein Kanalpaar wählen oder ein einzelner Kanal — und der einzelne ist der spannende Fall: Auf einem AUX-Bus kann man einen eigenen Mix nur fürs Licht bauen, Bassdrum und Snare vorn, die Stimme heraus. Das kostet dann einen USB-Kanal statt zweier, und der gesparte steht für Aufnahmen bereit. Jede Lampe hat dabei eine Art:
Art Was sie tut Effektlicht jedes Segment bekommt sein eigenes Frequenzband, Derbys drehen sich, Laser gehen mit der Musik an — dazu eines von zwei Bildern (siehe unten) Hintergrundlicht 1 und 2 eine Farbe nach der anderen, alle paar Schläge gewechselt und weich übergeblendet; jede Gruppe hat eigene Farben, und die beiden laufen gegeneinander versetzt Von der Show ausgenommen behält, was von Hand oder über eine Szene eingestellt ist Jede der drei Gruppen hat ihren eigenen Satz von drei Farben. Hört die Musik auf, blendet XRack in eine gewählte Szene (oder ins Dunkle); fängt sie wieder an, setzt die Show sofort ein.
Das Effektlicht kann zwei Bilder fahren, umgeschaltet an einer Stelle für die ganze Show:
Bild Was es tut Wandernder Punkt ein Segment leuchtet voll und rückt bei jedem Bassschlag weiter, die übrigen bleiben auf Grundhelligkeit Puls im Takt alle Segmente atmen gemeinsam: bei jedem Schlag gehen sie auf voll und fallen bis zum nächsten zurück. Jedes behält seine Farbe, man sieht also weiter, welches Band was macht — und es wirkt auch auf einem einzelnen RGB-Strahler, den der wandernde Punkt nicht erreicht. Nachleuchten und Grundhelligkeit lassen sich einstellen Das Hintergrundlicht bleibt in beiden Fällen ein Wash.
Dazu lässt sich die Farbreihenfolge umkehren: Alle paar Schläge läuft sie andersherum über die Segmente — aus Rot-Grün-Blau wird Blau-Grün-Rot und wieder zurück. Helligkeit und Bewegung bleiben, wie sie sind; es kippt allein die Zuordnung.
Dazu kann die Show auf besonders laute Schläge — meist die Snare — die Strobe-Kanäle blitzen lassen. Das ist ausgeschaltet, bis du es einschaltest: Ein Blitzlicht, das von selbst angeht, will niemand. Wie viel durchkommt und wie kräftig der Blitz ausfällt, sind zwei Regler. Die Mitte der Empfindlichkeit ist so gelegt, dass die kräftigen Schläge blitzen; weiter oben kommt auch der laufende Takt durch, weiter unten nur noch die dicksten Einsätze.
Eins gehört beim Umstellen auf einen einzelnen Kanal mitgedacht: Dasselbe Signal kommt dort doppelt so laut an wie als Hälfte eines Paares, dessen Nachbar still ist (6 dB). Den Bändern macht das nichts — sie messen sich an der laufenden Spitze —, die Stille-Schwelle arbeitet aber auf dem absoluten Pegel und will vielleicht nachgezogen werden.
Shutter, Gobo und der Weiß-Kanal werden nie von selbst angesteuert — die gehören dir, und was du von Hand einstellst, bleibt auch während der Show stehen. Für die Strobe-Kanäle gilt dasselbe, solange der Blitz aus ist.
Nach der Installation muss der DMX-Ausgang einmal zugeordnet werden: in den Einstellungen unter Licht den Anschluss auswählen, an dem das Kabel hängt, und auf Zuordnen drücken. Bis dahin bleiben die Lampen dunkel, obwohl Dienst und Kabel in Ordnung sind — die Lichtkarte sagt das auch. Die Zuordnung übersteht Neustarts.
- Update — der eine Knopf holt den aktuellen Stand von GitHub, der andere spielt eine Release-ZIP vom angesteckten USB-Stick ein (der Weg, der ohne Internet funktioniert). Aufnahmen, Musik und alle Einstellungen bleiben erhalten, und falls die Weboberfläche danach nicht zurückkommt, stellt XRack den vorherigen Stand selbst wieder her. Eine ZIP mit einer älteren Version als der installierten wird abgelehnt.
- Netzwerk-Selbsttest — ein Knopf unter Wartung, der Funkgeräte, Access Point, Heimnetz und Mischpult in einem Durchgang prüft und benennt, was nicht zusammenpasst. Die Ausgabe lässt sich kopieren und weitergeben; das WLAN-Passwort steht nicht darin.
- Diagnose-Aufzeichnung — ein Schalter, der im Hintergrund mitschreibt, wie es XRack und dem Netzwerk geht. Gedacht für Fehler, die nur sporadisch auftreten: Der Schalter übersteht einen Neustart, und die Aufzeichnung lädt man direkt aus den Einstellungen herunter.
Für das Pult gibt es einen Emulator: scripts/xair-emulator.py
antwortet auf Port 10024 wie ein XR18 — Fader, Stummschaltungen,
Kanalnamen, Kopplungen, Snapshots. Von Hand gestartet, auf dem Pi oder
auf jedem Rechner mit Python:
python3 scripts/xair-emulator.pyDanach in den Einstellungen 127.0.0.1 als Pult-Adresse eintragen
(oder in der Kanalzug-Karte die Lupe drücken — der Rundruf erreicht
auch ein Programm auf demselben Rechner). Was man in XRack ändert,
steht im Terminal des Emulators.
Mit --audio spielt er zusätzlich 18 Kanäle Testsignal in ein
ALSA-Loopback, das XRack wie ein Interface aufnimmt: Bassdrum, Snare,
HiHat, Bass, Gitarre, Gesang — und auf 17+18 den Lichtmix, mit dem
sich die Lichtshow samt Blitz auf die Snare ohne Band prüfen lässt.
Das Kernelmodul muss einmalig geladen sein:
sudo modprobe snd-aloop
python3 scripts/xair-emulator.py --audioDasselbe Programm steht in der Testreihe an der Stelle des Pults — es
kann also nicht still von dem abweichen, was XRack erwartet. Mit
--x32 antwortet es als X32.
Kommt die Weboberfläche nicht hoch, lässt sich das Update auch von der Kommandozeile einspielen — derselbe Weg, den der Knopf nimmt:
sudo ~/XRack/scripts/xrack-update.py ~/XRack pi 8080 \
--repository chrisse1/XRack --branch mainDer Port muss der tatsächlich eingestellte sein (config/local.yaml),
sonst hält der Updater den Neustart für gescheitert und rollt zurück.
sudo systemctl status xrack # läuft XRack?
journalctl -u xrack -f # Live mitlesen
sudo systemctl status xrack-hostapd # läuft der Access Point?
iw dev # welches Funkgerät macht was?Warum einiges so gebaut ist, wie es gebaut ist — Access Point, Pultsuche, Update, DMX —, steht getrennt in docs/hintergrund.md.
XRack steht unter der GNU General Public License v3.0.