Reconnects to its most recent situation
Every session, peer, role, and priority is written to disk before it is acted on, so a relaunch or a reboot restores exactly what was running. Unattended.
Network MIDI · macOS
BetterRTP™ replaces the Network MIDI panel on show computers. Sessions reconnect to their most recent situation by themselves, one session fans MIDI out to every peer, and a receiver takes a PRIMARY and a BACKUP sender with failover in about a second.
macOS 14+ · Apple silicon & Intel
Why it exists
The Network MIDI panel in Audio MIDI Setup has two habits that end shows: it forgets a peer the moment it drops, and it never invites anyone back. Somebody has to walk to the machine and click. BetterRTP™ exists so nobody has to.
How it works
Allow Local Network access when macOS asks. Each Mac seeds a session named after itself on ports 5004/5005, advertised on Bonjour, and its MIDI port appears in the DAW.
On the receiver, the Directory lists the sender's session. Click Add, keep Initiator, save. The link goes green within a second.
The sender's DAW plays to the port named like its session; the receiver's software listens to its own. No DAW on the receiver? Deliver straight to a hardware destination.
Restart the sender. The receiver marks the link Lost, keeps inviting, and reconnects on its own the moment the session re-announces itself. No clicks.
Reconnection is the app's job. Watching the show is yours.
What it does
One job: keep MIDI moving between the machines, whatever any one of them decides to do tonight.
Every session, peer, role, and priority is written to disk before it is acted on, so a relaunch or a reboot restores exactly what was running. Unattended.
An initiator re-invites with backoff, forever: through the other Mac's reboot, a DHCP change, a pulled cable. A Bonjour re-announcement collapses the backoff and invites at once.
A session fans every MIDI message from the local DAW out to every connected participant. One playback Mac feeds the console, the lights, and the synth rig at once.
A Failover session receives from two senders and forwards exactly one, switching on link loss or silence. The Backup's stream is dropped on the floor until it is needed.
Every session sends MIDI Active Sensing each 0.25 s whenever nothing else went out, and strips it before the DAW. That is what lets a 1.0 s silence timeout tell a dead sender from a DAW between cues.
Sustain up, All Notes Off, Reset All Controllers, pitch-bend centre, on all 16 channels, before the first message from the new source. No chord rings through a failover.
After a failover the receiver stays on the Backup and shows it in amber everywhere. The operator who watched the Primary die decides when to trust it again, or arms auto-return with a 5 s holdoff.
Green means a link is connected and the session is forwarding, never just that sockets are bound. Amber means coping. Red is a fault that names its cause and how to fix it.
Standard AppleMIDI on the wire: stock macOS Network MIDI, rtpMIDI on Windows, and iOS apps all see it in their directory, and either side can invite.
Close the window and everything keeps running from the menu bar. ⌘Q asks for confirmation while peers are connected, and Launch at Login survives an unattended reboot.
Every invitation, drop, and failover, with timestamps, tailed live in the Diagnostics pane. It rolls at 5 MB, so a rig that runs all season costs at most 10 MB of log.
Pretty JSON, written atomically on every change, with the previous version kept as a backup and used automatically if the main file is ever corrupt.
Failover
The receiver holds a link to a Main and a Backup playback Mac, both running the same show. It forwards the Primary and drops the Backup on the floor, until the Primary's heartbeat stops. Then it switches, releases the stage, explains itself in one sentence, and leaves Return to Primary to you.
Why BetterRTP™
Specifications
A native, signed, notarized macOS app. Standard AppleMIDI on the wire, so it drops into the rig you already have. Sparkle keeps it current, and no update check ever runs while a peer is connected.
Yes. The stock panel forgets a peer the moment it drops and never invites anyone back; BetterRTP™ remembers every peer and reconnects by itself. Note that the stock Network MIDI session holds ports 5004/5005 on the same Mac when enabled: turn it off, or run the BetterRTP™ session on other ports. A port fault retries by itself every 5 s for up to 5 minutes, so freeing the port is usually enough.
A clean quit on the Primary (it sends BY) switches within 0.1 s. A pulled cable or frozen Mac switches 1.0 to 1.1 s after its heartbeat stops. Either way the receiver sends the release burst before the first message from the new source, posts a notification, and keeps the reason on screen in one sentence.
The silence watchdog only judges a sender it has heard heartbeat on the link. A stock Mac or rtpMIDI sender sends no Active Sensing, so it is judged by link loss alone (30 s), its card shows a No heartbeat chip, and an event names it. That way a one-second rest in its cue list is never read as a dead sender.
Not unless you tell it to. By default the receiver stays on the Backup after the Primary comes back, shows it in amber everywhere, and enables Return to Primary; the operator who just watched the Primary die decides when it is trusted again. Turn on Auto-return and it returns after the Primary has been healthy for the 5 s holdoff; a flickering Primary restarts the clock.
Anything that speaks AppleMIDI: stock macOS Network MIDI in Audio MIDI Setup, rtpMIDI on Windows, and iOS apps built on MIDINetworkSession. Each side sees the other in its directory, and either can invite. A stock Mac never re-invites after a drop, so make the BetterRTP™ side the initiator of any link to one.
Everything comes back. Sessions, peers, roles, and priorities are written to disk before they are acted on, so a relaunch restores exactly what was running: peers this Mac invites are re-invited with backoff until they answer, and peers that invite this Mac are accepted unattended. Turn on Launch at Login and the Mac can reboot with no one in the room.
Get BetterRTP™
Sessions that reconnect themselves, one-to-many fan-out, and PRIMARY/BACKUP failover with All Notes Off on the switch, in a menu-bar macOS app that talks to the network MIDI you already run.
macOS 14+ · Apple silicon & Intel
Already have a key?Manage your license →
Apple, macOS, and Bonjour are trademarks of Apple Inc., registered in the U.S. and other countries.