Version T · BroadwayOSC v1.0.2
Download PDF Download MarkdownBroadwayOSC
Version 1.0.2 Universal audio console control over UDP
Abstract
BroadwayOSC is an open protocol for bidirectional control of professional audio consoles over UDP. It extends Open Sound Control (OSC 1.0/1.1) with a richer type system, wildcard index-range addressing, and a human-readable namespace that maps directly to the Broadway universal audio model.
All float values are in engineering units — dB, Hz, ms, µs — as produced by the console’s value converters. The server translates to and from console wire format internally. Clients never deal with raw wire values.
Fully backward compatible with OSC 1.0 for scalar float/int/string messages.
Related standards:
- OSC 1.0 / 1.1 — base transport, framing, array types, boolean tags
- ADM-OSC — complementary spatial audio standard; namespaces do not conflict (
/adm/vs/ChannelType/)
1. Connecting
Protocol: UDP Default port: 8765
No handshake required. Send any BroadwayOSC message and you are registered as a client. Send /Unsubscribe/* to cleanly disconnect.
Multiple clients are supported simultaneously. Each client is identified by "ip:port" and maintains its own independent subscription set.
2. Message Intent
Every BroadwayOSC message is a SET, GET, SUBSCRIBE, or UNSUBSCRIBE. Intent is determined by the path prefix and the presence or absence of a value argument.
SET — Send a value
Include a value argument. The console parameter is updated immediately.
/Input/1/Level ,f 0.0 ← unity (0 dB)
/Input/3/Mute ,T ← mute on
/Dca/2/Level ,f 0.0 ← DCA at unity
/Bus/4/Mute ,F ← mute off
Use the explicit prefix if your client requires it:
/Set/Input/1/Level ,f -10.0 ← set to -10 dB
GET — Request the current value
Send the path with no arguments. The current value is returned and you are auto-subscribed to all future changes for that address.
/Input/1/Level
/Input/3/Mute
Explicit prefix form:
/Get/Input/1/Level
If the value is not yet known, the server subscribes to it from the console and pushes it as soon as it arrives. No re-request needed.
SUBSCRIBE — Register for ongoing updates
/Subscribe/Input/1/Level
/Subscribe/Input/1/Mute
/Subscribe/Dca/1/Level
UNSUBSCRIBE — Stop receiving updates
/Unsubscribe/Input/1/Level ← stop this address
/Unsubscribe/* ← remove client entirely
3. Address Format
/ChannelType/index/Parameter
/ChannelType/index/ProcessingBlock/Parameter
/ChannelType/index/ProcessingBlock/SubBlock/Parameter
/ChannelType/index/ChannelType/index/Parameter
Processing blocks (Comp, Gate, Hpf, Lpf, Preamp, Eq) take no index in the OSC path. Sub-blocks (Filter, Parallel) extend a processing block without adding an index. Crosspoints (sends from one channel to a bus) require both channel indices.
Tokens are case-insensitive — /input/1/level and /Input/1/Level are equivalent.
Examples:
/Input/1/Level Input 1 fader
/Input/1/Mute Input 1 mute
/Aux/3/Level Aux bus 3 fader
/Input/1/Aux/3/Level Input 1 send to Aux 3
/Dca/1/Level DCA 1 fader
/MainStereo/1/Level Main LR fader
/Input/1/Comp/Threshold Input 1 compressor threshold
/Input/1/Comp/Filter/Freq Input 1 comp sidechain filter freq
/Input/1/Hpf/Freq Input 1 HPF frequency
/Input/1/Gate/Enable Input 1 gate on/off
/Input/1/Gate/Filter/Source Input 1 gate sidechain source
/Input/1/Preamp/Trim Input 1 preamp trim
/Input/1/Eq/Enable Input 1 EQ in/out
/Input/1/Eq/2/Gain Input 1 EQ band 2 gain
Index Ranges and Sets
| Notation | Example | Meaning |
|---|---|---|
| Single | 3 | Channel 3 only |
| Range | 1-32 | Channels 1 through 32 inclusive |
| Set | 1,4,5-8 | Channels 1, 4, 5, 6, 7, 8 |
| Wildcard | * | All channels of that type (inventory-resolved) |
Multiple expanded positions produce the Cartesian product:
/Input/1-32/Level ,f 0.0 ← set all 32 inputs to unity
/Input/1-8/Mute ,T ← mute inputs 1–8
/Input/1,4,7/Mute ,T ← mute inputs 1, 4, and 7
/Input/1-32/Aux/1-16/Level ← 512 crosspoints in one message
/Dca/1-8/Level , ← get all DCA faders
/Input/*/Name , ← get all input names
On SET: the same value is applied to every expanded address. On GET/SUBSCRIBE: each expanded address is handled individually.
4. Channel Types
Tokens are case-insensitive. Indices start at 1.
Input Channels
| Token | Description | AHNet (dLive) | X32/M32 |
|---|---|---|---|
Input | Mono input channel | Up to 128 | 32 |
InputStereo | Stereo input channel | ✓ linked pairs | ✓ linked pairs |
AuxInput | Aux input (mono) | ✓ | 8 |
AuxInputStereo | Aux input (stereo) | ✓ linked pairs | ✓ linked pairs |
FxReturn | FX return (mono) | ✓ | 8 |
FxReturnStereo | FX return (stereo) | ✓ | — |
Mix Buses
| Token | Description | AHNet (dLive) | X32/M32 |
|---|---|---|---|
Aux | Aux bus (mono) | ✓ | — |
AuxStereo | Aux bus (stereo) | ✓ | — |
Group | Group/subgroup (mono) | ✓ | — |
GroupStereo | Group/subgroup (stereo) | ✓ | — |
Bus | Bus (mono) | ✓ | 16 |
BusStereo | Bus (stereo) | ✓ | ✓ linked pairs |
Matrix | Matrix output (mono) | ✓ | 6 |
MatrixStereo | Matrix output (stereo) | ✓ | — |
FxSend | FX send (mono) | ✓ | — |
FxSendStereo | FX send (stereo) | ✓ | — |
Output | Output (mono) | ✓ | — |
OutputStereo | Output (stereo) | ✓ | — |
MainStereo | Main LR stereo bus | ✓ | ✓ |
MainCentre | Main mono/centre | ✓ | ✓ (/main/m) |
MainSub | Main sub/LFE | ✓ | — |
MainSum | Main Msum | ✓ | — |
MainSurround | Main surround | ✓ | — |
Mon | Monitor/PAFL bus | ✓ | — |
Groups
| Token | Description | AHNet | X32/M32 |
|---|---|---|---|
Dca | DCA group | 24 | 8 |
MuteGroup | Mute group | ✓ | ✓ |
5. Parameters
All float values are engineering units. The server converts to/from console wire format internally.
Fader and Level
| Token | Type | Range | Description |
|---|---|---|---|
Level | f | -90.0 to +10.0 dB | Fader level. Unity = 0.0 dB. -90.0 = fully off (−∞). |
Pan | f | -100.0 to +100.0 | Pan position. -100 = full left, 0.0 = centre, +100 = full right. |
LevelDCA | f | -90.0 to +10.0 dB | DCA-adjusted effective level — read only |
Fader calibration anchors (AHNet/dLive):
| dB | Wire value |
|---|---|
| +10.0 | 35328 |
| 0.0 (unity) | 32780 |
| -10.0 | 30204 |
| -20.0 | 27648 |
| -30.0 | 25089 |
| -40.0 | 22540 |
| -90.0 (off) | 0 |
Fader calibration anchors (X32/M32, 0.0–1.0 wire float):
| dB | Wire float |
|---|---|
| +10.0 | 1.0 |
| 0.0 (unity) | 0.75 |
| -10.0 | 0.5 |
| -30.0 | 0.25 |
| -60.0 | 0.0625 |
| -∞ (off) | 0.0 |
Mute and Solo
| Token | Type | Description |
|---|---|---|
Mute | T/F | Mute on (T) / off (F). Note: X32/M32 wire convention is inverted (1=unmuted) — this is handled internally. |
Solo | T/F | Solo/PFL state — read only |
Identity
| Token | Type | Description |
|---|---|---|
Name | s | Channel name string (up to 8 characters on most consoles) — read only |
Color | R | Channel colour packed 0x00RRGGBB — read only. See colour palette below. |
Colour palette (X32/M32, 16 colours):
| Index | Label | RGB |
|---|---|---|
| 0 | Off | 0x000000 |
| 1 | Red | 0x990000 |
| 2 | Green | 0x009900 |
| 3 | Yellow | 0x999900 |
| 4 | Blue | 0x000099 |
| 5 | Magenta | 0x990099 |
| 6 | Cyan | 0x009999 |
| 7 | White | 0x999999 |
| 8–15 | Inverted variants | Full-saturation equivalents |
Preamp
Addressed as /Input/n/Preamp/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Trim | f | ±24.0 dB | Input trim/attenuator. 0.0 = no gain. Linear 256 counts/dB internally (0x8000 = 0 dB). |
Phase | T/F | — | Phase invert. T = inverted. |
Phantom | T/F | — | 48V phantom power. T = on. |
High-Pass Filter
Addressed as /Input/n/Hpf/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Freq | f | 20.0–20000.0 Hz | HPF cutoff frequency. Log scale: Hz = 10^((raw+9216.7)/15307.67) |
Enable | T/F | — | HPF in circuit (T) / bypassed (F) |
Slope | i | console-dependent | Filter slope in dB/oct |
Low-Pass Filter
Addressed as /Input/n/Lpf/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Freq | f | 20.0–20000.0 Hz | LPF cutoff frequency. Same log scale as HPF. |
Enable | T/F | — | LPF in circuit (T) / bypassed (F) |
Gate
Addressed as /Input/n/Gate/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Threshold | f | -80.0 to 0.0 dB | Gate open threshold |
Enable | T/F | — | Gate in circuit (T) / bypassed (F) |
Attack | f | 0.0–120.0 ms | Gate open time |
Release | f | 4.0–4000.0 ms | Gate close time. Log scale: ms = 10^((raw−17874.3)/5957.7) |
Hold | f | 1.0–200.0 ms | Minimum hold time before release begins |
Range | f | 3.0–60.0 dB | Attenuation depth when gate is closed |
Gate Sidechain Filter
Addressed as /Input/n/Gate/Filter/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Type | s | "Flat" "Lowpass" "Highpass" "Bandpass" | SC filter shape |
Freq | f | 20.0–20000.0 Hz | SC filter frequency |
Q | f | 0.44–10.0 | SC filter Q factor |
Source | s | "SELF" or "CH.n" | Sidechain source. "SELF" = own signal. "CH.3" = from input channel 3. |
Compressor
Addressed as /Input/n/Comp/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Threshold | f | ±24.0 dB | Compression onset threshold. Linear 256 counts/dB (0x8000 = 0 dB). |
Enable | T/F | — | Compressor in circuit (T) / bypassed (F) |
Ratio | f | e.g. 1.5, 2.0, 4.0 | Compression ratio where 4.0 = 4:1 |
Attack | f | µs | Compressor attack time in microseconds. Log scale: µs = 10^((raw−0.6)/5957.9). Note: µs not ms. |
Release | f | 4.0–4000.0 ms | Compressor release time in ms. Same log scale as gate release. |
Knee | f | dB | Soft knee width |
Makeup | f | ±24.0 dB | Makeup gain. Linear 256 counts/dB. |
Model | s | e.g. "Opto" "VCA" "FET" "Tube" | Compressor character/model |
Compressor Sidechain Filter
Addressed as /Input/n/Comp/Filter/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Enable | T/F | — | SC filter in circuit (T) / bypassed (F) |
Type | s | "Flat" "Lowpass" "Highpass" "Bandpass" | SC filter shape |
Freq | f | 20.0–20000.0 Hz | SC filter frequency |
Source | s | "SELF" or "CH.n" | Sidechain source |
Compressor Parallel
Addressed as /Input/n/Comp/Parallel/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Enable | T/F | — | Parallel compression path enabled |
Wet | f | ±24.0 dB | Compressed signal level in parallel mix |
Dry | f | ±24.0 dB | Dry signal level in parallel mix |
EQ
Addressed as /Input/n/Eq/Enable and /Input/n/Eq/{band}/Parameter
Bands are numbered from 1. AHNet/dLive provides 4 parametric bands per channel.
| Token | Type | Range | Description |
|---|---|---|---|
Enable | T/F | — | EQ in circuit (T) / bypassed (F) |
Freq | f | 20.0–20000.0 Hz | Band centre/corner frequency. Log scale: same formula as HPF. |
Gain | f | ±24.0 dB | Band boost/cut. 0.0 = flat. Linear 256 counts/dB. |
Q | f | octaves | Bandwidth in octaves. 2-segment piecewise-linear on wire. Range ~0.1–1.5 oct. |
Type | s | "Bell" "Highshelf" "Lowshelf" "Hpf" "Lpf" "Bandpass" "Notch" | Band filter shape |
/Input/1/Eq/Enable ,T
/Input/1/Eq/2/Freq ,f 1000.0 ← 1 kHz
/Input/1/Eq/2/Gain ,f 3.0 ← +3 dB boost
/Input/1/Eq/2/Q ,f 1.0 ← 1 octave bandwidth
/Input/1/Eq/2/Type ,s "Bell"
GEQ (mix buses only)
Addressed as /Group/n/Geq/Enable, /Group/n/Geq/Type, /Group/n/Geq/{band}/Gain
Available on Group, Aux, Matrix buses. Not available on input channels.
| Token | Type | Range | Description |
|---|---|---|---|
Enable | T/F | — | GEQ in circuit (T) / bypassed (F) |
Type | s | "constant-Q" "proportional-Q" "hybrid" "NEQ12" | GEQ algorithm type |
Gain | f | ±15.0 dB | Band gain. Linear 256 counts/dB. |
Delay
Addressed as /Input/n/Delay/Parameter
| Token | Type | Range | Description |
|---|---|---|---|
Enable | T/F | — | Delay in circuit (T) / bypassed (F) |
Time | f | ms | Delay time in milliseconds. Log scale. |
Insert
Addressed as /Input/n/Insert/{slot}/Enable
Slots: 1 = Insert A, 2 = Insert B.
/Input/1/Insert/1/Enable ,T ← insert slot A on
/Input/1/Insert/2/Enable ,F ← insert slot B off
DCA Assignment
Addressed as /Input/n/Dca/{dca}/Enable
/Input/1/Dca/3/Enable ,T ← assign input 1 to DCA 3
/Input/1/Dca/3/Enable ,F ← remove input 1 from DCA 3
Crosspoint Sends
Addressed as /Input/n/BusType/m/Parameter
Supported bus types for AHNet/dLive: Aux, Group, FxSend, Matrix
Supported bus types for X32/M32: Bus (flat numbered)
| Token | Type | Range | Description |
|---|---|---|---|
Level | f | -90.0 to +10.0 dB | Send level. Unity = 0.0 dB. |
Enable | T/F | — | Send active (T) / off (F) |
Pre | T/F | — | Pre-fader = T, post-fader = F |
/Input/1/Aux/3/Level ,f 0.0 ← send at unity (0 dB)
/Input/1/Aux/3/Level ,f -6.0 ← send at -6 dB
/Input/1/Aux/3/Level ,f -90.0 ← send off
/Input/1/Aux/3/Enable ,T
/Input/1/Aux/3/Pre ,F ← post-fader
DCA
| Address | Type | Range | Description |
|---|---|---|---|
/Dca/n/Level | f | -90.0 to +10.0 dB | DCA fader. Unity = 0.0. |
/Dca/n/Mute | T/F | — | DCA mute |
/Dca/n/Name | s | — | DCA name (up to 8 chars) — read only |
/Dca/n/Color | R | 0x00RRGGBB | DCA colour — read only |
Scenes and Cues
| Address | Type | Description |
|---|---|---|
/Cues/1/Go | I | Fire the standby scene |
/Cues/1/StandbyCue | i | Set standby scene index (0-based) |
/Cues/1/ActiveCueID | i | Active scene index — read only |
/Cues/1/Show | s | Active show name — read only |
/Cues/1/CueList | — | GET: full scene list |
6. Processing Block Availability by Channel Type
Not all processing blocks are available on all channel types. This table shows what is supported.
| Block | Input | Group/Aux/Bus | Matrix | FxSend | FxReturn | DCA |
|---|---|---|---|---|---|---|
| Preamp | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Hpf | ✓ | — | — | — | — | — |
| Lpf | ✓ | — | — | — | — | — |
| Gate | ✓ | — | — | — | — | — |
| Gate/Filter | ✓ | — | — | — | — | — |
| Comp | ✓ | ✓ | ✓ | — | — | — |
| Comp/Filter | ✓ | ✓ | ✓ | — | — | — |
| Comp/Parallel | ✓ | ✓ | ✓ | — | — | — |
| Eq (PEQ) | ✓ | ✓ | ✓ | — | — | — |
| Geq | — | ✓ | ✓ | — | — | — |
| Delay | ✓ | ✓ | ✓ | — | — | — |
| Insert | ✓ | ✓ | ✓ | — | — | — |
| Dca (assign) | ✓ | ✓ | — | — | — | — |
Source: AHNetOSCTemplate.capabilities matrix — hardware maximums. X32/M32 supports a subset.
7. Value Types
| Tag | Source | Type | Range / Notes |
|---|---|---|---|
i | OSC 1.0 | int32 | 4 bytes, big-endian signed |
f | OSC 1.0 | float32 | 4 bytes, IEEE 754 big-endian. Always engineering units. |
s | OSC 1.0 | string | UTF-8, null-terminated, 4-byte padded |
b | OSC 1.0 | blob | int32 size + bytes, 4-byte padded |
T | OSC 1.1 | true | no data bytes |
F | OSC 1.1 | false | no data bytes |
N | OSC 1.1 | null | no data bytes — GET intent |
I | OSC 1.1 | impulse/trigger | no data bytes — use for actions like Go |
d | OSC 1.1 | float64 | 8 bytes, IEEE 754 big-endian |
h | OSC 1.1 | int64 | 8 bytes, big-endian signed |
[ ] | OSC 1.1 | array | no data bytes |
u | BroadwayOSC | uint16 | 4 bytes, big-endian unsigned (zero-padded) |
R | BroadwayOSC | RGB colour | 4 bytes, 0x00RRGGBB big-endian |
P | BroadwayOSC | pair | 4 bytes: int16 token + int16 index, big-endian |
Engineering Unit Summary
| Parameter type | Unit | Typical range | Internal wire scale |
|---|---|---|---|
| Fader / send level | dB | -90.0 to +10.0 | Piecewise-linear lookup (see calibration tables above) |
| Trim / EQ gain / makeup | dB | ±24.0 | Linear: 256 counts/dB, wire 0x8000 = 0 dB |
| Threshold | dB | ±24.0 (comp) / -80 to 0 (gate) | Linear: 256 counts/dB |
| Frequency | Hz | 20.0–20000.0 | Log: Hz = 10^((raw+9216.7)/15307.67) |
| Release / hold / delay | ms | 4.0–4000.0 | Log: ms = 10^((raw−17874.3)/5957.7) |
| Attack (compressor/gate) | µs | ~50–120000 µs | Log: µs = 10^((raw−0.6)/5957.9) |
| EQ bandwidth | octaves | 0.1–1.5 | 2-segment piecewise-linear |
| Pan | -100 to +100 | -100 L, 0 C, +100 R | AHNet: raw uint16. X32: (wire−0.5)×200 |
| Ratio | n:1 | 1.5, 2.0, 4.0 | Linear |
| GEQ band gain | dB | ±15.0 | Linear: 256 counts/dB |
Collection Encoding
Broadway collection values use OSC 1.1 arrays [...]:
| Value | Type Tag | Use |
|---|---|---|
| bools | ,[TTF] | routing enables |
| floats | ,[fff] | routing levels (dB) |
| ints | ,[iii] | pre/post flags |
| pairs | ,[PP] | channel pair list |
8. Client Model
Registration
Clients are registered automatically on first inbound packet, identified by "ip:port". No handshake needed.
Subscriptions
Each client maintains its own subscription set. Pushes are only sent for addresses in the set. Build your set via:
- GET (no value) — auto-subscribes the address
/Subscribe/— explicit subscription
Lazy Wire Subscription
When a client GETs an address not yet known to the server:
- Address added to client subscription set
- Server fires a wire GET to the connected console
- Console responds → value stored in bridge state → pushed to all subscribed clients
- Address remains active — all future console changes are pushed automatically
No re-subscription needed across console reconnections within a session.
Unsolicited Console Pushes
When an operator moves a control on the desk, the push flows through the bridge and is forwarded to all clients subscribed to that address. Clients receive live console state without polling.
9. Quick Reference
SET to unity: /Input/1/Level ,f 0.0
SET to -10 dB: /Input/1/Level ,f -10.0
SET off: /Input/1/Level ,f -90.0
GET fader: /Input/1/Level
Mute on: /Input/1/Mute ,T
Mute off: /Input/1/Mute ,F
Pan centre: /Input/1/Pan ,f 0.0
Pan hard left: /Input/1/Pan ,f -100.0
Get name: /Input/1/Name
Subscribe mute: /Subscribe/Input/1/Mute
Unsubscribe all: /Unsubscribe/*
Fire scene: /Cues/1/Go ,I
DCA unity: /Dca/1/Level ,f 0.0
Input→aux unity: /Input/1/Aux/3/Level ,f 0.0
Input→aux -6 dB: /Input/1/Aux/3/Level ,f -6.0
Input→aux off: /Input/1/Aux/3/Level ,f -90.0
Comp threshold: /Input/1/Comp/Threshold ,f -18.0
Comp attack: /Input/1/Comp/Attack ,f 500.0 ← 500 µs
Comp release: /Input/1/Comp/Release ,f 100.0 ← 100 ms
HPF at 80 Hz: /Input/1/Hpf/Freq ,f 80.0
HPF on: /Input/1/Hpf/Enable ,T
EQ boost +3 dB: /Input/1/Eq/2/Gain ,f 3.0
EQ band freq: /Input/1/Eq/2/Freq ,f 1000.0
Comp SC filter on: /Input/1/Comp/Filter/Enable ,T
Comp SC freq: /Input/1/Comp/Filter/Freq ,f 200.0
Assign to DCA 3: /Input/1/Dca/3/Enable ,T
Range mute: /Input/1-8/Mute ,T
Range GET: /Input/1-32/Level
Set notation: /Input/1,4,5-8/Mute ,T
All inputs: /Input/*/Mute
All crosspoints: /Input/*/Aux/*/Level ,f 0.0
10. Packet Format
Standard OSC framing:
[address string] null-terminated, 4-byte padded
[type tag string] starts with ',', null-terminated, 4-byte padded
[arguments] per type tag, each 4-byte padded
All multi-byte values big-endian. OSC 1.1 bundles (#bundle) accepted and processed sequentially.
11. Relationship to ADM-OSC
ADM-OSC (/adm/obj/n/...) and BroadwayOSC (/ChannelType/n/...) occupy non-overlapping namespaces and may coexist on the same UDP port. A server implementing both routes by path prefix.
Appendix A — Token Reference
All tokens are case-insensitive. Canonical form is PascalCase.
Channel Types
Input InputStereo Group GroupStereo
Aux AuxStereo Matrix MatrixStereo
Bus BusStereo Mix MixStereo
Output OutputStereo FxSend FxSendStereo
FxReturn FxReturnStereo AuxInput AuxInputStereo
MainStereo MainCentre MainSub MainSum
MainSurround Mon Dca DcaGroup
MuteGroup UfxSend UfxReturn
Parameters
Level LevelDCA Mute Pan
Trim Delay Color Eq
Comp Gate Send Solo
Phase Preamp Phantom Hpf
Lpf Invert Insert Source
Automix Name Select RoutingSet
RoutingPool AltSource Panner Geq
Processing Sub-blocks
Filter Parallel
Actions
Recall Store Copy Paste
Reset Clear Fire Stop
Play Pause Record Go
Previous Next Toggle Undo
Sub-parameters
Freq Gain Q Attack
Release Threshold Ratio Bypass
Enable Knee Range Hold
Keyfilter Makeup Auto Peak
Rms Pre Post Type
Slope Width Balance Time
Depth Rate Feedback Size
Model Wet Dry
Filter / EQ Shape Values (used with Type parameter)
Bell Highshelf Lowshelf Hpf
Lpf Bandpass Notch Peq
Compressor Model Values (used with Model parameter)
Opto Vca Fet Tube
Bus Ducker PeakLimiter
GEQ Type Values (used with Type parameter on Geq)
constant-Q proportional-Q hybrid NEQ12
Cues / Scenes
Cues CueList Scene Snapshot
Show ActiveCueID StandbyCue Go
System
System Config
Appendix B — BroadwayOSC vs OSC 1.0 vs ADM-OSC
| Feature | OSC 1.0 | OSC 1.1 | ADM-OSC | BroadwayOSC |
|---|---|---|---|---|
| Basic types (i,f,s,b) | ✓ | ✓ | ✓ | ✓ |
| Boolean T/F tags | — | ✓ | — | ✓ |
| Null/Impulse tags | — | ✓ | — | ✓ |
| Arrays [ ] | — | ✓ | — | ✓ |
| uint16 tag | — | — | — | ✓ |
| RGB tag | — | — | — | ✓ |
| Pair tag | — | — | — | ✓ |
| Index range syntax | — | — | — | ✓ |
| Index set syntax | — | — | — | ✓ |
Wildcard * | path glob | path glob | — | inventory-resolved |
| Bundles | — | ✓ | ✓ | ✓ |
| Multi-client | — | — | — | ✓ |
| Lazy wire subscription | — | — | — | ✓ |
| Engineering unit values | — | — | — | ✓ |
| Console abstraction layer | — | — | — | ✓ |
| Spatial/object namespace | — | — | ✓ | — |
| Console control namespace | — | — | — | ✓ |
Appendix C — Implementation Notes (Version T)
BroadwayOSC is implemented at the bridge layer. Three files handle all protocol work:
| File | Purpose |
|---|---|
BridgeOSCManager.swift | UDP socket, client registry, wildcard expansion, dispatch, push |
BridgeOSCParser.swift | OSC packet → parsed command; path → Broadway semantics + indices |
BridgeOSCEncoder.swift | BroadwayADDRESS + BroadwayVALUE → OSC packet Data |
BridgeOSCManager is owned by BridgeManager and started after full console inventory is available. All bridge results pass through oscManager.pushToClients() — OSC clients receive the same live state as the Version T UI. Values are BroadwayVALUE instances in engineering units, passed through unchanged at the OSC boundary.
Supported adaptors:
| Adaptor | Console family | Notes |
|---|---|---|
| AHNet | Allen & Heath dLive, Avantis, SQ | Full processing block support |
| WING | Behringer WING | Native float dB on wire |
| OSC32 | Behringer X32 / Midas M32 | Fixed channel counts (see Section 4) |