MIDIBridge is a lightweight, open-source toolset that streams MIDI signals to any machine over the Internet in real time.
No extra hardware. No distance limit. Just plug in and play.
MIDI Keyboard ──USB──▶ Server ──WebSocket──▶ Client ──Virtual MIDI──▶ DAW / Other Software
| Component | Repo | Description |
|---|---|---|
| Server | midibridge-server | Reads USB MIDI input and broadcasts over WebSocket |
| Client | midibridge-client | Receives signals and injects them into a virtual MIDI port for use by DAWs |
| Android | midibridge-android | Run MIDIBridge Server on your Android device |
| Feature | Description |
|---|---|
| 🔌 Zero-config pairing | Set password once — client auto-connects |
| 👥 Multi-client | One server broadcasts to multiple clients simultaneously |
| 🔄 Hot-plug recovery | Unplug and replug the keyboard anytime — server auto-detects |
| 🎯 Device targeting | Configure target MIDI device name — auto-retries until ready |
| 🔒 Password-protected | bcrypt-hashed storage with remote online update |
| ♻️ Auto-reconnect | Exponential backoff with random jitter to avoid connection storms |
Download the binary for your platform from MIDIBridge-Server Releases, extract and run
Change the default password via the HTTP API after first launch.
See the server repository README.md for detailed instructions.
Run MIDIBridge Server on your Android device
Download the APK from MIDIBridge-Android Releases and install it on your phone.
See MIDIBridge-Android README for details.
Download the binary for your platform from MIDIBridge-Client Releases, extract and run:
./midibridge-clientEdit
data/config.jsonwith your server IP and password before starting.
Important
Windows users: Due to driver limitations, install loopMIDI first and create a virtual port with the same name as virtualPortName in your config file — otherwise the client cannot inject MIDI signals.
MIT — Use, modify, and distribute freely.