Reference

OSC reference

ampOSC speaks BroadwayOSC. This page is what that means on an Allen & Heath desk: every address, the unit its value carries, and which of the four consoles answers it.

Connecting

UDP to port 8765. No handshake — send anything and you are registered as a client. Send /Unsubscribe/* to leave cleanly. Several clients at once is fine; each is identified by its address and port and keeps its own subscriptions.

Paths are case-insensitive. Every index is 1-based.

Message intent

Four intents, and the bare form is usually what you want.

/Input/1/Level ,f -6.0        set input 1 to -6 dB
/Input/1/Level                ask, and subscribe from now on
/Subscribe/Input/*/Level      subscribe without asking first
/Unsubscribe/Input/1/Level    stop
/Unsubscribe/*                stop everything

A path with a value is a SET. A path with no value is a GET, and asking also subscribes you — which is the shortest way to get a client in sync and keep it there. The explicit /Set/ and /Get/ prefixes do the same thing if your client needs them.

When a value changes at the desk, every subscriber is sent the new one. Subscriptions last until you drop them; there is no keepalive.

Addressing

An index can be one channel, a range, a list, or all of them.

/Input/3/Level                one channel
/Input/1-8/Level              a range
/Input/1,4,5-8/Level          a list
/Input/*/Level                every input

So a single message addresses as many crosspoints as you like: /Input/1-48/Aux/1-12/Level is 576 of them.

Channel types

Counts are what each manufacturer's protocol document publishes, not what a particular model has fitted. Stereo types are their own path segment — /GroupStereo/1/Level — not a flag on the mono one.

TypedLiveAvantisSQSQ+
Input128964848
Group / GroupStereo62 / 3154 / 2712 / 612 / 6
Aux / AuxStereo62 / 3154 / 2712 / 612 / 6
Matrix / MatrixStereo62 / 3154 / 273 / 16 / 3
FxSend / FxSendStereo16 / 1612 / 124 / 44 / 4
FxReturnStereo161288
MainStereo6311
Dca241688
MuteGroup8888
UfxSend / UfxReturn8 / 88 / 84 units

Level, mute, name, colour

AddressTypeUnit
/{Type}/{n}/LevelfdB, −90 to +10. Unity 0, −90 fully off
/{Type}/{n}/MuteT/FT = muted
/{Type}/{n}/NamesUp to 8 characters
/{Type}/{n}/ColorRPacked 0x00RRGGBB
/{Type}/{n}/MainAssignT/FOn the main LR bus

Name and colour are dLive and Avantis only. Neither SQ nor SQ+ carries channel names or colours in its MIDI protocol, so those addresses answer nothing there.

Sends

A send is the destination bus as a path segment under the source channel. There is no Send keyword.

/Input/1/Aux/4/Level   ,f -6.0     input 1 to aux 4, at -6 dB
/Input/1/Aux/4/Enable  ,T          route it
/Input/1/Group/2/Level ,f 0.0      input 1 to group 2, at unity
/Input/1/AuxStereo/3/Level ,f -3.0 to a stereo aux

Destination types are Aux, Group, FxSend and Matrix, with their stereo forms. Send levels use the same dB scale as a fader.

Two limits from the consoles. Avantis has no send routing — levels work, Enable does not. And on SQ and SQ+ an input cannot send to a matrix: matrix sources are LR, aux and group.

Pan

AddressTypeUnit
/{Type}/{n}/Panf−100 hard left, 0 centre, +100 hard right
/{Type}/{n}/{Bus}/{m}/PanfThe same, on a send

SQ and SQ+ only. Neither dLive nor Avantis exposes pan over MIDI. On the SQ pair it is available on inputs, groups, FX returns and the outputs — not on DCAs, mute groups or FX sends.

DCA and mute groups

/Input/1/Dca/3/Enable        ,T     put input 1 in DCA 3
/Input/1/MuteGroup/2/Enable  ,F     take it out of mute group 2

dLive and Avantis only. The SQ pair can mute a DCA and set its level, but membership is not in its protocol.

Preamp

AddressTypeUnit
/Input/{n}/TrimfdB. dLive over MIDI is +5 to +60
/Input/{n}/PadT/FInput pad
/Input/{n}/PhantomT/F48 V

dLive only, and addressed by socket rather than by channel — 128 of them: 64 local, then two DX expanders of 32.

No Preamp/ sub-block: three parameters do not need one.

Filters and EQ

/Input/1/Filter/1/Freq   ,f 120.0    high-pass at 120 Hz
/Input/1/Filter/1/Enable ,T
/Input/1/Eq/2/Freq       ,f 1000.0
/Input/1/Eq/2/Gain       ,f 3.0
/Input/1/Eq/2/Q          ,f 1.0      octaves
/Input/1/Eq/2/Type       ,s "Bell"

Filters are their own indexed block, separate from the EQ — so a high-pass is Filter/1, not an EQ band. dLive has four parametric bands, numbered 1 to 4. Frequencies are hertz, gains are dB, and Q is bandwidth in octaves.

Type is a string: "Bell", "Lowshelf", "Highshelf", "Lpf", "Hpf". dLive restricts shelves and passes to the outer bands.

dLive only. Neither Avantis nor the SQ pair exposes EQ over MIDI.

Scenes and cues

/Scene/Recall ,i 42       recall scene 42
/Cue/Recall   ,i 150      recall a cue by its number
/Cue/Go                   fire the standby cue
/Cue/Next                 advance

dLive and Avantis hold 500 scenes; the SQ pair holds 300. Recalling a scene at the desk sends the same message back, so a scene fired on the surface reaches every subscriber.

Cue lists differ. dLive has 2000 recall IDs but only on the Surface port. The SQ pair recalls cues by position and supports MIDI Show Control. Avantis has no cue list at all — scenes only.

Surface controls

/Strip/1/Fader   ,f -6.0
/Strip/1/Mute    ,T
/Strip/5/Rotary/2 ,f 0.5
/SoftKey/3/Press ,T
/Ufx/Key         ,i 7
/Ufx/Scale       ,i 1

All four consoles have 32 assignable MIDI strips. Soft keys are Avantis and the SQ pair — dLive has none in its protocol. UFX is dLive, Avantis and SQ+; plain SQ has none.

Value types

TagTypeUsed for
ffloat32Every engineering value — dB, hertz, octaves, pan
iint32Scene and cue numbers, UFX key and scale
sstringNames, EQ shape
T / FbooleanMute, enable, assign — no data bytes
ItriggerActions like Go
RRGBColour, packed 0x00RRGGBB

Values are always engineering units — the number a sound engineer would read off the desk. Never a normalised 0-to-1 float. Each console encodes a fader differently, and ampOSC converts and clamps at the wire, so a client never sees a raw console value.

What each console does

Taken from the manufacturer's published protocol documents, not from what ampOSC will accept. A path that is not supported is accepted and quietly does nothing, so this table is the one to check before building against something.

 dLiveAvantisSQSQ+
Level, Mute
Name, Colour
Send level
Send Enable (routing)
Pan and balance
DCA assignment✓ 24✓ 16
Mute group assignment
MainAssign
Preamp — trim, pad, 48V
EQ and high-pass
Scenes500500300300
Cue list✓ Surface
MIDI strips32323232
Soft keys✓ 16✓ 16✓ 16
UFX
Read a value backeverythingname, coloureverythingeverything
Metering

Nothing meters. No published protocol reports audio level over the MIDI link, so no client can draw a meter from it. And on the SQ pair the fader law is a console setting no message reports — dLive and Avantis share one fixed law, so this is the one family ampOSC has to be told about.

The protocol itself is published in full: the BroadwayOSC specification · PDF · Markdown.

The protocol itself is published in full: the BroadwayOSC specification · PDF · Markdown.