A UDP-to-MIDI bridge that receives MIDI messages over the network and forwards them to a local MIDI output device. Part of the MidiMesh project for wireless MIDI control from ESP32 devices.
- Listens for MIDI data on UDP port (default: 4000)
- Forwards raw MIDI bytes to specified output
- Logs all received MIDI messages
- Elixir ~> 1.18
- A MIDI output device (e.g., macOS IAC Driver, virtual MIDI port, or hardware)
Enable IAC Driver in Audio MIDI Setup:
- Open
/Applications/Utilities/Audio MIDI Setup.app - Window → Show MIDI Studio
- Double-click IAC Driver → Check "Device is online"
git clone https://github.com/nanassound/midimesh_desktop_receiver desktop_receiver
cd desktop_receiver
mix deps.get
MIX_ENV=PROD mix releaseEdit lib/desktop_receiver.ex to change defaults:
@default_port 4000 # UDP listening port
@midi_output_name "IAC Driver Bus 1" # MIDI output device nameList available MIDI outputs:
iex -S mix
iex> Midiex.ports(:output)iex -S mix
iex> DesktopReceiver.start()MIX_ENV=PROD mix release
_build/dev/rel/desktop_receiver/bin/desktop_receiver startESP32 Device → UDP Packet → DesktopReceiver → MIDI Output → DAW/Synth
The application opens a UDP socket and enters a receive loop. Incoming binary data is converted to a byte list and sent directly to the configured MIDI output via the midiex library.