aboutsummaryrefslogtreecommitdiff

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.