diff options
-rw-r--r-- | README.md | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..5fbec65 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# 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: + +```sh +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. |