A multi-mixer MIDI bridge for Allen & Heath digital consoles. LTC/MTC timecode scene recall, OSC control, Stream Deck integration, MIDI monitor — all in one native macOS app.
Get notified about updates (optional)
Thanks! We'll let you know about future updates.
Connect to two or more A&H consoles at once. FOH + Monitor, broadcast + PA — each gets its own MIDI ports. The official driver can't do this.
MIDI Thru, HUI, Mackie Control, CC Translator. Run multiple per mixer. Each creates a separate virtual CoreMIDI port visible in your DAW.
Built-in OSC server translates between OSC and A&H MIDI. Faders, mutes, scenes, parametric EQ, HPF, DCA, preamps, send levels (aux/matrix/FX). Bidirectional NRPN feedback to TouchOSC, Companion, QLab.
WebSocket API for Elgato Stream Deck via Bitfocus Companion. Scene recall, mute groups, DCA fader & mute, HPF, parametric EQ, preamp gain/pad/48V, channel name & color, send levels.
Real-time message viewer with full A&H protocol decoding. See "Mute ON ch1" instead of "9B 00 7F". Filter by bridge, direction, pause and clear.
Ready-made configurations for QLab scene recall, full control, dual-mixer setups, and DAW transport. Set up in 60 seconds.
Close the window — connections stay alive. Runs silently in the menu bar with quick status overview and one-click connect/disconnect.
Secure connections to dLive, Avantis, and AHM consoles. Auto-detects TLS requirement per mixer type. Auto-reconnect with exponential backoff.
Channel names, colours, send levels, preamp gain/pad/48V, DCA assignments — all SysEx messages flow through bidirectionally.
Receive LTC audio or MTC MIDI timecode and trigger scene recalls automatically. Set different scenes per mixer at the same timecode point. Organize cues by show, artist, or venue.
Multiple instances auto-discover each other via Bonjour. Mixer locking prevents conflicting commands. See who controls what from any machine on the network.
| Feature | A&H MIDI Control | A&H MIDI Bridge |
|---|---|---|
| Multiple mixers simultaneously | × One at a time | ✓ Unlimited |
| OSC control | × None | ✓ Bidirectional, 20+ commands |
| Stream Deck / WebSocket API | × None | ✓ Full JSON API |
| MIDI monitor with A&H decoding | × None | ✓ Real-time, filterable |
| macOS Sonoma / Sequoia | ⚠ Known issues | ✓ Native SwiftUI |
| Apple Silicon | ⚠ Rosetta | ✓ Universal binary |
| Auto-reconnect | × Manual | ✓ Exponential backoff |
| Configuration templates | × None | ✓ QLab, DAW, dual-mixer |
| Per-bridge connect/disconnect | × All or nothing | ✓ Individual control |
| Coexists with Companion | × ECONNRESET conflicts | ✓ No conflicts |
| Signed & notarized | × Unsigned | ✓ Apple notarized |
| Address | Args | Action |
|---|---|---|
/ch/{n}/fader | float 0.0–1.0 | Fader level |
/ch/{n}/mute | int 0|1 | Mute on/off |
/ch/{n}/name | string | Set channel name (SysEx) |
/ch/{n}/color | int 0–7 | Set channel colour (SysEx) |
/ch/{n}/hpf/freq | float 20–20000 | HPF frequency in Hz |
/ch/{n}/hpf/on | int 0|1 | HPF on/off |
/ch/{n}/eq/{b}/freq | float 20–20k | PEQ band frequency |
/ch/{n}/eq/{b}/gain | float ±15 | PEQ band gain (dB) |
/ch/{n}/eq/{b}/width | float 0–1 | PEQ Q width |
/dca/{n}/fader | float 0.0–1.0 | DCA fader level |
/dca/{n}/mute | int 0|1 | DCA mute on/off |
/send/{src}/{dst} | float 0.0–1.0 | Send level (mono aux, default) |
/send/{src}/aux/{dst} | float 0.0–1.0 | Send to aux bus |
/send/{src}/matrix/{dst} | float 0.0–1.0 | Send to matrix bus |
/send/{src}/fxsend/{dst} | float 0.0–1.0 | Send to FX send |
/send/{src}/fxreturn/{dst} | float 0.0–1.0 | Send to FX return |
/preamp/{n}/gain | float 0.0–1.0 | Preamp gain |
/preamp/{n}/pad | int 0|1 | Pad on/off (SysEx) |
/preamp/{n}/48v | int 0|1 | Phantom power on/off (SysEx) |
| Address | Args | Action |
|---|---|---|
/scene/recall | int 1–500 | Recall scene by number |
/scene/go | — | Scene Go (Surface only, CC) |
/scene/next | — | Next scene (Surface only, CC) |
/scene/prev | — | Previous scene (Surface only, CC) |
| Address | Args | Action |
|---|---|---|
/tc/arm | — | Arm timecode engine |
/tc/disarm | — | Disarm timecode engine |
/tc/position | string, string, int | Query/broadcast: HH:MM:SS:FF, fps, armed (0|1) |
/tc/cue/fired | string, string, int | Broadcast: song name, section name, scene number |
Prefix any address with /mixer/{name}/ to target a specific mixer. Without prefix, commands go to all mixers.
| Address | Type | Description |
|---|---|---|
/ch/{n}/fader | float | Fader level feedback (NRPN) |
/ch/{n}/mute | int | Mute state feedback |
/ch/{n}/hpf/freq | float | HPF frequency feedback (NRPN) |
/ch/{n}/hpf/on | int | HPF on/off feedback (NRPN) |
/ch/{n}/eq/{b}/{param} | float | PEQ band feedback (NRPN) |
/dca/{n}/fader | float | DCA fader level feedback |
/dca/{n}/mute | int | DCA mute state feedback |
/scene/current | int | Currently active scene number |
/preamp/{n}/gain | float | Preamp gain value |
{"action": "sceneRecall", "scene": 42}
"mixer": "FOH" to target one.{"action": "muteGroupToggle", "channel": 1, "value": 1}
{"action": "dcaMute", "channel": 3, "value": 1}
{"action": "channelMute", "channel": 5, "value": 0}
{"action": "sceneNext"}
{"action": "scenePrev"}
{"action": "sceneGo"}
{"action": "faderLevel", "channel": 1, "value": 0.84}
{"action": "dcaFader", "channel": 1, "value": 0.75}
{"action": "hpfFreq", "channel": 3, "value": 120}
{"action": "hpfToggle", "channel": 3, "value": 1}
{"action": "eqParam", "channel": 1, "band": 2, "param": "gain", "value": -3.5}
{"action": "preampGain", "channel": 1, "value": 0.5}
{"action": "preampPad", "channel": 1, "value": 1}
{"action": "preampPhantom", "channel": 1, "value": 1}
{"action": "channelName", "channel": 1, "name": "Vocals"}
{"action": "channelColor", "channel": 1, "color": 3}
{"action": "sendLevel", "channel": 1, "destination": 3, "value": 0.6}
{"action": "sendLevel", "channel": 1, "destination": 1, "busType": "matrix", "value": 0.8}
{"action": "status"}
{"action": "listConfigs"}
{"action": "activate", "configId": "..."}
{"action": "connectAll"}
{"action": "disconnectAll"}
{"action": "timecodeStatus"}
{"action": "timecodeArm"}
{"action": "timecodeDisarm"}
{"action": "timecodeToggleArm"}
{"action": "timecodeSongList"}
A&H MIDI Bridge is being refined. Sign up above to get notified when it's ready.