Summary
Sennheiser SpeechLine Digital Wireless (SLDW) is a wireless microphone system comprising rack receivers, multi-channel receivers, and charging stations. Control uses the Sennheiser Sound Control Protocol (SSC), a JSON-over-UDP protocol with OSC-inspired addressing. All devices communicate on UDP port 45 (default) with DNS-SD discovery. This spec covers the SL Rack Receiver DW, SL MCR 2/4 DW multi-channel receivers, and CHG 2N/4N chargers.
Transport
protocols:
- udp
addressing:
port: 45
discovery:
method: dns_sd
service_type: _ssc._udp
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # device/standby, device/reset, device/restart, mates/tx1/power_down
- queryable # null-argument getter pattern for all properties
- levelable # audio gain_db, brightness, LED brightness
- subscribable # osc/state/subscribe with configurable lifetime
Actions
# ── OSC Meta ──
- id: osc_version_query
label: Query SSC Version
kind: action
address: /osc/version
params: []
description: Reports SSC protocol version implemented by the server.
example_tx: '{"osc":{"version":null}}'
example_rx: '{"osc":{"version":"1.0"}}'
- id: interface_version_query
label: Query Interface Version
kind: action
address: /interface/version
params: []
description: Reports SSC interface version.
example_tx: '{"interface":{"version":null}}'
example_rx: '{"interface":{"version":"1.2"}}'
- id: osc_schema_query
label: Query Address Schema
kind: action
address: /osc/schema
params:
- name: path
type: string
description: Address path to query schema for (null for root).
description: Query available address tree on the server.
example_tx: '{"osc":{"schema":null}}'
- id: osc_limits_query
label: Query Parameter Limits
kind: action
address: /osc/limits
params:
- name: address_tree
type: object
description: Address tree with null values at leaf positions to query.
description: Query accepted value ranges for method parameters.
example_tx: '{"osc":{"limits":[{"brightness":null}]}}'
- id: osc_xid
label: Echo Transaction ID
kind: action
address: /osc/xid
params:
- name: xid
type: number
description: Arbitrary transaction ID echoed back by server.
description: Reflected back in reply; may be bundled with other method calls.
example_tx: '{"osc":{"xid":1234567890},"brightness":null}'
- id: osc_feature_subscription_query
label: Query Subscription Support
kind: action
address: /osc/feature/subscription
params: []
description: Returns whether the server supports SSC subscriptions.
- id: osc_feature_pattern_query
label: Query Pattern Matching Support
kind: action
address: /osc/feature/pattern
params: []
description: Returns pattern matching characters supported (e.g. "*?") or false.
- id: osc_feature_baseaddr_query
label: Query Base Address Support
kind: action
address: /osc/feature/baseaddr
params: []
description: Returns whether the server supports base address shortening.
- id: osc_feature_timetag_query
label: Query Timetag Support
kind: action
address: /osc/feature/timetag
params: []
description: Returns whether the server supports timed method execution.
- id: osc_state_close
label: Close Connection
kind: action
address: /osc/state/close
params:
- name: close
type: boolean
description: Must be true.
description: Server closes connection immediately after reply.
example_tx: '{"osc":{"state":{"close":true}}}'
- id: osc_state_prettyprint_set
label: Set Pretty Print
kind: action
address: /osc/state/prettyprint
params:
- name: enabled
type: boolean
description: true for formatted output, false for compact.
description: Select formatting style for all SSC reply messages.
- id: osc_ping
label: Ping Server
kind: action
address: /osc/ping
params: []
description: Keep-alive ping (MCR DW only).
example_tx: '{"osc":{"ping":null}}'
# ── Subscriptions ──
- id: osc_state_subscribe
label: Subscribe to State Changes
kind: action
address: /osc/state/subscribe
params:
- name: address_tree
type: array
description: Array of address trees with null values at subscribe targets.
- name: lifetime
type: number
description: Subscription lifetime in seconds. Default 10.
- name: count
type: number
description: Max notifications before auto-terminate. Default 1000.
description: Subscribe to value changes. Server sends initial value then notifies on changes. Terminates with error 310.
example_tx: '{"osc":{"state":{"subscribe":[{"#":{"lifetime":2000},"brightness":null}]}}}'
# ── Device Management (common) ──
- id: device_name_get_set
label: Get/Set Device Name
kind: action
address: /device/name
params:
- name: name
type: string
description: "Device name (max 29 chars MCR, otherwise per-device). Pass null to query."
description: User-settable persistent device name.
example_tx: '{"device":{"name":null}}'
- id: device_group_get_set
label: Get/Set Device Group
kind: action
address: /device/group
params:
- name: group
type: string
description: "Group name up to 8 chars (letters, digits, -, _). Pass null to query."
description: Group name for device organization (Rack DW, CHG only).
- id: device_language_get_set
label: Get/Set Language
kind: action
address: /device/language
params:
- name: language
type: string
description: "Locale code (e.g. en_GB). Pass null to query."
description: Language for server-returned values. Default en_GB.
- id: device_location_get_set
label: Get/Set Location
kind: action
address: /device/location
params:
- name: location
type: string
description: Location description string. Pass null to query.
description: Device location name.
- id: device_identity_product_query
label: Query Product ID
kind: action
address: /device/identity/product
params: []
description: Product identification string (e.g. SLDW, SLDW4CH, CHG2N).
- id: device_identity_version_query
label: Query Firmware Version
kind: action
address: /device/identity/version
params: []
description: Device firmware version string.
- id: device_identity_serial_query
label: Query Serial Number
kind: action
address: /device/identity/serial
params: []
description: Unique product serial number.
- id: device_identity_vendor_query
label: Query Vendor Name
kind: action
address: /device/identity/vendor
params: []
description: Returns "Sennheiser electronic GmbH & Co. KG".
- id: device_state_query
label: Query Device State
kind: action
address: /device/state
params: []
description: "Rack DW: 0=Normal, 1=Pairing, 2=Rcvr Update, 3=TX Update, 4=TX Update Confirm, 5=TX Update Failed. MCR DW: NORMAL, UPDATE, UPDATE_FAILED, ERROR. CHG: 0=Normal, 1=FWU."
- id: device_reset
label: Soft Reset Device
kind: action
address: /device/reset
params:
- name: reset
type: boolean
description: Must be true.
description: Soft reset for configuration changes to take effect.
- id: device_factory_reset
label: Factory Reset
kind: action
address: /device/factory_reset
params:
- name: factory_reset
type: boolean
description: Must be true.
description: Reconfigure device with factory defaults and restart.
# ── Device Management (MCR DW only) ──
- id: device_restart
label: Restart Device
kind: action
address: /device/restart
params:
- name: restart
type: boolean
description: Must be true.
description: Restart the SL MCR DW.
- id: device_standby
label: Standby Device
kind: action
address: /device/standby
params:
- name: standby
type: boolean
description: Must be true.
description: Put device in standby. Wake via WakeOnLAN.
- id: device_restore
label: Restore Defaults
kind: action
address: /device/restore
params:
- name: option
type: string
description: "FACTORY_DEFAULTS or AUDIO_DEFAULTS."
description: Restore factory or audio defaults.
example_tx: '{"device":{"restore":"AUDIO_DEFAULTS"}}'
- id: device_update_enable
label: Trigger Firmware Update
kind: action
address: /device/update/enable
params:
- name: enable
type: boolean
description: Must be true.
description: Trigger device firmware update (MCR DW).
- id: device_update_progress_query
label: Query Update Progress
kind: action
address: /device/update/progress
params: []
description: Firmware update progress in percent (MCR DW, state=UPDATE).
- id: device_identification_visual
label: Visual Identify Device
kind: action
address: /device/identification/visual
params:
- name: visual
type: boolean
description: true to trigger visual identification.
description: Trigger visual identification on the MCR DW device.
- id: device_led_brightness_get_set
label: Get/Set LED Brightness
kind: action
address: /device/led/brightness
params:
- name: brightness
type: integer
description: "Range 0..5. Pass null to query."
description: LED brightness level (MCR DW only).
- id: device_dante_name_get_set
label: Get/Set Dante Name
kind: action
address: /device/dante/name
params:
- name: name
type: string
description: "Dante network name, max 16 chars. Pass null to query."
description: Dante network identification name (MCR DW only).
- id: device_position_get_set
label: Get/Set Position
kind: action
address: /device/position
params:
- name: position
type: string
description: Position description. Pass null to query.
description: Device position (MCR DW only).
- id: device_system_get_set
label: Get/Set System Name
kind: action
address: /device/system
params:
- name: system
type: string
description: System name. Pass null to query.
description: System name (MCR DW only).
- id: device_date_query
label: Query Device Date
kind: action
address: /device/date
params: []
description: Current device time as formatted string (MCR DW only).
- id: device_time_get_set
label: Get/Set Device Time
kind: action
address: /device/time
params:
- name: time
type: number
description: Seconds since 2000-01-01. Pass null to query.
description: Device time (MCR DW only).
- id: device_timeprecision_query
label: Query Time Precision
kind: action
address: /device/timeprecision
params: []
description: Always returns 1 (MCR DW only).
- id: device_warnings_query
label: Query Device Warnings
kind: action
address: /device/warnings
params: []
description: "MCR: NONE, HW_FAILURE, MIXERDSP_FAILURE, SETTINGS_SAVE_FAILED, UPDATE_FAILED, SETTINGS_DEFAULTD. CHG: array of warning strings."
# ── Receiver Channel (Rack DW: /rx1, MCR DW: /rx1../rx4) ──
- id: rx_identify
label: Identify Receiver Channel
kind: action
address: /rx1/identify
params:
- name: identify
type: boolean
description: true to start, false to stop.
description: Start/stop identify mode on receiver channel (Rack DW).
- id: rx_pair
label: Pair Transmitter
kind: action
address: /rx1/pair
params:
- name: pair
type: boolean
description: true to start pairing, false to stop.
description: Start/stop pairing mode (Rack DW).
- id: rx_pair_enable
label: Enable Pairing
kind: action
address: /rx1/pair/enable
params:
- name: enable
type: boolean
description: true to start, false to stop.
description: Start/stop pairing mode on channel (MCR DW).
- id: rx_pair_progress_query
label: Query Pairing Progress
kind: action
address: /rx1/pair/progress
params: []
description: Pairing countdown in seconds (120..0). MCR DW only, state=PAIRING.
- id: rx_rf_quality_query
label: Query RF Quality
kind: action
address: /rx1/rf_quality
params: []
description: RF quality in percentage (0..100). Subscribe-able.
- id: rx_walktest
label: Walk Test Mode
kind: action
address: /rx1/walktest
params:
- name: walktest
type: boolean
description: true to start, false to stop.
description: Start/stop walk-test mode.
- id: rx_mute_switch_active
label: Enable/Disable Mute Switch
kind: action
address: /rx1/mute_switch_active
params:
- name: active
type: boolean
description: Enable or disable mute switch on transmitter.
description: Control mute switch functionality (Rack DW).
- id: rx_mute_mode_get_set
label: Get/Set Mute Mode
kind: action
address: /rx1/mute_mode
params:
- name: mode
type: integer
description: "Rack DW: 0=Deactivated, 1=Active, 2=PushToTalk, 3=PushToMute, 4=LocationBasedMute. MCR DW: OFF, ON, PUSH_TO_TALK, PUSH_TO_MUTE, ROOM_MUTE."
description: Configure mute mode on connected transmitter.
- id: rx_mute_state_get_set
label: Get/Set Mute State
kind: action
address: /rx1/mute_state
params:
- name: muted
type: boolean
description: true=muted, false=unmuted. Pass null to query.
description: Mute state of connected transmitter.
- id: rx_sync_info_query
label: Query Sync Info
kind: action
address: /rx1/sync_info
params: []
description: "Rack DW: 0=Unknown, 1=Master, 2=Follower, 3=Unsync'd Follower."
- id: rx_master_follower_sync_info_query
label: Query Master/Follower Sync
kind: action
address: /rx1/master_follower/sync_info
params: []
description: "MCR DW: NOT_SYNCED, MASTER, FOLLOWER, UNSYNCED_FOLLOWER."
- id: rx_rfpi_query
label: Query RFPI
kind: action
address: /rx1/rfpi
params: []
description: RFPI identifier string of the receiver channel. Subscribe-able.
- id: rx_last_paired_ipei_query
label: Query Last Paired IPEI
kind: action
address: /rx1/last_paired_ipei
params: []
description: IPEI of last connected portable device.
- id: rx_autolock_get_set
label: Get/Set Autolock
kind: action
address: /rx1/autolock
params:
- name: autolock
type: boolean
description: Pass null to query.
description: Auto-lock state of the receiver channel (Rack DW).
- id: rx_warnings_query
label: Query Receiver Warnings
kind: action
address: /rx1/warnings
params: []
description: "Warnings: empty string (none), HW Failure, Bad Link, No Link, No FW Image, TX OTA FWU failed."
- id: rx_update_confirmation
label: Confirm/Reject TX Update
kind: action
address: /rx1/update/confirmation
params:
- name: confirm
type: boolean
description: true=approve, false=reject.
description: Approve or reject transmitter firmware update. Rejecting removes TX from pairing list.
- id: rx_update_progress_query
label: Query TX Update Progress
kind: action
address: /rx1/update/progress
params: []
description: Transmitter firmware update progress in percent (MCR DW, state=FWU_OTA).
- id: rx_state_query
label: Query Channel State
kind: action
address: /rx1/state
params: []
description: "MCR DW: NOT_CONNECTED, CONNECTED, PAIRING, FWU_OTA, FWU_OTA_CONFIRMATION, TRANSMITTER_UPDATE_FAILED, WALKTEST."
- id: rx_identification_visual
label: Visual Identify Channel
kind: action
address: /rx1/identification/visual
params:
- name: visual
type: boolean
description: true to trigger identification.
description: Trigger visual identification on MCR DW channel.
- id: rx_name_get_set
label: Get/Set Channel Name
kind: action
address: /rx1/name
params:
- name: name
type: string
description: "Channel name up to 8 chars. Pass null to query."
description: User-settable persistent channel name (MCR DW).
- id: rx_mates_query
label: Query Active Transmitters
kind: action
address: /rx1/mates
params: []
description: Returns array of active transmitter paths (MCR DW). Subscribe-able.
- id: rx_progress_query
label: Query Progress Bar
kind: action
address: /device/progress
params: []
description: Progress bar value 0..100 for pairing/update states (Rack DW, CHG).
# ── Transmitter / Mates (common across receivers) ──
- id: mates_active_query
label: Query Active Mates
kind: action
address: /mates/active
params: []
description: "Rack DW: returns ['tx1'] or []. MCR DW: use /rx1/mates."
- id: mates_tx1_device_type_query
label: Query Transmitter Type
kind: action
address: /mates/tx1/device_type
params: []
description: "Rack DW: 0=Handheld, 1=Bodypack, 2=Tablestand, 3=Boundary. MCR DW: HANDHELD, BODYPACK, TABLE-STAND, BOUNDARY."
- id: mates_tx1_acoustic_query
label: Query Acoustic Input Type
kind: action
address: /mates/tx1/acoustic
params: []
description: "Returns capsule/input type: Mic, Line, MME865, MD42, MMD945, etc. INCOMPATIBLE or empty string."
- id: mates_tx1_agc_get_set
label: Get/Set TX Audio Sensitivity
kind: action
address: /mates/tx1/agc
params:
- name: agc
type: integer
description: "Rack DW: 0=Auto, 1=0dB, 2=-6dB, 3=-12dB, 4=-18dB, 5=-24dB, 6=-30dB. MCR DW: AUTOMATIC, LEVEL1_0DB..LEVEL6_30DB."
description: Transmitter audio sensitivity / gain control.
- id: mates_tx1_power_lock_get_set
label: Get/Set Power Lock
kind: action
address: /mates/tx1/power_lock
params:
- name: locked
type: boolean
description: true to disable power button. Pass null to query.
description: Enable/disable the power button on transmitter.
- id: mates_tx1_power_down
label: Power Down Transmitter
kind: action
address: /mates/tx1/power_down
params:
- name: power_down
type: boolean
description: Must be true.
description: Remotely power down the transmitter.
- id: mates_tx1_pairing_lock_get_set
label: Get/Set Pairing Lock
kind: action
address: /mates/tx1/pairing_lock
params:
- name: locked
type: boolean
description: true to disable pairing button. Pass null to query.
description: Enable/disable the pairing button on transmitter (Rack DW).
- id: mates_tx1_pairing_button_lock_get_set
label: Get/Set Pairing Button Lock
kind: action
address: /mates/tx1/pairing_button_lock
params:
- name: locked
type: boolean
description: true to disable. Pass null to query.
description: Enable/disable pairing button (MCR DW).
- id: mates_tx1_auto_power_off_get_set
label: Get/Set Auto Power Off
kind: action
address: /mates/tx1/auto_power_off
params:
- name: mode
type: integer
description: "Rack DW: 0=Off, 1=10min, 2=20min, 3=30min. MCR DW: OFF, 10MIN, 20MIN, 30MIN."
description: Configure automatic power down timer on transmitter.
- id: mates_tx1_led_active_get_set
label: Get/Set LED Active
kind: action
address: /mates/tx1/led_active
params:
- name: active
type: boolean
description: true=LED on, false=LED off. Pass null to query.
description: Enable/disable LED on handheld or bodypack transmitter.
- id: mates_tx1_switch1_state_query
label: Query Switch State
kind: action
address: /mates/tx1/switch1/state
params: []
description: Get the mute switch state on the transmitter.
- id: mates_tx1_switch1_label_query
label: Query Switch Label
kind: action
address: /mates/tx1/switch1/label
params: []
description: Get the switch1 label (typically "Mute").
- id: mates_tx1_gooseneck_state_query
label: Query Gooseneck State
kind: action
address: /mates/tx1/gooseneck_state
params: []
description: Returns true if gooseneck attached to tablestand. Pre-condition: device_type must be TABLE-STAND.
- id: mates_tx1_warnings_query
label: Query Transmitter Warnings
kind: action
address: /mates/tx1/warnings
params: []
description: "Returns array: empty string (none) or Low Bat."
- id: mates_tx1_active_query
label: Query Mate Active State
kind: action
address: /mates/tx1/active
params: []
description: Returns true if link established (MCR DW). Subscribe-able.
# ── Battery (mates/tx1) ──
- id: mates_tx1_bat_type_query
label: Query Battery Type
kind: action
address: /mates/tx1/bat_type
params: []
description: "Rack DW: 0=Battery, 1=Rechargeable. MCR DW: BATTERY, RECHARGEABLE."
- id: mates_tx1_bat_state_query
label: Query Battery State
kind: action
address: /mates/tx1/bat_state
params: []
description: Returns bat_gauge or bat_lifetime depending on battery type.
- id: mates_tx1_bat_gauge_query
label: Query Battery Gauge
kind: action
address: /mates/tx1/bat_gauge
params: []
description: Battery capacity percentage (0..100).
- id: mates_tx1_bat_lifetime_query
label: Query Battery Lifetime
kind: action
address: /mates/tx1/bat_lifetime
params: []
description: Remaining battery lifetime in seconds (rechargeable only).
- id: mates_tx1_bat_bars_query
label: Query Battery Bars
kind: action
address: /mates/tx1/bat_bars
params: []
description: Battery bars displayed on receiver homescreen.
- id: mates_tx1_bat_health_query
label: Query Battery Health
kind: action
address: /mates/tx1/bat_health
params: []
description: Battery health percentage (rechargeable only).
- id: mates_tx1_bat_cycles_query
label: Query Battery Cycles
kind: action
address: /mates/tx1/bat_cycles
params: []
description: Battery charging cycle count (rechargeable only).
- id: mates_tx1_bat_charging_query
label: Query Charging Status
kind: action
address: /mates/tx1/bat_charging
params: []
description: Whether the battery is currently charging (tablestand/boundary with rechargeable).
# ── Audio (Rack DW) ──
- id: audio_out1_gain_db_get_set
label: Get/Set Output Gain
kind: action
address: /audio/out1/gain_db
params:
- name: gain_index
type: integer
description: "0=-24dB, 1=-18dB, 2=-12dB, 3=-6dB, 4=0dB, 5=+6dB, 6=+12dB. Pass null to query."
description: Analog output gain level (Rack DW).
- id: audio_out1_level_db_query
label: Query Output Level
kind: action
address: /audio/out1/level_db
params: []
description: Actual output level in dB (-60..0). Subscribe-able.
- id: audio_out1_label_query
label: Query Output Label
kind: action
address: /audio/out1/label
params: []
description: Output label string(s).
- id: audio_equalizer_preset_get_set
label: Get/Set EQ Preset
kind: action
address: /audio/equalizer/preset
params:
- name: preset
type: integer
description: "Rack DW: 0=Off, 1=Female Speech, 2=Male Speech, 3=Media, 4=Custom. MCR DW uses string options."
description: Equalizer preset selection (Rack DW).
- id: audio_low_cut_get_set
label: Get/Set Low Cut
kind: action
address: /audio/low_cut
params:
- name: enabled
type: boolean
description: Pass null to query.
description: Enable/disable low cut filter (Rack DW).
- id: audio_effects_reset
label: Reset Audio Effects
kind: action
address: /audio/effects_reset
params:
- name: reset
type: boolean
description: Must be true.
description: Restore audio effects to default settings (Rack DW).
# ── Audio (MCR DW) ──
- id: audio_rx_gain_get_set
label: Get/Set Channel Gain
kind: action
address: /audio/rx1/gain
params:
- name: gain
type: integer
description: "Range -24..12, increment 6 dB. Pass null to query."
description: Channel gain in dB (MCR DW). Subscribe-able.
- id: audio_rx_equalizer_preset_get_set
label: Get/Set Channel EQ Preset
kind: action
address: /audio/rx1/equalizer/preset
params:
- name: preset
type: string
description: "OFF, FEMALE_SPEECH, MALE_SPEECH, MEDIA, CUSTOM. Pass null to query."
description: Equalizer preset for the channel (MCR DW). Subscribe-able.
- id: audio_rx_low_cut_get_set
label: Get/Set Channel Low Cut
kind: action
address: /audio/rx1/low_cut
params:
- name: enabled
type: boolean
description: Pass null to query.
description: Low cut filter for the channel (MCR DW).
- id: audio_rx_restore
label: Restore Channel Audio Defaults
kind: action
address: /audio/rx1/restore
params:
- name: restore
type: boolean
description: Must be true.
description: Restore default audio settings for the channel (MCR DW).
- id: audio_out1_mixer_gain_query
label: Query Output Mixer Gain
kind: action
address: /audio/out1/mixer/gain
params: []
description: "Analog output mixer gain in dB, range -24..12, increment 6 (MCR DW). Read only, subscribe-able."
- id: audio_dante_mixer_gain_query
label: Query Dante Mixer Gain
kind: action
address: /audio/dante/mixer/gain
params: []
description: "Dante output mixer gain in dB, range -24..12, increment 6 (MCR DW)."
- id: audio_out1_desc_query
label: Query Output Description
kind: action
address: /audio/out1/desc
params: []
description: Description of audio output (MCR DW).
# ── Monitoring (MCR DW) ──
- id: m_mixer_level_query
label: Query Mixer Level
kind: action
address: /m/mixer/level
params: []
description: Incoming audio level on mixed channels (-60..0).
- id: m_rx_level_query
label: Query Channel Input Level
kind: action
address: /m/rx1/level
params: []
description: Incoming audio level / transmitter gain per channel (-60..0).
- id: m_rx_channel_level_query
label: Query Channel Post-Gain Level
kind: action
address: /m/rx1/channel_level
params: []
description: Audio level after first gain stage (-60..0).
# ── Display ──
- id: brightness_get_set
label: Get/Set Display Brightness
kind: action
address: /brightness
params:
- name: brightness
type: integer
description: "Range 0..100 percent. Pass null to query."
description: OLED display brightness (Rack DW only).
# ── Charger (CHG 2N / CHG 4N) ──
- id: bays_active_query
label: Query Active Bays
kind: action
address: /bays/active
params: []
description: Array of booleans indicating inserted devices per bay. Subscribe-able.
- id: bays_device_type_query
label: Query Bay Device Types
kind: action
address: /bays/device_type
params: []
description: "Array: 0=empty, 1=pTXh (handheld), 2=pTXb (bodypack)."
- id: bays_serial_query
label: Query Bay Serial Numbers
kind: action
address: /bays/serial
params: []
description: Array of serial number strings per bay. Subscribe-able.
- id: bays_version_query
label: Query Bay Firmware Versions
kind: action
address: /bays/version
params: []
description: Array of firmware version strings per bay. Subscribe-able.
- id: bays_linkdate_query
label: Query Bay Link Dates
kind: action
address: /bays/linkdate
params: []
description: Array of firmware link dates per bay. Subscribe-able.
- id: bays_charging_query
label: Query Charging Status
kind: action
address: /bays/charging
params: []
description: Array of booleans: true=charging, false=empty or fully charged. Subscribe-able.
- id: bays_bat_gauge_query
label: Query Bay Battery Gauge
kind: action
address: /bays/bat_gauge
params: []
description: Array of remaining capacity percentages per bay. Subscribe-able.
- id: bays_bat_timetofull_query
label: Query Time to Full Charge
kind: action
address: /bays/bat_timetofull
params: []
description: Array of remaining minutes until fully charged per bay. Subscribe-able.
- id: bays_bat_bars_query
label: Query Bay Battery Bars
kind: action
address: /bays/bat_bars
params: []
description: Array of battery bar counts per bay (0..6). Subscribe-able.
- id: bays_bat_health_query
label: Query Bay Battery Health
kind: action
address: /bays/bat_health
params: []
description: Array of battery health percentages per bay. Subscribe-able.
- id: bays_bat_cycles_query
label: Query Bay Battery Cycles
kind: action
address: /bays/bat_cycles
params: []
description: Array of charging cycle counts per bay. Subscribe-able.
- id: bays_identify
label: Identify Bay Slots
kind: action
address: /bays/identify
params:
- name: slots
type: array
description: "Array of booleans (CHG 2N: 2, CHG 4N: 4). true=flash LEDs, false=off, null=no change. Held for 10s."
description: Flash LEDs on selected charger bay slots.
example_tx: '{"bays":{"identify":[true,false,false,false]}}'
- id: bays_state_query
label: Query Bay States
kind: action
address: /bays/state
params: []
description: "Two arrays: state array (0=Normal, 1=Update, 2=Error) and error bitmap array (bit0=comm error, bit1=update error, bit2=overcurrent, bit3=5V missing)."
- id: device_ptxversion_sl_query
label: Query Stored SL PTX Version
kind: action
address: /device/ptxversion_sl
params: []
description: Version of stored SpeechLine portable transmitter firmware image.
- id: device_ptxversion_d1_query
label: Query Stored D1 PTX Version
kind: action
address: /device/ptxversion_d1
params: []
description: Version of stored ewd1 portable transmitter firmware image.
# ── Network Configuration (common) ──
- id: device_network_ether_interfaces_query
label: Query Ethernet Interfaces
kind: action
address: /device/network/ether/interfaces
params: []
description: Array of Ethernet interface names.
- id: device_network_ether_macs_query
label: Query MAC Addresses
kind: action
address: /device/network/ether/macs
params: []
description: Array of MAC address strings.
- id: device_network_ipv4_ipaddr_query
label: Query IPv4 Addresses
kind: action
address: /device/network/ipv4/ipaddr
params: []
description: Array of current IPv4 addresses.
- id: device_network_ipv4_netmask_query
label: Query IPv4 Netmasks
kind: action
address: /device/network/ipv4/netmask
params: []
description: Array of current IPv4 netmasks.
- id: device_network_ipv4_gateway_query
label: Query IPv4 Gateways
kind: action
address: /device/network/ipv4/gateway
params: []
description: Array of IPv4 gateways.
- id: device_network_ipv4_auto_get_set
label: Get/Set DHCP/ZeroConf
kind: action
address: /device/network/ipv4/auto
params:
- name: auto
type: array
description: Array of booleans per interface. Change takes effect after reset.
description: Enable/disable automatic IPv4 configuration via DHCP.
- id: device_network_mdns_get_set
label: Get/Set mDNS
kind: action
address: /device/network/mdns_responder
params:
- name: enabled
type: boolean
description: Pass null to query.
description: Enable/disable mDNS responder. Change takes effect after restart.
- id: device_network_interface_mapping_get_set
label: Get/Set Network Config
kind: action
address: /device/network/interface_mapping
params:
- name: config
type: string
description: "CONFIG1=Single cable, CONFIG2=Audio redundancy, CONFIG3=Split mode. Pass null to query."
description: Network interface configuration (MCR DW). Triggers automatic reboot on change.
# ── Dante Network (MCR DW) ──
- id: audio_out2_identity_version_query
label: Query Dante Interface Version
kind: action
address: /audio/out2/identity/version
params: []
description: Dante interface software version (MCR DW).
- id: audio_out2_network_ipv4_ipaddr_query
label: Query Dante IPv4 Addresses
kind: action
address: /audio/out2/network/ipv4/ipaddr
params: []
description: Current IPv4 addresses of Dante interfaces (MCR DW).
Feedbacks
# ── Device-level feedbacks ──
- id: device_state
type: enum
values:
- name: Rack DW
options: [Normal, Pairing, Receiver Update, Transmitter Update, TX Update Confirmation, TX Update Failed]
- name: MCR DW
options: [NORMAL, UPDATE, UPDATE_FAILED, ERROR]
- name: CHG
options: [Normal, FWU]
description: Current operating state of the device.
- id: device_warnings
type: enum
description: Active device warnings. Content varies by device type.
- id: device_update_progress
type: number
min: 0
max: 100
description: Firmware update progress percentage.
# ── Receiver channel feedbacks ──
- id: rx_rf_quality
type: number
min: 0
max: 100
description: RF signal quality percentage.
subscribeable: true
- id: rx_state
type: enum
values: [NOT_CONNECTED, CONNECTED, PAIRING, FWU_OTA, FWU_OTA_CONFIRMATION, TRANSMITTER_UPDATE_FAILED, WALKTEST]
description: Receiver channel state (MCR DW).
- id: rx_warnings
type: array
description: Active receiver warnings (e.g. Bad Link, No Link, No FW Image).
- id: rx_pair_progress
type: number
min: 0
max: 120
description: Pairing countdown in seconds (MCR DW).
# ── Transmitter feedbacks ──
- id: tx_bat_gauge
type: number
min: 0
max: 100
description: Battery remaining capacity percentage.
subscribeable: true
- id: tx_bat_lifetime
type: number
description: Remaining battery lifetime in seconds (rechargeable only).
subscribeable: true
- id: tx_bat_health
type: number
min: 0
max: 100
description: Battery health percentage.
- id: tx_warnings
type: array
description: Transmitter warnings (e.g. Low Bat).
- id: tx_mute_state
type: boolean
description: Current mute state of the transmitter.
# ── Audio feedbacks ──
- id: audio_out1_level
type: number
min: -60
max: 0
description: Actual output level in dB (Rack DW).
- id: audio_rx1_gain
type: number
min: -24
max: 12
description: Channel gain in dB (MCR DW).
- id: m_mixer_level
type: number
min: -60
max: 0
description: Mixed audio input level (MCR DW).
- id: m_rx_level
type: number
min: -60
max: 0
description: Per-channel transmitter gain level (MCR DW).
# ── Charger feedbacks ──
- id: bays_active
type: array
description: Boolean array of which bays have devices inserted.
subscribeable: true
- id: bays_charging
type: array
description: Boolean array of which bays are actively charging.
subscribeable: true
- id: bays_bat_gauge
type: array
description: Battery capacity percentage per bay.
subscribeable: true
- id: bays_state
type: array
description: "Two arrays: state (0=Normal, 1=Update, 2=Error) and error bitmap per bay."
- id: osc_error
type: object
description: Error response from server. Contains error codes (400, 404, 406, 454, etc.) mapped to failing addresses.
Variables
- id: brightness
type: integer
min: 0
max: 100
description: OLED display brightness percentage (Rack DW only).
- id: led_brightness
type: integer
min: 0
max: 5
description: LED brightness level (MCR DW only).
- id: audio_out1_gain_db
type: integer
options: [-24, -18, -12, -6, 0, 6, 12]
description: Analog output gain in dB (Rack DW).
- id: audio_rx_gain
type: integer
min: -24
max: 12
step: 6
description: Per-channel gain in dB (MCR DW).
- id: audio_out1_mixer_gain
type: integer
min: -24
max: 12
step: 6
description: Analog output mixer gain in dB (MCR DW).
- id: audio_dante_mixer_gain
type: integer
min: -24
max: 12
step: 6
description: Dante output mixer gain in dB (MCR DW).
- id: eq_preset
type: enum
options: [Off, Female Speech, Male Speech, Media, Custom]
description: Equalizer preset selection.
- id: tx_agc
type: enum
options: [Automatic, 0 dB, -6 dB, -12 dB, -18 dB, -24 dB, -30 dB]
description: Transmitter audio sensitivity.
- id: mute_mode
type: enum
options: [Deactivated, Active, Push To Talk, Push To Mute, Location Based Mute]
description: Mute mode configuration.
- id: tx_auto_power_off
type: enum
options: [Off, 10min, 20min, 30min]
description: Transmitter automatic power-off timer.
- id: subscription_lifetime
type: number
min: 1
description: SSC subscription lifetime in seconds. Default 10, configurable per subscription.
Events
- id: subscription_notification
description: Server pushes value changes for subscribed addresses during subscription lifetime.
- id: subscription_terminated
description: Server sends error 310 when subscription lifetime or notification count expires.
- id: osc_error_event
description: Server sends error response for faulty method calls (400, 404, 406, etc.).
Macros
# UNRESOLVED: no multi-step sequences explicitly described in source
Safety
confirmation_required_for: []
interlocks:
- action: rx_pair
precondition: Receiver must not be in walk-test mode.
- action: rx_walktest
precondition: Channel must be connected and not in pairing or identify mode.
- action: rx_update_confirmation
precondition: Channel must be in FWU_OTA_CONFIRMATION state. Rejecting removes TX from pairing list.
- action: mates_tx1_gooseneck_state
precondition: Transmitter type must be TABLE-STAND.
- action: mates_tx1_bat_lifetime
precondition: Link must be established with rechargeable battery transmitter.
# UNRESOLVED: no explicit safety interlocks or power sequencing warnings found in source
Notes
- SSC protocol model: JSON messages over UDP. Each message is a single JSON object. Getter methods use
nullas the argument value. The server adapts out-of-range values silently (clamps to nearest valid value). - Multi-channel addressing: For MCR DW devices, replace
rx1/tx1with the desired channel (rx1..rx4, tx1..tx4). The Rack DW uses onlyrx1/tx1. - Subscription lifecycle: Default lifetime is 10 seconds. Client must renew or set a longer lifetime. Up to 8 concurrent subscription clients supported. Subscriptions terminate on connection close or lifetime/count expiry (error 310).
- DNS-SD discovery: Devices publish
_ssc._udpservice type. Service instance name matches/device/name. Clients should not rely on default port 45. - Error codes: Follow HTTP-style three-digit codes. Common errors: 400 (bad JSON), 404 (address not found), 406 (wrong type/read-only), 454 (hidden address), 310 (subscription terminated).
- Network config changes: Many network settings require a device reset/restart to take effect (IPv4 auto, mDNS, interface mapping).
- MCR DW channel conventions: rx1..rx2 for SL MCR 2 DW, rx1..rx4 for SL MCR 4 DW. Corresponding tx1..tx4 for paired transmitters.
Provenance
source_domains:
- assets.sennheiser.com
source_urls:
- "https://assets.sennheiser.com/download/assets/TI_1094_v4.3_Sennheiser_Sound_Control_Protocol_SL_DW_EN.pdf/b2a3c92ce7bb11f088db768ee8e97aea?attachment=true"
retrieved_at: 2026-05-07T06:17:53.500Z
last_checked_at: 2026-06-02T22:13:51.166Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:13:51.166Z
matched_actions: 125
action_count: 125
confidence: medium
summary: "All 125 spec actions traced to source (dip-safe re-verify). (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "no multi-step sequences explicitly described in source"
- "no explicit safety interlocks or power sequencing warnings found in source"
- "No TCP transport details for devices that might support it (source says UDP-only for SLDW devices)"
- "Firmware version compatibility ranges not stated"
- "Max concurrent client connections for non-subscription operations not stated"
- "UDP message size limits not explicitly stated (error 450 exists for response too long)"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0