Skip to content

Linux service and MIDI for Bitwig

VRTEFVKT edited this page Oct 21, 2026 · 1 revision

Linux service and MIDI for Bitwig

As a service without a window

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 log

The 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

MIDI for Bitwig and other DAWs (snd-virmidi)

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 window

index=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.

Clone this wiki locally