diff options
| author | Radu <radu@pml4t.net> | 2025-08-30 09:34:57 -0400 |
|---|---|---|
| committer | Radu <radu@pml4t.net> | 2025-08-30 21:15:09 -0400 |
| commit | 33a1a825d57031d2c204e662a272ab8ae80e81d7 (patch) | |
| tree | 4e37a6f604220a6e97a7906a15b6747f8298dc38 /README.md | |
| parent | fbd3efd1b68c62463f7cfb5bbb42dc96383f1fdc (diff) | |
Diffstat (limited to 'README.md')
| -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. |
