MIDI over HTTP — simple, powerful, and cross-platform.
midi-relay
lets you send and receive MIDI messages across a network using JSON-based HTTP requests. Built with flexibility in mind, it's perfect for triggering MIDI gear from custom tools, Bitfocus Companion, or remote scripts.
Created by Joseph Adams, distributed under the MIT License.
More info: www.josephadams.dev
- Send MIDI messages via HTTP POST (JSON payload)
- Cross-network and cross-subnet support
- Listen for incoming MIDI messages and trigger scripts, HTTP requests, or automation
- Bitfocus Companion integration
- Headless server and desktop app versions
- Download the appropriate binary from Releases
- Launch the app on your OS
- MIDI ports will be scanned on startup
- The app runs an HTTP server on port
4000
(must be available)
📝 To run it from terminal (headless), use v2.x instead.
- Install Node.js from nodejs.org
- Clone or download the source
- Open terminal and
cd
into the folder - Run it with:
node main.js
If midi_triggers.json
is missing, it will be created automatically after you add your first trigger.
- Install PM2 globally:
npm install -g pm2
- Start the service:
pm2 start main.js --name midi-relay
- (Optional) Enable startup on boot:
pm2 startup
- View logs:
pm2 logs midi-relay
You can integrate midi-relay into third-party control systems by sending HTTP POST requests with MIDI data in JSON format.
MIT License © Joseph Adams