Repository navigation
Linux service and MIDI for Bitwig
If a Linux computer should always receive, also without an open window, run PadBridge as a systemd user service:
mkdir -p ~/.config/systemd/user
cp padbridge.service ~/.config/systemd/user/ # from the release package, or rust/app/ in the repo
systemctl --user daemon-reload
systemctl --user enable --now padbridge
journalctl --user -u padbridge -f # follow the logThe service runs padbridge --headless --listen --receive-only: no window,
always ready to receive, and it reads no pads on this computer. So the window
can run next to it without MIDI arriving twice.
When you open the window next to it, the window takes over receiving: the service pauses, and the window shows everything from the peer (pads, MIDI devices, virtual pads). When you close the window, the service receives again after a second or two. The virtual pads are created anew once; a running game sees that as a short unplug and replug.
Start options (padbridge --help):
| Option | Effect |
|---|---|
--headless |
no window, runs until stopped |
--listen |
accepts a peer regardless of the setting |
--receive-only |
reads no pads on this computer and sends nothing |
PadBridge creates an ALSA sequencer port PadBridge. Some DAWs, Bitwig on Linux for example, only list rawmidi devices. The fix is a virtual rawmidi device, which PadBridge connects to automatically in both directions:
echo snd-virmidi | sudo tee /etc/modules-load.d/padbridge-virmidi.conf
echo 'options snd-virmidi midi_devs=1 index=9 id=PadBridge' | sudo tee /etc/modprobe.d/padbridge-virmidi.conf
sudo modprobe snd-virmidi
systemctl --user restart padbridge # or restart the windowindex=9 keeps the virtual card from taking a low number ahead of the real
sound cards at boot. The log then shows "MIDI mit VirMIDI … verbunden"
(connected to VirMIDI).
In Bitwig:
- Settings → Controllers: add "Generic MIDI Keyboard", input VirMIDI 9-0
- Settings → Synchronization: clock output VirMIDI 9-0, so the LED ring or light bar follows the beat
Check without a DAW: aseqdump -p PadBridge or amidi -p hw:9,0 -d.