The Protocol-Driven Stage: Why SDP Changes Everything for Live Sound
For decades, the foundation of a successful live show has been the patch master—a highly skilled human who translates a band’s technical needs (their stage plot and input list) into physical cables. The Festival Patch formalized this by making the mixing console channels static, minimizing changeover time by relying on human speed and organizational charts.
But what happens when the patch list becomes part of the digital DNA of the audio system?
The demonstration of embedding specific equipment metadata—like the microphone model ($\text{SM57}$), phantom power ($\text{P48}$), and gain settings—directly into the same protocol (SDP) that defines the stream count and routing, paves the way for the Automated Stage.
The End of Changeover Chaos
In a traditional festival scenario, the greatest risk is the 15-minute changeover. Even with a standardized patch, every connection involves human decisions, risk of error, and lost time.
Integrating detailed equipment data into a standard protocol offers three revolutionary benefits:
-
Instant Digital Patching: When a band’s touring engineer loads their show file (their mixer settings), the system wouldn’t just expect an input on Channel 3; it would receive a data stream labeled “Snare Top” with the $\text{SSRC}$ (Source ID) and an explicit metadata tag demanding the $\text{SM57}$ with $\text{P48}$ off and a specific preamp gain.
-
Self-Correction and Verification: The stage can instantly perform a digital handshake. The physical stage box could verify, via a network query, “Is an Audix D6 connected to Kick Out? Is its phantom power off?” If the wrong mic is used, or $\text{P48}$ is mistakenly turned on (potentially damaging a ribbon mic), the system could flag the error to the patch master immediately, before the band even plays.
-
True Plug-and-Play Touring: For the first time, a sound engineer could reliably carry a “show on a stick” that contains not just their mix, but the entire equipment specification and routing logic. As soon as the engineer’s control surface connects to the house system, the SDP-integrated metadata would automatically configure all relevant preamp settings, labeling, and signal flow, making festival sound checks obsolete for most acts.
This shift transforms the sound engineer’s role from a physical cable manager to a network systems architect. The complexity of a 64-channel festival stage doesn’t disappear, but the risk of human error and the pressure of the clock are drastically reduced, ensuring a higher quality, more consistent show for every single act.
Consider what a real session may contain
| Ch # | a=label (Console Label) | Performer/Role | a=track-name (DAW Slug) | Mic Used | P48 (Phantom Power) | Gain Setting | Pad Setting |
| 01 | Kick In | Drummer | $\text{KICK\_IN\_BETA91A}$ | Beta 91A | $\text{OFF}$ | $\text{+10dB}$ | $\text{0dB}$ |
| 02 | Kick Out | Drummer | $\text{KICK\_OUT\_D6}$ | Audix D6 | $\text{OFF}$ | $\text{+25dB}$ | $\text{0dB}$ |
| 03 | Snare Top | Drummer | $\text{SNARE\_TOP\_SM57}$ | SM57 | $\text{OFF}$ | $\text{+35dB}$ | $\text{0dB}$ |
| 04 | Snare Bottom | Drummer | $\text{SNARE\_BOT\_E604}$ | e604 | $\text{OFF}$ | $\text{+30dB}$ | $\text{0dB}$ |
| 05 | Hi-Hat | Drummer | $\text{HIHAT\_C451B}$ | C451B | $\text{ON}$ | $\text{+40dB}$ | $\text{10dB}$ |
| 06 | Tom 1 (Rack) | Drummer | $\text{TOM1\_MD421}$ | MD 421 | $\text{OFF}$ | $\text{+30dB}$ | $\text{0dB}$ |
| 07 | Tom 2 (Rack) | Drummer | $\text{TOM2\_MD421}$ | MD 421 | $\text{OFF}$ | $\text{+30dB}$ | $\text{0dB}$ |
| 08 | Tom 3 (Floor) | Drummer | $\text{TOM3\_D4}$ | Audix D4 | $\text{OFF}$ | $\text{+28dB}$ | $\text{0dB}$ |
| 09 | Overhead L | Drummer | $\text{OH\_L\_KM184}$ | KM 184 | $\text{ON}$ | $\text{+45dB}$ | $\text{0dB}$ |
| 10 | Overhead R | Drummer | $\text{OH\_R\_KM184}$ | KM 184 | $\text{ON}$ | $\text{+45dB}$ | $\text{0dB}$ |
| 11 | Ride Cymbal | Drummer | $\text{RIDE\_KSM137}$ | KSM 137 | $\text{ON}$ | $\text{+40dB}$ | $\text{10dB}$ |
| 12 | Drum Room | Stage Ambience | $\text{DRUM\_ROOM\_RIBBON}$ | Ribbon Mic | $\text{OFF}$ | $\text{+50dB}$ | $\text{0dB}$ |
| 13 | Percussion 1 | Aux Percussionist | $\text{PERC1\_E904}$ | e904 | $\text{ON}$ | $\text{+35dB}$ | $\text{0dB}$ |
| 14 | Percussion 2 | Aux Percussionist | $\text{PERC2\_BETA98A}$ | Beta 98A | $\text{ON}$ | $\text{+30dB}$ | $\text{0dB}$ |
| 15 | Talkback Mic | Stage Manager | $\text{TALKBACK\_SM58}$ | SM58 | $\text{ON}$ | $\text{+20dB}$ | $\text{0dB}$ |
| 16 | Spare/Utility | N/A | $\text{SPARE\_UTILITY}$ | N/A | $\text{OFF}$ | $\text{0dB}$ | $\text{0dB}$ |
v=0
o=DrumKit – 16ch 3046777894 3046777894 IN IP4 192.168.1.10
s=Festival Drum Patch
c=IN IP4 192.168.1.10
t=0 0
m=audio 40000 RTP/AVP 97
a=rtpmap:97 L16/48000/16
a=sendrecv
a=mid:DRUMS16
a=Channel:01
a=label:Kick In
a=track-name:KICK_IN_BETA91A
a=i:Kick In – Low-frequency shell resonance.
a=ssrc:10000001
a=mic-info:Mic=Beta 91A; P48=OFF; Gain=+10dB; Pad=0db
a=Channel:02
a=label:Kick Out
a=track-name:KICK_OUT_D6
a=i:Kick Out – Beater attack and air movement.
a=ssrc:10000002
a=mic-info:Mic=Audix D6; P48=OFF; Gain=+25dB; Pad=0db
a=Channel:03
a=label:Snare Top
a=track-name:SNARE_TOP_SM57
a=i:Snare Top – Primary snare drum sound and attack.
a=ssrc:10000003
a=mic-info:Mic=SM57; P48=OFF; Gain=+35dB; Pad=0db
a=Channel:04
a=label:Snare Bottom
a=track-name:SNARE_BOT_E604
a=i:Snare Bottom – Snare wires for sizzle/snap.
a=ssrc:10000004
a=mic-info:Mic=e604; P48=OFF; Gain=+30dB; Pad=0db
a=Channel:05
a=label:Hi-Hat
a=track-name:HIHAT_C451B
a=i:Hi-Hat – Cymbals, rhythm, and clarity.
a=ssrc:10000005
a=mic-info:Mic=C451B; P48=ON; Gain=+40dB; Pad=10dB
a=Channel:06
a=label:Tom 1 (Rack)
a=track-name:TOM1_MD421
a=i:Tom 1 (Rack) – High rack tom resonance and attack.
a=ssrc:10000006
a=mic-info:Mic=MD 421; P48=OFF; Gain=+30dB; Pad=0db
a=Channel:07
a=label:Tom 2 (Rack)
a=track-name:TOM2_MD421
a=i:Tom 2 (Rack) – Mid rack tom resonance and attack.
a=ssrc:10000007
a=mic-info:Mic=MD 421; P48=OFF; Gain=+30dB; Pad=0db
a=Channel:08
a=label:Tom 3 (Floor)
a=track-name:TOM3_D4
a=i:Tom 3 (Floor) – Low floor tom resonance and thump.
a=ssrc:10000008
a=mic-info:Mic=Audix D4; P48=OFF; Gain=+28dB; Pad=0db
a=Channel:09
a=label:Overhead L
a=track-name:OH_L_KM184
a=i:Overhead L – Stereo image, cymbals, and kit balance.
a=ssrc:10000009
a=mic-info:Mic=KM 184; P48=ON; Gain=+45dB; Pad=0db
a=Channel:10
a=label:Overhead R
a=track-name:OH_R_KM184
a=i:Overhead R – Stereo image, cymbals, and kit balance.
a=ssrc:10000010
a=mic-info:Mic=KM 184; P48=ON; Gain=+45dB; Pad=0db
a=Channel:11
a=label:Ride Cymbal
a=track-name:RIDE_KSM137
a=i:Ride Cymbal – Dedicated input for ride stick definition.
a=ssrc:10000011
a=mic-info:Mic=KSM 137; P48=ON; Gain=+40dB; Pad=10dB
a=Channel:12
a=label:Drum Room
a=track-name:DRUM_ROOM_RIBBON
a=i:Drum Room – Ambient sound for space and size (mono).
a=ssrc:10000012
a=mic-info:Mic=Ribbon Mic; P48=OFF; Gain=+50dB; Pad=0db
a=Channel:13
a=label:Percussion 1
a=track-name:PERC1_E904
a=i:Percussion 1 – Primary percussion (e.g., Shaker, Tambourine).
a=ssrc:10000013
a=mic-info:Mic=e904; P48=ON; Gain=+35dB; Pad=0db
a=Channel:14
a=label:Percussion 2
a=track-name:PERC2_BETA98A
a=i:Percussion 2 – Secondary percussion (e.g., Conga/Bongo).
a=ssrc:10000014
a=mic-info:Mic=Beta 98A; P48=ON; Gain=+30dB; Pad=0db
a=Channel:15
a=label:Talkback Mic
a=track-name:TALKBACK_SM58
a=i:Talkback Mic – Communication from the stage.
a=ssrc:10000015
a=mic-info:Mic=SM58; P48=ON; Gain=+20dB; Pad=0db
a=Channel:16
a=label:Spare/Utility
a=track-name:SPARE_UTILITY
a=i:Spare/Utility – Reserved for last-minute needs or failures.
a=ssrc:10000016
a=mic-info:Mic=N/A; P48=OFF; Gain=0dB; Pad=0db
💡 Proposal: SDP Extension for Live Program & Ancillary Data
The core idea is to define a new set of media-level attributes that convey dynamic, human-readable, or system-critical metadata for each stream identified by its SSRC (Synchronization Source Identifier) or a=label.
1. New SDP Attributes for Metadata
We would define new media-level attributes (a=) to carry specific types of operational data. These attributes should be scoped to a specific stream using the a=label attribute, as defined in RFC 4574.
That is an excellent proposal. Extending SDP to carry rich, flow-specific metadata—like channel labels, track names, and operational status—moves it far beyond simple media negotiation and into the realm of a unified control and inventory protocol for all audio streams. This concept can be formalized as an SDP Extension for Live Program and Ancillary Data.
Here is a proposal for making SDP useful for this purpose, focusing on specific custom attributes and their applications.
💡 Proposal: SDP Extension for Live Program & Ancillary Data
The core idea is to define a new set of media-level attributes that convey dynamic, human-readable, or system-critical metadata for each stream identified by its SSRC (Synchronization Source Identifier) or a=label.
1. New SDP Attributes for Metadata
We would define new media-level attributes (a=) to carry specific types of operational data. These attributes should be scoped to a specific stream using the a=label attribute, as defined in RFC 4574.
| Attribute Name | Scope | Purpose | Example Value |
a=program-id |
Session-Level (s=) | Unique identifier for the overall production (e.g., “WXYZ Morning Show”). | a=program-id:WXYZ-MORN-004 |
a=flow-name |
Media-Level (m=) | Human-readable name for the stream’s purpose (e.g., “Mix-Minus Feed,” “Main PGM L/R”). | a=flow-name:PGM-MAIN-STEREO |
a=channel-label |
Source-Level (a=label) | Primary label for the control surface/monitoring (FOH channel strip, Monitor wedge, etc.). | a=channel-label:LEAD_VOX |
a=track-name |
Source-Level (a=label) | Track name for recording or playback (Pro Tools, DAWs). | a=track-name:KICK_IN_SM91A |
a=display-data |
Source-Level (a=label) | Generic string for UMD (Under Monitor Display) / Ancillary displays. | a=display-data:Guest_Mic_3 |
a=status-check |
Source-Level (a=label) | Critical status information, like phantom power or line level requirement. | a=status-check:P48=ON; Lvl=MIC |
2. Applications of Metadata-Driven Activities
By embedding this metadata in the SDP, the audio infrastructure becomes self-identifying and self-correcting.
📻 Radio/Broadcast: Now Playing & Ancillary Data
-
SDP Use: The primary program streams (
PGM-MAIN-STEREO) would contain the dynamic data for now-playing information. -
Action: A gateway device (SRC) monitors the
a=track-nameor a dedicateda=now-playingattribute that is updated via an SDP re-offer/update. This information is automatically fed into broadcast automation systems, RDS encoders, and online streaming metadata APIs. The $\text{SRC}$ ensures the $\text{L/R}$ program feed is correctly labeled for the entire chain.
🎙️ Live Stage: UMDs and Channel Labels
-
SDP Use: The $\text{FOH}$ console and monitor desk receive the SDP. The $\text{a=channel-label}$ attribute is read for every $\text{SSRC}$ (microphone).
-
Action: Console surfaces and rack UMDs (Under Monitor Displays) automatically populate their text fields with
LEAD_VOXorKICK_IN_SM91A. There is no need for a manual text input step, eliminating labeling errors and speeding up console setup.
✅ Self-Correcting Patching and Inventory
-
SDP Use: The
a=status-checkanda=track-nameattributes contain the exact physical requirements and intended use. -
Action: When a stage patch tech connects a mic to the stage box, a networked device reads the SDP for that channel’s expected status.
-
Self-Correction: If the SDP demands
P48=ONbut the stage box has phantom power off for that line, the system can flash an error indicator or automatically enable the correct state. -
Self-Identification: If the patch tech plugs a spare vocal mic into the channel meant for the Kick Drum’s
KICK_IN_SM91A, the system instantly alerts the operator to a patch mismatch. The metadata guarantees the signal is routed and labeled correctly at every point in the flow.
-
By standardizing this descriptive information within SDP, we leverage the protocol’s established routing and negotiation mechanisms to achieve the goal of metadata-driven activities, making live productions faster, safer, and inherently more reliable