What is this?
This is a browser-based tool for sending and receiving MIDI over the internet between two computers. One person sends MIDI (from a keyboard, controller, or DAW) and another person receives it on a different computer anywhere in the world. The relay server in the middle passes the MIDI data through in real time.
Before you start
You will need:
- A modern browser — Chrome or Edge are recommended (Firefox does not support Web MIDI)
- A room code — both people need to type the same room name to connect to each other
- A MIDI device (keyboard, controller) or a virtual MIDI port if you want to route MIDI into a DAW
Connecting two computers
- Person A (the sender) opens the MIDI Relay page, selects Sender as their role, types a room code (e.g. "studio-session"), selects their MIDI input device, and clicks Connect.
- Person B (the receiver) opens the same page, selects Receiver, types the same room code, selects their MIDI output device, and clicks Connect.
- Test it: Person A plays a note on their MIDI controller. Person B should see activity in the log and hear the note if their output device is connected to a sound source.
Connecting to a DAW (Ableton, Logic, etc.)
To get MIDI from the browser into your DAW, you need a virtual MIDI port. This creates a bridge between the browser and your music software. The setup depends on your operating system.
macOS — IAC Driver
- Open Audio MIDI Setup (search for it in Spotlight, or find it in Applications → Utilities)
- If you don't see the MIDI Studio window, go to Window → Show MIDI Studio
- Double-click IAC Driver
- Tick Device is online
- Click Apply
The IAC Driver will now appear as both a MIDI input and output. In the browser, select Receiver and choose IAC Driver as the MIDI output. Your DAW will see it as a MIDI input.
Windows — loopMIDI
- Download and install loopMIDI (free) from Tobias Erichsen's website
- Open loopMIDI and click the + button to create a new virtual port
- Give it a name (e.g. "MIDI Relay")
The new port will appear in the browser's device list. Select Receiver and choose your loopMIDI port as the output. Your DAW will see it as a MIDI input.
Linux — Virtual MIDI
Run this command in a terminal to create virtual MIDI ports:
sudo modprobe snd-virmidi
This creates several virtual MIDI ports that appear as both inputs and outputs. Select one as the output in the browser, and use the corresponding input in your DAW.
Ableton Live
- Open Preferences (Ctrl/Cmd + comma)
- Go to the Link/Tempo/MIDI tab
- Find your virtual MIDI port (IAC Driver on Mac, loopMIDI on Windows) in the MIDI Ports section
- Enable Track for the input
- On a MIDI track, set MIDI From to your virtual port
Logic Pro
Logic Pro automatically recognises the IAC Driver. Simply create a Software Instrument track and it will receive MIDI from the IAC Driver input. No additional setup is needed.
Other DAWs
Look for the MIDI input settings in your DAW's preferences. Enable the virtual MIDI port (IAC Driver, loopMIDI, or snd-virmidi) as an input, then assign it to a track.
If something isn't working
- No MIDI devices appear in the browser: Make sure you're using Chrome or Edge. Click "Refresh" next to the device dropdown. Your browser will ask for permission to access MIDI devices — click Allow.
- Connected but no MIDI is arriving: Check that both people are using the exact same room name (case-sensitive). Check that one person is set to Sender and the other to Receiver.
- Firefox doesn't work: Firefox does not support the Web MIDI API. Use Chrome or Edge instead.
- Activity log shows MIDI data but DAW doesn't respond: Check that the virtual MIDI port is enabled as an input in your DAW's preferences, and that a track is set to receive from it.
- Connection keeps dropping: The client will automatically reconnect. If it happens frequently, check your internet connection or try a wired connection.
How it works
Your MIDI Device
↓
Browser (Sender)
↓
Internet → Relay Server
↓
Browser (Receiver)
↓
Virtual MIDI Port
↓
Your DAW (Ableton, Logic, etc.)