- Releases now include Midi-Harbor-<version>-<x86_64|aarch64>.AppImage, built from the same binary as the packages and listed in checksums.txt, for distributions without a .deb or .rpm. Opened with no arguments it shows the window, and the daemon it registers runs under the systemd user unit like a package install. - service install run from an AppImage registers the .AppImage file instead of the executable inside the runtime's temporary mount, which is gone once the process exits. The file is used only when the running executable is inside APPDIR, so a program started from another AppImage, whose APPIMAGE it inherits, still registers itself. - The AppImage carries only the Avahi client libraries from the Debian 12 sysroot, with their LGPL-2.1 license, found through the binary's RUNPATH rather than LD_LIBRARY_PATH; glibc 2.35 or newer, ALSA, D-Bus and libxkbcommon come from the host, as for the packages. - Its AppRun starts the binary as midi-harbor, so on X11 the window's class matches the desktop entry instead of the AppImage's file name. - Building it needs the cross image's new patchelf, file, appimagetool 1.9.1 and type2 runtime 20251108, pinned by checksum, and a sysroot rebuilt to carry Avahi's license; the script stops and names make build-sysroot when that license is missing. |
||
|---|---|---|
| .. | ||
| cli.md | ||
| configuration.md | ||
| installation.md | ||
| platforms.md | ||
| README.md | ||
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.