MIDI Multicast
Broadcast and synthesise MIDI over UDP. The advantage of a connectionless protocol is that multiple servers and clients are easily supported, and the clients can be started while the servers are off.
Development
Run nix develop
for a development environment.
Inside it, run make
. src
must point to the source code, and out
must
point to where the build artefacts should be placed. For example:
make src=. out=bin
Compilation
Run nix build
.
Options
Options are passed through environment variables.
Common
MCAST_GROUP
: The UDP multicast address.MCAST_PORT
: The UDP multicast port.DEBUG
: Increase verbosity.
Client
-
RELAY_DELAY
: The intended delay in milliseconds between the time a message is sent and played. Increasing it reduces stuttering but increases latency. Both the client and server should have synchronised clocks. -
SOUNDFONT
: The path to the sound font for synthesis.
Server
MIDI_IN
: The name of the MIDI input in ALSA.