midi-harbor/docs/README.md
2026-09-28 13:59:10 -05:00

1.7 KiB

Midi Harbor

Midi Harbor manages MIDI connections on macOS, Linux and Windows: virtual ports that applications on the same computer can use, attached MIDI hardware, network ports that reach other computers over RTP-MIDI, and Bluetooth LE MIDI devices. Connections repair themselves. A network connection that drops is reconnected, hardware that is unplugged and plugged back in picks up where it left off, and notes that were sounding when a link went away are released rather than left ringing.

A daemon owns every connection and runs whether or not anything is watching it. The command line and the graphical interface are both clients of it: closing either changes nothing.

  • Installation — building, installing, and running the daemon at login.
  • Command line — every command, its options, and its exit codes.
  • Configuration file — where the setup is kept, and how to write it by hand.
  • Platforms — where macOS, Linux and Windows behave differently, and why.

A first setup

midi-harbor service install --start      # run the daemon now and at every login
midi-harbor port create "Sequencer Bus"  # a port every MIDI application can see
midi-harbor status

To join another computer on the network, create a network port and connect it:

midi-harbor network create "Studio"
midi-harbor network discover             # the machines advertising on this network
midi-harbor network connect "Studio" "Stage Mac"
midi-harbor route create "Sequencer Bus" "Studio"

MIDI played into "Sequencer Bus" now reaches "Stage Mac", and keeps reaching it across sleep, network changes, and either machine restarting.