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
cdinto 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