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.
