Skip to content

About

Simple program to receive MIDI data from UDP and forward them to MIDI output.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DesktopReceiver

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.

Features

  • Listens for MIDI data on UDP port (default: 4000)
  • Forwards raw MIDI bytes to specified output
  • Logs all received MIDI messages

Requirements

  • Elixir ~> 1.18
  • A MIDI output device (e.g., macOS IAC Driver, virtual MIDI port, or hardware)

macOS Setup

Enable IAC Driver in Audio MIDI Setup:

  1. Open /Applications/Utilities/Audio MIDI Setup.app
  2. Window → Show MIDI Studio
  3. Double-click IAC Driver → Check "Device is online"

Installation

git clone https://github.com/nanassound/midimesh_desktop_receiver desktop_receiver
cd desktop_receiver
mix deps.get
MIX_ENV=PROD mix release

Configuration

Edit lib/desktop_receiver.ex to change defaults:

@default_port 4000              # UDP listening port
@midi_output_name "IAC Driver Bus 1"  # MIDI output device name

List available MIDI outputs:

iex -S mix
iex> Midiex.ports(:output)

Usage

Interactive Mode

iex -S mix
iex> DesktopReceiver.start()

Build Release

MIX_ENV=PROD mix release
_build/dev/rel/desktop_receiver/bin/desktop_receiver start

How It Works

ESP32 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.

License

MIT License

About

Simple program to receive MIDI data from UDP and forward them to MIDI output.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages