Summary
IP control protocol for the Audio-Technica ATDM-0604a Digital SmartMixer, which is the device that hosts and controls the ES954 and ES964 microphone arrays (selected via Virtual Mic Mode). Control is carried over TCP port 17300 (commands) and UDP multicast 239.000.000.100 port 17000 (status change notifications). Commands are ASCII text, space-delimited, CR-terminated, with a fixed envelope: <command>␣<S|O>␣<device_id>␣<unit_id>␣<continue>␣<params>\r.
Transport
protocols:
- tcp
- udp
addressing:
port: 17300
multicast_address: 239.000.000.100 # stated in source Table 5-1
multicast_port: 17000 # stated in source Table 5-1
auth:
type: none # inferred: source documents "Password not required" as default; s_permission can enable password (set Password require=1)
Traits
# - queryable (extensive g_* acquisition / Get Commands present)
# - levelable (input/output/operator fader level change commands present)
# - routable (bus assign, output flip, input source routing present)
# - powerable (not a separate trait; reboot/identify only; no discrete power on/off)
Actions
# All commands follow the envelope:
# <CMD>␣<S|O>␣<device_id(4)>␣<unit_id(2)>␣<continue(2)>␣<params>\r
# S = Set (Handshake), O = One-Way (Get). Continue: NC=no division, CS=head, CM=middle, CE=end.
# Command examples below use S 0000 00 NC as the literal envelope from the source.
# === Individual commands ===
- id: sic
label: Input CH Level Change
kind: action
command: "SICL␣S␣0000␣00␣NC␣{channel},{level}\r"
params:
- name: channel
type: integer
description: Input channel (0-5 = CH 1-6)
- name: level
type: integer
description: Fader level (0-511, see 6.1 Fader Table; -inf,-120dB to +10dB)
- id: gic
label: Input CH Level Acquisition
kind: query
command: "GICL␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
description: Input channel (0-5)
- id: sicm
label: Input CH Mute State Change
kind: action
command: "SICM␣S␣0000␣00␣NC␣{channel},{mute}\r"
params:
- name: channel
type: integer
description: Input channel (0-5)
- name: mute
type: integer
description: 0=Disable, 1=Enable
- id: gicm
label: Input CH Mute State Acquisition
kind: query
command: "GICM␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: soc
label: Output CH Level Change
kind: action
command: "SOCL␣S␣0000␣00␣NC␣{channel},{level}\r"
params:
- name: channel
type: integer
description: 0-1 = CH 1-2
- name: level
type: integer
description: 0-511
- id: goc
label: Output CH Level Acquisition
kind: query
command: "GOCL␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: socm
label: Output CH Mute State Change
kind: action
command: "SOCM␣S␣0000␣00␣NC␣{channel},{mute}\r"
params:
- name: channel
type: integer
- name: mute
type: integer
- id: gocm
label: Output CH Mute State Acquisition
kind: query
command: "GOCM␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: sbus
label: Bus Assign Change
kind: action
command: "SBUS␣S␣0000␣00␣NC␣{input_ch},{bus_ch},{assign},{level}\r"
params:
- name: input_ch
type: integer
description: 0-5
- name: bus_ch
type: integer
description: 1-3 (BUS1, BUS2, BUS ST)
- name: assign
type: integer
description: 0=Off, 1=Smart Mix Pre, 2=Smart Mix Post
- name: level
type: integer
description: 0-411
- id: gbus
label: Bus Assign Acquisition
kind: query
command: "GBUS␣O␣0000␣00␣NC␣{input_ch},{bus_ch}\r"
params:
- name: input_ch
type: integer
- name: bus_ch
type: integer
- id: sop
label: Operator Fader Level Change
kind: action
command: "SOPL␣S␣0000␣00␣NC␣{fader_no},{level}\r"
params:
- name: fader_no
type: integer
- name: level
type: integer
description: 0-100
- id: gop
label: Operator Fader Level Acquisition
kind: query
command: "GOPL␣O␣0000␣00␣NC␣{fader_no}\r"
params:
- name: fader_no
type: integer
- id: sopm
label: Operator Fader Mute State Change
kind: action
command: "SOPM␣S␣0000␣00␣NC␣{fader_no},{mute}\r"
params:
- name: fader_no
type: integer
- name: mute
type: integer
- id: gopm
label: Operator Fader Mute State Acquisition
kind: query
command: "GOPM␣O␣0000␣00␣NC␣{fader_no}\r"
params:
- name: fader_no
type: integer
- id: ssmm
label: SmartMix Mode Change
kind: action
command: "SSMM␣S␣0000␣00␣NC␣1,{mode}\r"
params:
- name: mode
type: integer
description: 0=Off, 1=Gate, 2=Gain Share (group fixed to 1)
- id: gsmm
label: SmartMix Mode Acquisition
kind: query
command: "GSMM␣O␣0000␣00␣NC␣1\r"
params: []
- id: noom
label: No. of Open Mic Change
kind: action
command: "NOOM␣S␣0000␣00␣NC␣1,{nom}\r"
params:
- name: nom
type: integer
description: 1-10
- id: gnoom
label: No. of Open Mic Acquisition
kind: query
command: "GNOOM␣O␣0000␣00␣NC␣1\r"
params: []
- id: callp
label: Preset Call (CALLP)
kind: action
command: "CALLP␣S␣0000␣00␣NC␣{preset}\r"
params:
- name: preset
type: integer
- id: regip
label: Preset Save (REGIP)
kind: action
command: "REGIP␣S␣0000␣00␣NC␣{preset}\r"
params:
- name: preset
type: integer
- id: callpp
label: Partial Preset Call
kind: action
command: "CALLPP␣S␣0000␣00␣NC␣{partial_preset}\r"
params:
- name: partial_preset
type: integer
description: 1-40
- id: sdid
label: Device ID Change
kind: action
command: "SDID␣S␣0000␣00␣NC␣{device_id}\r"
params:
- name: device_id
type: string
description: 0000-03E7 hex or 0-999 decimal; depends on SFID format
- id: gdid
label: Device ID Acquisition (GDID)
kind: query
command: "GDID␣O␣0000␣00␣NC\r"
params: []
- id: sfid
label: Device ID Format Setting
kind: action
command: "SFID␣S␣0000␣00␣NC␣{format}\r"
params:
- name: format
type: integer
description: 0=Hexadecimal, 1=Decimal
# === Input commands ===
- id: s_input_gain_level
label: Input Gain & Level Setting Change
kind: action
command: "s_input_gain_level␣S␣0000␣00␣NC␣{ch},{mic_gain},{line_gain},{level},{max_en},{max_val},{mute},{vm_gain}\r"
params:
- name: ch
type: integer
description: 0-5 (Input 1-6)
- name: mic_gain
type: integer
description: 0-40 (+20dB to +60dB)
- name: line_gain
type: integer
description: 0-40 (-20dBu to -60dBu)
- name: level
type: integer
description: 0-511
- name: max_en
type: integer
description: Max volume enable 0/1
- name: max_val
type: integer
description: Max volume value 0-511
- name: mute
type: integer
description: 0=Disable, 1=Enable
- name: vm_gain
type: integer
description: Virtual Mic gain 0-40
- id: g_input_gain_level
label: Input Gain & Level Setting Acquisition
kind: query
command: "g_input_gain_level␣O␣0000␣00␣NC␣{ch}\r"
params:
- name: ch
type: integer
- id: input_gain_level_meter_notice
label: Input Gain/Level Setting Notice
kind: notification
command: "MD␣input_gain_level_notice␣0000␣00␣NC␣{ch},{mic_gain},{line_gain},{level},{mute}\r"
params:
- name: ch
type: integer
- name: mic_gain
type: integer
- name: line_gain
type: integer
- name: level
type: integer
- name: mute
type: integer
- id: s_input_channel_settings
label: Input Channel Setting Change
kind: action
command: "s_input_channel_settings␣S␣0000␣00␣NC␣{ch},{source},{phantom},{phase},{lowcut},{aec},{smartmix},{link},{bus1},{bus2},{reserved},{bus_st},\"{name}\",{color},{orient},{tilt},{pattern},{fader_group},{mono},{unit_type},{atlink_id},{channel}\r"
params:
- name: ch
type: integer
description: 0-5
- name: source
type: integer
description: 0=Mic,1=Line+4dBu,2=Line 0dBV,3=Line -10dBV,4=Line -20dBV,5=USB,6=Virtual Mic,8=A-T LINK,10=A-T LINK MIX port A,11=A-T LINK MIX port B
- name: phantom
type: integer
description: 0=Off
- name: phase
type: integer
description: 0=Normal, 1=Invert
- name: lowcut
type: integer
description: 0=Off
- name: aec
type: integer
description: 0=Off
- name: smartmix
type: integer
description: 0=Off
- name: link
type: integer
description: 0=Unlink, 1=Link
- name: bus1
type: integer
description: 0=Off
- name: bus2
type: integer
description: 0=Off
- name: reserved
type: string
description: Fixed "0"
- name: bus_st
type: integer
description: 0=Off
- name: name
type: string
description: Quoted channel name
- name: color
type: integer
description: 0-7 (Green,Yellow,Brown,Red,Pink,Blue,Gray,DarkGray)
- name: orient
type: integer
description: 0-330 (30-deg steps)
- name: tilt
type: integer
description: 0=0deg, 45=45deg
- name: pattern
type: integer
description: 0=Wide, 1=Normal, 2=Omni
- name: fader_group
type: integer
description: 0=None, 1-8 = Group A-H
- name: mono
type: integer
description: 0=Off (Input ST only)
- name: unit_type
type: string
description: A-T LINK unit type (1-FF) when source=8
- name: atlink_id
type: string
description: A-T LINK device ID (1-255)
- name: channel
type: string
description: A-T LINK channel (1-255)
- id: g_input_channel_settings
label: Input Channel Setting Acquisition
kind: query
command: "g_input_channel_settings␣O␣0000␣00␣NC␣{ch}\r"
params:
- name: ch
type: integer
- id: g_input_channel_settings2
label: Input Channel Setting Acquisition 2
kind: query
command: "g_input_channel_settings2␣O␣0000␣00␣NC␣{ch}\r"
params:
- name: ch
type: integer
- id: s_input_eq
label: Input EQ Setting Change
kind: action
command: "s_input_eq␣S␣0000␣00␣NC␣{ch},{eq_on},{b1_enable},{b1_type},{b1_freq},{b1_gain},{b1_q},{b2_enable},{b2_freq},{b2_gain},{b2_q},{b3_enable},{b3_freq},{b3_gain},{b3_q},{b4_enable},{b4_type},{b4_freq},{b4_gain},{b4_q},{eq_mode}\r"
params:
- name: ch
type: integer
- name: eq_on
type: integer
description: 0=Off
- name: b1_enable
type: integer
- name: b1_type
type: integer
- name: b1_freq
type: integer
description: 0-480 (20Hz-20kHz)
- name: b1_gain
type: integer
- name: b1_q
type: integer
- name: b2_enable
type: integer
- name: b2_freq
type: integer
- name: b2_gain
type: integer
- name: b2_q
type: integer
- name: b3_enable
type: integer
- name: b3_freq
type: integer
- name: b3_gain
type: integer
- name: b3_q
type: integer
- name: b4_enable
type: integer
- name: b4_type
type: integer
- name: b4_freq
type: integer
- name: b4_gain
type: integer
- name: b4_q
type: integer
- name: eq_mode
type: integer
description: 0=EasyMode, 1=Expert Mode
- id: g_input_eq
label: Input EQ Setting Acquisition
kind: query
command: "g_input_eq␣O␣0000␣00␣NC␣{ch}\r"
params:
- name: ch
type: integer
- id: s_fbs_general
label: FBS Common Setting Change
kind: action
command: "s_fbs_general␣S␣0000␣00␣NC␣{detection},{response}\r"
params:
- name: detection
type: integer
description: 0=Low,1=Mid,2=High
- name: response
type: integer
description: 0=slow, 1=fast
- id: g_fbs_general
label: FBS Common Setting Acquisition
kind: query
command: "g_fbs_general␣O␣0000␣00␣NC\r"
params: []
- id: s_fbs_input
label: FBS Setting Change (Input)
kind: action
command: "s_fbs␣S␣0000␣00␣NC␣{channel},{proc_type},{enable},{b1},{b2},{b3},{b4},{b5},{b6},{b7},{b8}\r"
params:
- name: channel
type: integer
description: 0-5
- name: proc_type
type: integer
description: 0=Reset,1=All Static,2=Copy to EQ (Output only),3=Band Setting
- name: enable
type: integer
description: 0=Off
- name: b1
type: integer
description: 0=Off (Static select)
- name: b2
type: integer
- name: b3
type: integer
- name: b4
type: integer
- name: b5
type: integer
- name: b6
type: integer
- name: b7
type: integer
- name: b8
type: integer
- id: s_fbs_output
label: FBS Setting Change (Output)
kind: action
command: "s_fbs␣S␣0000␣00␣NC␣{channel},{proc_type},{enable},{b1},{b2},{b3},{b4},{b5},{b6},{b7},{b8}\r"
params:
- name: channel
type: integer
description: 12-13 (Output CH 1-2) or 20 (Output ST)
- name: proc_type
type: integer
- name: enable
type: integer
- name: b1
type: integer
- name: b2
type: integer
- name: b3
type: integer
- name: b4
type: integer
- name: b5
type: integer
- name: b6
type: integer
- name: b7
type: integer
- name: b8
type: integer
- id: g_fbs
label: FBS Setting Acquisition
kind: query
command: "g_fbs␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: s_input_channel_comp_settings
label: Input Channel Dynamics Setting Change
kind: action
command: "s_input_channel_comp_settings␣S␣0000␣00␣NC␣{ch},{enable},{comp_type},{threshold},{ratio},{attack},{release},{output_gain},{b1_freq},{b1_gain},{b1_q},{b2_freq},{b2_gain},{b2_q},{side_chain},{lowcut}\r"
params:
- name: ch
type: integer
- name: enable
type: integer
description: 0=Off
- name: comp_type
type: integer
description: 0=Comp, 1=DeEsser
- name: threshold
type: integer
description: 0-60 (-60dB to 0dB)
- name: ratio
type: integer
description: 0=1:1.4,1=1:2,2=1:4,3=1:6,4=1:10,5=+inf
- name: attack
type: integer
description: 0,25,50,100,200,400,800,1600,3200,10000 msec
- name: release
type: integer
description: 50,100,200,400,800,1000,2000 msec
- name: output_gain
type: integer
description: 0-20 (-10dB to +10dB)
- name: b1_freq
type: integer
- name: b1_gain
type: integer
- name: b1_q
type: integer
- name: b2_freq
type: integer
- name: b2_gain
type: integer
- name: b2_q
type: integer
- name: side_chain
type: integer
description: 0=Off
- name: lowcut
type: integer
description: 0=Off
- id: g_input_channel_comp_settings
label: Input Channel Dynamics Setting Acquisition
kind: query
command: "g_input_channel_comp_settings␣O␣0000␣00␣NC␣{ch}\r"
params:
- name: ch
type: integer
- id: s_aec_general
label: AEC Setting Change
kind: action
command: "s_aec_general␣S␣0000␣00␣NC␣{mode},{aec_ref},{reserved},{send_ref},{reserved},{input_bus},{out1},{out2},{out_st},{aec_atten},{nc_atten},{nlp_en},{nlp_sens}\r"
params:
- name: mode
type: integer
description: 0=Off, 1=AEC, 2=Noise Canceling
- name: aec_ref
type: integer
description: 0-5 (CH 1-6) / 12-13 (Out 1-2) / 22 (Out ST) / 23 (External)
- name: reserved
type: string
description: Not used
- name: send_ref
type: integer
description: 0=Off
- name: reserved
type: string
- name: input_bus
type: integer
description: 0=Bus 1, 1=Bus 2, 10=Bus ST
- name: out1
type: integer
description: 0=Off
- name: out2
type: integer
- name: out_st
type: integer
- name: aec_atten
type: integer
description: 0-20 (AEC attenuation dB)
- name: nc_atten
type: integer
description: 0-20 (NC attenuation dB)
- name: nlp_en
type: integer
description: 0=Off
- name: nlp_sens
type: integer
description: 0=Low,1=Mid,2=High
- id: g_aec_general
label: AEC Setting Acquisition
kind: query
command: "g_aec_general␣O␣0000␣00␣NC\r"
params: []
- id: s_smart_mix
label: Smart Mix Setting Change
kind: action
command: "s_smart_mix␣S␣0000␣00␣NC␣{ch},{group},{gs_weight},{priority},{can_cut},{off_atten},{threshold}\r"
params:
- name: ch
type: integer
- name: group
type: integer
description: 1 (SmartMix Group 1)
- name: gs_weight
type: integer
description: 0-60 (-15.0 to +15.0)
- name: priority
type: integer
description: 0=Off
- name: can_cut
type: integer
description: 0=Off
- name: off_atten
type: integer
description: 0-60
- name: threshold
type: integer
description: 0-20
- id: g_smart_mix
label: Smart Mix Setting Acquisition
kind: query
command: "g_smart_mix␣O␣0000␣00␣NC␣{ch}\r"
params:
- name: ch
type: integer
- id: s_smart_mix_general
label: Smart Mix Common Setting Change
kind: action
command: "s_smart_mix_general␣S␣0000␣00␣NC␣{mode},{last_mic_on},{hold_time},{noma},{nom},{priority_mode},{gt_en},{gt_level},{group}\r"
params:
- name: mode
type: integer
description: 0=Off, 1=Gate, 2=Gain Share
- name: last_mic_on
type: integer
description: 0=Off
- name: hold_time
type: integer
description: 100..10000 msec (one of fixed values)
- name: noma
type: integer
description: 0=Off
- name: nom
type: integer
description: 1-10
- name: priority_mode
type: integer
description: 0=Mode 1, 1=Mode 2
- name: gt_en
type: integer
description: 0=Off
- name: gt_level
type: integer
description: 0-80 (-80dB to 0dB)
- name: group
type: integer
description: 1 (fixed)
- id: g_smart_mix_general
label: Smart Mix Common Setting Acquisition
kind: query
command: "g_smart_mix_general␣O␣0000␣00␣NC␣1\r"
params: []
- id: s_ducker_general
label: Ducker Setting Change
kind: action
command: "s_ducker_general␣S␣0000␣00␣NC␣{enable}\r"
params:
- name: enable
type: integer
description: 0=Off
- id: g_ducker_general
label: Ducker Setting Acquisition
kind: query
command: "g_ducker_general␣O␣0000␣00␣NC\r"
params: []
- id: open_channel_notice
label: Open Channel State Notice
kind: notification
command: "MD␣open_channel_notice␣0000␣00␣NC␣{ch},{status}\r"
params:
- name: ch
type: integer
- name: status
type: integer
description: 0=Close, 1=Open
- id: cancut_notice
label: Can Cut Notice
kind: notification
command: "MD␣cancut_notice␣0000␣00␣NC␣{i1},{i2},{i3},{i4},{i5},{i6}\r"
params:
- name: i1
type: integer
description: Input 1 Off/On
- name: i2
type: integer
- name: i3
type: integer
- name: i4
type: integer
- name: i5
type: integer
- name: i6
type: integer
- id: fbs_notice_input
label: FBS Notice (Input)
kind: notification
command: "MD␣fbs_notice␣0000␣00␣NC␣{channel},{proc_type},{enable},{b1_static},{b1_freq},{b1_gain},{b1_q},{b2_static},{b2_freq},{b2_gain},{b2_q},{b3_static},{b3_freq},{b3_gain},{b3_q},{b4_static},{b4_freq},{b4_gain},{b4_q},{b5_static},{b5_freq},{b5_gain},{b5_q},{b6_static},{b6_freq},{b6_gain},{b6_q},{b7_static},{b7_freq},{b7_gain},{b7_q},{b8_static},{b8_freq},{b8_gain},{b8_q}\r"
params:
- name: channel
type: integer
description: 0-5 (Input) or 12-13 (Out 1-2) or 20 (Out ST L) or 21 (Out ST R)
- id: fbs_notice_output
label: FBS Notice (Output)
kind: notification
command: "MD␣fbs_notice␣0000␣00␣NC␣{channel},{proc_type},{enable},{b1_static},{b1_freq},{b1_gain},{b1_q},{b2_static},{b2_freq},{b2_gain},{b2_q},{b3_static},{b3_freq},{b3_gain},{b3_q},{b4_static},{b4_freq},{b4_gain},{b4_q},{b5_static},{b5_freq},{b5_gain},{b5_q},{b6_static},{b6_freq},{b6_gain},{b6_q},{b7_static},{b7_freq},{b7_gain},{b7_q},{b8_static},{b8_freq},{b8_gain},{b8_q}\r"
params:
- name: channel
type: integer
description: 12-13/20-21 for output variants
# === Output commands ===
- id: s_output_level
label: Output Level Setting Change
kind: action
command: "s_output_level␣S␣0000␣00␣NC␣{channel},{level},{max_en},{max_val},{min_en},{min_val}\r"
params:
- name: channel
type: integer
description: 0-1 (Output 1-2) or 10 (Output ST)
- name: level
type: integer
description: 0-511
- name: max_en
type: integer
- name: max_val
type: integer
- name: min_en
type: integer
- name: min_val
type: integer
- id: g_output_level
label: Output Level Setting Acquisition
kind: query
command: "g_output_level␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: output_level_notice
label: Output Level Setting Notice
kind: notification
command: "MD␣output_level_notice␣0000␣00␣NC␣{channel},{level}\r"
params:
- name: channel
type: integer
- name: level
type: integer
- id: s_output_mute
label: Output Channel Mute Setting Change
kind: action
command: "s_output_mute␣S␣0000␣00␣NC␣{channel},{mute}\r"
params:
- name: channel
type: integer
- name: mute
type: integer
- id: g_output_mute
label: Output Channel Mute Setting Acquisition
kind: query
command: "g_output_mute␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: output_mute_notice
label: Output Mute Setting Notice
kind: notification
command: "MD␣output_mute_notice␣0000␣00␣NC␣{channel},{mute}\r"
params:
- name: channel
type: integer
- name: mute
type: integer
- id: s_output_channel_settings
label: Output Channel Setting Change
kind: action
command: "s_output_channel_settings␣S␣0000␣00␣NC␣{channel},{unity},\"{name}\",{color},{fader_group}\r"
params:
- name: channel
type: integer
description: 0-1
- name: unity
type: integer
description: 0=+4dBu,1=0dBv,2=-10dBv,3=-33dBv (ST only)
- name: name
type: string
description: Quoted channel name
- name: color
type: integer
description: 0-7
- name: fader_group
type: integer
description: 0=None, 1-8 = Group A-H
- id: g_output_channel_settings
label: Output Channel Setting Acquisition
kind: query
command: "g_output_channel_settings␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: s_output_eq
label: Output EQ Setting Change (12-band)
kind: action
command: "s_output_eq␣S␣0000␣00␣NC␣{channel},{eq_on},{b1_enable},{b1_type},{b1_freq},{b1_gain},{b1_q},{b2_enable},{b2_freq},{b2_gain},{b2_q},{b3_enable},{b3_freq},{b3_gain},{b3_q},{b4_enable},{b4_freq},{b4_gain},{b4_q},{b5_enable},{b5_freq},{b5_gain},{b5_q},{b6_enable},{b6_freq},{b6_gain},{b6_q},{b7_enable},{b7_freq},{b7_gain},{b7_q},{b8_enable},{b8_freq},{b8_gain},{b8_q},{b9_enable},{b9_freq},{b9_gain},{b9_q},{b10_enable},{b10_freq},{b10_gain},{b10_q},{b11_enable},{b11_freq},{b11_gain},{b11_q},{b12_enable},{b12_type},{b12_freq},{b12_gain},{b12_q}\r"
params:
- name: channel
type: integer
description: 0-1 (or 10 for Output ST)
- name: eq_on
type: integer
- id: g_output_eq
label: Output EQ Setting Acquisition
kind: query
command: "g_output_eq␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: s_output_12eq_func
label: 12-Band EQ Function Request
kind: action
command: "s_output_12eq_func␣S␣0000␣00␣NC␣{channel},{proc_type},{preset_no}\r"
params:
- name: channel
type: integer
description: 0-1
- name: proc_type
type: integer
description: 0=Flat,1=Recall,2=Save,3=Reset
- name: preset_no
type: integer
description: 1-20
- id: s_dynamics_delay
label: Dynamics & Delay Setting Change
kind: action
command: "s_dynamics_delay␣S␣0000␣00␣NC␣{channel},{prepost},{comp_en},{comp_type},{threshold},{ratio},{attack},{release},{output_gain},{b1_freq},{b1_gain},{b1_q},{b2_freq},{b2_gain},{b2_q},{side_chain},{lowcut},{lim_en},{lim_thresh},{delay_en},{delay_time}\r"
params:
- name: channel
type: integer
description: 0-1
- name: prepost
type: integer
description: 0=Pre, 1=Post
- name: comp_en
type: integer
- name: comp_type
type: integer
description: 0=Comp,1=DeEsser
- name: threshold
type: integer
- name: ratio
type: integer
- name: attack
type: integer
- name: release
type: integer
- name: output_gain
type: integer
- name: b1_freq
type: integer
- name: b1_gain
type: integer
- name: b1_q
type: integer
- name: b2_freq
type: integer
- name: b2_gain
type: integer
- name: b2_q
type: integer
- name: side_chain
type: integer
- name: lowcut
type: integer
- name: lim_en
type: integer
- name: lim_thresh
type: integer
- name: delay_en
type: integer
- name: delay_time
type: integer
description: 0-1000 msec
- id: g_dynamics_delay
label: Dynamics & Delay Setting Acquisition
kind: query
command: "g_dynamics_delay␣O␣0000␣00␣NC␣{channel}\r"
params:
- name: channel
type: integer
- id: s_usb_out
label: USB Output Setting Change
kind: action
command: "s_usb_out␣S␣0000␣00␣NC␣{out1_bus},{out2_bus},{send_level}\r"
params:
- name: out1_bus
type: integer
description: 0=Off,1-2=CH 1-2,3=ST(L),4=NC
- name: out2_bus
type: integer
description: 0=Off,1-2=CH 1-2,3=ST(R),4=NC
- name: send_level
type: integer
description: 0-411
- id: g_usb_out
label: USB Output Setting Acquisition
kind: query
command: "g_usb_out␣O␣0000␣00␣NC\r"
params: []
- id: s_oscillator
label: Oscillator Control Setting Change
kind: action
command: "s_oscillator␣S␣0000␣00␣NC␣{enable},{source},{frequency},{level},{ch1_assign},{ch2_assign},{st_assign}\r"
params:
- name: enable
type: integer
description: 0=Off
- name: source
type: integer
description: 0=Sine Wave, 1=Pink Noise
- name: frequency
type: integer
description: 0=100Hz, 1=1kHz, 2=10kHz
- name: level
type: integer
description: 0-121 (-inf,-120dB to 0dB)
- name: ch1_assign
type: integer
- name: ch2_assign
type: integer
- name: st_assign
type: integer
- id: g_oscillator
label: Oscillator Control Setting Acquisition
kind: query
command: "g_oscillator␣O␣0000␣00␣NC\r"
params: []
# === Operator page commands ===
- id: s_operator_general
label: Operator Page Common Setting Change
kind: action
command: "s_operator_general␣S␣0000␣00␣NC␣{button_link}\r"
params:
- name: button_link
type: integer
description: 0=ArrayMic Off/GPO Off, 1=ArrayMic On/GPO Off, 2=ArrayMic Off/GPO On, 3=Both On
- id: g_operator_general
label: Operator Page Common Setting Acquisition
kind: query
command: "g_operator_general␣O␣0000␣00␣NC\r"
params: []
- id: s_operator_pagesettings
label: Operator Page Setting Change
kind: action
command: "s_operator_pagesettings␣S␣0000␣00␣NC␣{recall_preset},{num_preset},{fader_resume},{logout_btn},{switch_btn}\r"
params:
- name: recall_preset
type: integer
description: 0=Off
- name: num_preset
type: integer
description: 1-6
- name: fader_resume
type: integer
description: 0=Off
- name: logout_btn
type: integer
description: 0=Off
- name: switch_btn
type: integer
description: 0-3 (ArrayMic/GPO1/GPO2 combinations)
- id: g_operator_pagesettings
label: Operator Page Setting Acquisition
kind: query
command: "g_operator_pagesettings␣O␣0000␣00␣NC\r"
params: []
- id: s_operator_channel
label: Operator Page Channel Setting Change
kind: action
command: "s_operator_channel␣S␣0000␣00␣NC␣{fader_ch},\"{name}\",{icon},{level},{max_en},{max_val},{min_en},{min_val}\r"
params:
- name: fader_ch
type: integer
description: 1-8
- name: name
type: string
description: Quoted fader name
- name: icon
type: integer
description: 0=Mic,1=Aux,2=PC,3=Chat,4=Spk,5=Rec
- name: level
type: integer
description: 0-100
- name: max_en
type: integer
- name: max_val
type: integer
- name: min_en
type: integer
- name: min_val
type: integer
- id: g_operator_channel
label: Operator Page Channel Setting Acquisition
kind: query
command: "g_operator_channel␣O␣0000␣00␣NC␣{fader_ch}\r"
params:
- name: fader_ch
type: integer
- id: operator_channel_notice
label: Operator Page Channel Setting Notification
kind: notification
command: "MD␣operator_channel_notice␣0000␣00␣NC␣{fader_ch},{level},{mute},{page}\r"
params:
- name: fader_ch
type: integer
- name: level
type: integer
- name: mute
type: integer
- name: page
type: integer
description: 1=Page 1
- id: s_operator_assign
label: Operator Page Assign Channel Setting Change
kind: action
command: "s_operator_assign␣S␣0000␣00␣NC␣{fader_ch},{ch_type},{show_mute},{show_fader},{l1},{l2},{l3},{l4},{l5},{l6},{l7},{l8}\r"
params:
- name: fader_ch
type: integer
- name: ch_type
type: integer
description: 0=Input, 1=Output, 2=Group
- name: show_mute
type: integer
description: 0=Off
- name: show_fader
type: integer
description: 0=Off
- name: l1
type: integer
description: 0=Off (Input 1 / Output 1 / Group A)
- name: l2
type: integer
- name: l3
type: integer
- name: l4
type: integer
- name: l5
type: integer
- name: l6
type: integer
- name: l7
type: integer
- name: l8
type: integer
- id: g_operator_assign
label: Operator Page Assign Channel Setting Acquisition
kind: query
command: "g_operator_assign␣O␣0000␣00␣NC␣{fader_ch}\r"
params:
- name: fader_ch
type: integer
- id: s_operator_mute
label: Operator Page Channel Mute
kind: action
command: "s_operator_mute␣S␣0000␣00␣NC␣{fader_ch},{mute}\r"
params:
- name: fader_ch
type: integer
- name: mute
type: integer
description: 0=No Mute
- id: s_arraymic_mute
label: Array Mic Mute Control
kind: action
command: "s_arraymic_mute␣S␣0000␣00␣NC␣{mute},{virtual_mic}\r"
params:
- name: mute
type: integer
description: 0=No mute
- name: virtual_mic
type: integer
description: 0=Virtual Mic 1, 1=Virtual Mic 2
- id: g_arraymic_mute
label: Array Mic Mute Status Acquisition
kind: query
command: "g_arraymic_mute␣O␣0000␣00␣NC␣{virtual_mic}\r"
params:
- name: virtual_mic
type: integer
- id: arraymic_mute_notice
label: Array Mic Mute Status Notice
kind: notification
command: "MD␣arraymic_mute_notice␣0000␣00␣NC␣{mute},{virtual_mic}\r"
params:
- name: mute
type: integer
- name: virtual_mic
type: integer
- id: rec_status_notice
label: Recording Status Notification
kind: notification
command: "MD␣rec_status_notice␣0000␣00␣NC␣{recorder_status}\r"
params:
- name: recorder_status
type: integer
description: 0=Stopped,1=Recording,2=Recording paused,3=Replaying,4=Replaying paused
# === System commands ===
- id: factory_settings
label: Factory Default Setting
kind: action
command: "factory_settings␣S␣0000␣00␣NC␣0\r"
params: []
- id: g_deviceid
label: Device ID Acquisition (g_deviceid)
kind: query
command: "g_deviceid␣O␣0000␣00␣NC\r"
params: []
- id: s_permission
label: Permission Setting Change
kind: action
command: "s_permission␣S␣0000␣00␣NC␣\"{device_name}\",{password_require},{password},{reserved}\r"
params:
- name: device_name
type: string
description: Quoted device name
- name: password_require
type: integer
description: 0=Password not required, 1=Password required
- name: password
type: string
description: Alphanumeric; omitted if Password require=0
- name: reserved
type: string
- id: g_permission
label: Permission Setting Acquisition
kind: query
command: "g_permission␣O␣0000␣00␣NC\r"
params: []
- id: s_network
label: Network Setting Change
kind: action
command: "s_network␣S␣0000␣00␣NC␣{ip_mode},{ip_addr},{subnet},{gateway},{reserved},{upnp},{port},{notification},{audio_notify},{multicast_addr},{multicast_port},{ntp_en},{ntp_addr},{ntp_port},{tz},{dst},{dst_start},{dst_end},{reserved},{multicast_port2}\r"
params:
- name: ip_mode
type: integer
description: 0=Auto, 1=Static
- name: ip_addr
type: string
description: 000.000.000.000 to 255.255.255.255
- name: subnet
type: string
- name: gateway
type: string
- name: reserved
type: string
- name: upnp
type: integer
description: 0=Not detect, 1=Detect
- name: port
type: integer
description: 1-65535
- name: notification
type: integer
description: 0=Not use
- name: audio_notify
type: integer
description: 0=Not use
- name: multicast_addr
type: string
- name: multicast_port
type: integer
description: 1-65535
- name: ntp_en
type: integer
description: 0=Not use
- name: ntp_addr
type: string
- name: ntp_port
type: integer
- name: tz
type: integer
description: -1200 to +1400 (HHMM, 30-min units)
- name: dst
type: integer
description: 0=Not use
- name: dst_start
type: string
description: MMDDHHmm
- name: dst_end
type: string
description: MMDDHHmm
- name: reserved
type: string
- name: multicast_port2
type: integer
description: DECT-WLM
- id: g_network
label: Network Setting Acquisition
kind: query
command: "g_network␣O␣0000␣00␣NC\r"
params: []
- id: g_network2
label: Network Setting Acquisition 2
kind: query
command: "g_network2␣O␣0000␣00␣NC\r"
params: []
- id: g_firmware_version
label: Firmware Version Acquisition
kind: query
command: "g_firmware_version␣O␣0000␣00␣NC\r"
params: []
- id: s_header_color
label: Header Color Setting Change
kind: action
command: "s_header_color␣S␣0000␣00␣NC␣{color}\r"
params:
- name: color
type: integer
description: 0=White,1=Green,2=Yellow,3=Orange,4=Purple,5=Blue,6=Cyan
- id: g_header_color
label: Header Color Setting Acquisition
kind: query
command: "g_header_color␣O␣0000␣00␣NC\r"
params: []
- id: s_link
label: A-T LINK Mode Setting Change
kind: action
command: "s_link␣S␣0000␣00␣NC␣{mode}\r"
params:
- name: mode
type: integer
description: 0=Extension, 1=Primary
- id: g_link
label: A-T LINK Mode Setting Acquisition
kind: query
command: "g_link␣O␣0000␣00␣NC\r"
params: []
- id: g_link_extstatus
label: A-T LINK Status Acquisition
kind: query
command: "g_link_extstatus␣O␣0000␣00␣NC␣{extension}\r"
params:
- name: extension
type: integer
description: 1-7
- id: s_connected_limit
label: Connected Device Limit Setting Change
kind: action
command: "s_connected_limit␣S␣0000␣00␣NC␣{restrict},{ip1},{ip2},{ip3},{ip4},{ip5}\r"
params:
- name: restrict
type: integer
description: 0=Not permit, 1=Permit
- name: ip1
type: string
- name: ip2
type: string
- name: ip3
type: string
- name: ip4
type: string
- name: ip5
type: string
- id: g_connected_limit
label: Connected Device Limit Setting Acquisition
kind: query
command: "g_connected_limit␣O␣0000␣00␣NC\r"
params: []
- id: s_audio_system
label: Audio System Setting Change
kind: action
command: "s_audio_system␣S␣0000␣00␣NC␣{gain_unit},{delay_unit},{output_flip},{input_eqdyn},{vm_mode},{gpo1_en},{gpo1_on},{gpo1_off},{gpo2_en},{gpo2_on},{gpo2_off}\r"
params:
- name: gain_unit
type: integer
description: 0=dBu/dBV, 1=dB
- name: delay_unit
type: integer
description: 0=ms,1=M,2=Ft
- name: output_flip
type: integer
description: 0=Off
- name: input_eqdyn
type: integer
description: 0=EQ, 1=Dyn
- name: vm_mode
type: integer
description: 0=Off,1=ES954,4=ES964
- name: gpo1_en
type: integer
description: 0=Disable, 1=Enable
- name: gpo1_on
type: integer
description: 0=Close,1=Open,2=Pulse(short),3=Pulse invert(short),4=Pulse(long),5=Pulse invert(long)
- name: gpo1_off
type: integer
- name: gpo2_en
type: integer
- name: gpo2_on
type: integer
- name: gpo2_off
type: integer
- id: g_audio_system
label: Audio System Setting Acquisition
kind: query
command: "g_audio_system␣O␣0000␣00␣NC\r"
params: []
- id: s_front_panel
label: Front Panel Setting Change
kind: action
command: "s_front_panel␣S␣0000␣00␣NC␣{recall_preset},{led_dimmer}\r"
params:
- name: recall_preset
type: integer
description: 0=Disable
- name: led_dimmer
type: integer
description: 0=Disable
- id: g_front_panel
label: Front Panel Setting Acquisition
kind: query
command: "g_front_panel␣O␣0000␣00␣NC\r"
params: []
- id: s_front_panel_limit
label: Front Panel Function Setting Change
kind: action
command: "s_front_panel_limit␣S␣0000␣00␣NC␣{function},{target},{channel},{enable}\r"
params:
- name: function
type: integer
description: 0=Level
- name: target
type: integer
description: 0=Input Channel, 1=Output Channel
- name: channel
type: integer
description: 0-5 (Input) or 0-1 (Output)
- name: enable
type: integer
description: 0=Disable
- id: g_front_panel_limit
label: Front Panel Function Setting Acquisition
kind: query
command: "g_front_panel_limit␣O␣0000␣00␣NC␣{function},{target},{channel}\r"
params:
- name: function
type: integer
- name: target
type: integer
- name: channel
type: integer
- id: s_log
label: Log Setting Change
kind: action
command: "s_log␣S␣0000␣00␣NC␣{enabled},{destination}\r"
params:
- name: enabled
type: integer
description: 0=Disable
- name: destination
type: integer
description: 0=Internal, 2=Syslog
- id: g_log
label: Log Setting Acquisition
kind: query
command: "g_log␣O␣0000␣00␣NC\r"
params: []
- id: call_preset
label: Preset Call (call_preset)
kind: action
command: "call_preset␣S␣0000␣00␣NC␣{preset}\r"
params:
- name: preset
type: integer
- id: save_preset
label: Preset Save
kind: action
command: "save_preset␣S␣0000␣00␣NC␣{preset}\r"
params:
- name: preset
type: integer
- id: s_name_bank
label: Preset Bank Name Change
kind: action
command: "s_name_bank␣S␣0000␣00␣NC␣{bank},\"{name}\"\r"
params:
- name: bank
type: integer
- name: name
type: string
description: Quoted bank name
- id: g_name_bank
label: Preset Bank Name Acquisition
kind: query
command: "g_name_bank␣O␣0000␣00␣NC\r"
params: []
- id: s_bootup_preset
label: Boot Up Preset Setting Change
kind: action
command: "s_bootup_preset␣S␣0000␣00␣NC␣{bank}\r"
params:
- name: bank
type: integer
description: 0=Not select, 1-6=Bank 1-6
- id: g_bootup_preset
label: Boot Up Preset Setting Acquisition
kind: query
command: "g_bootup_preset␣O␣0000␣00␣NC\r"
params: []
- id: s_preset_general
label: Preset Common Setting Change
kind: action
command: "s_preset_general␣S␣0000␣00␣NC␣{recall_link}\r"
params:
- name: recall_link
type: integer
description: 0=Off
- id: g_preset_general
label: Preset Common Setting Acquisition
kind: query
command: "g_preset_general␣O␣0000␣00␣NC\r"
params: []
- id: g_preset_number
label: Preset Number Acquisition
kind: query
command: "g_preset_number␣O␣0000␣00␣NC\r"
params: []
- id: recall_preset_notice
label: Preset Call Notification
kind: notification
command: "MD␣recall_preset_notice␣0000␣00␣NC␣{bank}\r"
params:
- name: bank
type: integer
- id: call_partial_preset
label: Partial Preset Call (call_partial_preset)
kind: action
command: "call_partial_preset␣S␣0000␣00␣NC␣{partial}\r"
params:
- name: partial
type: integer
description: 1-40
- id: g_partial_preset_number
label: Partial Preset Number Acquisition
kind: query
command: "g_partial_preset_number␣O␣0000␣00␣NC\r"
params: []
- id: recall_partial_preset_notice
label: Partial Preset Call Notification
kind: notification
command: "MD␣recall_partial_preset_notice␣0000␣00␣NC␣{partial}\r"
params:
- name: partial
type: integer
- id: file_transfer
label: File Transfer Request
kind: action
command: "file_transfer␣S␣0000␣00␣{CS|CM|CE}␣{kind},{offset_hex},{size_dec},{binary_data}\r"
params:
- name: kind
type: string
description: p1..p6 preset, i1..i20 input EQ, iall, o1..o20 output EQ, oall, l1..l2 language, log
- name: offset_hex
type: string
description: 00000000 to FFFFFFFF, no 0x prefix
- name: size_dec
type: integer
description: 1-1024
- name: binary_data
type: string
description: Raw bytes
- id: file_transfer_cancel
label: File Transfer Cancel
kind: action
command: "file_transfer_cancel␣S␣0000␣00␣NC␣{kind}\r"
params:
- name: kind
type: string
- id: export
label: Export Request
kind: query
command: "export␣O␣0000␣00␣NC␣{kind}\r"
params:
- name: kind
type: string
- id: import
label: Import Request
kind: action
command: "import␣S␣0000␣00␣NC␣{kind}\r"
params:
- name: kind
type: string
- id: s_level_meter_interval
label: Level Meter Notification Interval Setting Change
kind: action
command: "s_level_meter_interval␣S␣0000␣00␣NC␣{interval}\r"
params:
- name: interval
type: integer
description: 100 or more msec
- id: g_level_meter_interval
label: Level Meter Notification Interval Setting Acquisition
kind: query
command: "g_level_meter_interval␣O␣0000␣00␣NC\r"
params: []
- id: g_level_meter
label: Level Meter Acquisition
kind: query
command: "g_level_meter␣O␣0000␣00␣NC␣{monitor_point}\r"
params:
- name: monitor_point
type: integer
description: 0-23
- id: level_meter_notice
label: Level Meter Notification
kind: notification
command: "MD␣level_meter_notice␣0000␣00␣NC␣{l0},{l1},{l2},{l3},{l4},{l5},{l6},{l7},{l8},{l9},{l10},{l11},{l12},{l13},{l14},{l15},{l16},{l17},{l18},{l19},{l20},{l21},{l22},{l23}\r"
params:
- name: l0
type: integer
description: Input 1 post-fader (0-61)
- name: l1
type: integer
- name: l2
type: integer
- name: l3
type: integer
- name: l4
type: integer
- name: l5
type: integer
- name: l6
type: integer
description: Input ST L
- name: l7
type: integer
description: Input ST R
- name: l8
type: integer
description: Output 1
- name: l9
type: integer
description: Output 2
- name: l10
type: integer
description: Output ST L
- name: l11
type: integer
description: Output ST R
- name: l12
type: integer
description: AEC ERL Input 1
- name: l13
type: integer
- name: l14
type: integer
- name: l15
type: integer
- name: l16
type: integer
- name: l17
type: integer
- name: l18
type: integer
description: Gainshare Input 1
- name: l19
type: integer
- name: l20
type: integer
- name: l21
type: integer
- name: l22
type: integer
- name: l23
type: integer
- id: identify
label: Identify Request
kind: action
command: "identify␣S␣0000␣00␣NC\r"
params: []
- id: s_date
label: Date Setting
kind: action
command: "s_date␣S␣0000␣00␣NC␣{timestamp}\r"
params:
- name: timestamp
type: string
description: YYYYMMDDHHMMSS
- id: reboot
label: Reboot Request
kind: action
command: "reboot␣S␣0000␣00␣NC\r"
params: []
- id: ip_control_start_notice
label: IP Control Start Notification
kind: notification
command: "MD␣ip_control_start_notice␣0000␣00␣NC␣1\r"
params: []
- id: zidip
label: IP Command Compatibility Setting Change
kind: action
command: "ZIDIP␣S␣0000␣00␣NC␣{type}\r"
params:
- name: type
type: integer
description: 0=Use Device ID/Unit ID, 1=Use Model ID/Device ID (old system)
- id: s_gpo_setting
label: GPO Setting Change
kind: action
command: "s_gpo_setting␣S␣0000␣00␣NC␣{gpo1_en},{gpo1_func},\"{gpo1_text}\",{gpo1_on},{gpo1_off},{gpo2_en},{gpo2_func},\"{gpo2_text}\",{gpo2_on},{gpo2_off}\r"
params:
- name: gpo1_en
type: integer
description: 0=Disable, 1=Enable
- name: gpo1_func
type: integer
description: 0=ArrayMic,1=GPO,2-9=Fader 1-8,10-17=Fader Mute 1-8
- name: gpo1_text
type: string
description: Display name
- name: gpo1_on
type: integer
description: 0=Close,1=Open,2=Pulse(short),3=Pulse invert(short),4=Pulse(long),5=Pulse invert(long)
- name: gpo1_off
type: integer
- name: gpo2_en
type: integer
- name: gpo2_func
type: integer
- name: gpo2_text
type: string
- name: gpo2_on
type: integer
- name: gpo2_off
type: integer
- id: g_gpo_setting
label: GPO Setting Acquisition
kind: query
command: "g_gpo_setting␣O␣0000␣00␣NC\r"
params: []
- id: s_gpo_action
label: GPO Control
kind: action
command: "s_gpo_action␣S␣0000␣00␣NC␣{kind},{action}\r"
params:
- name: kind
type: integer
description: 0=GPO Switch 1, 1=GPO Switch 2
- name: action
type: integer
description: 0=Off
- id: g_gpo_action
label: GPO Status Acquisition
kind: query
command: "g_gpo_action␣O␣0000␣00␣NC\r"
params: []
- id: gpo_action_notice
label: GPO Control Notification
kind: notification
command: "MD␣gpo_action_notice␣0000␣00␣NC␣{kind},{action}\r"
params:
- name: kind
type: integer
- name: action
type: integer
# === Connected device (peripheral) commands ===
- id: g_peripheral_status
label: Connected Device Status Acquisition
kind: query
command: "g_peripheral_status␣O␣0000␣00␣NC\r"
params: []
- id: g_peripheral_info
label: Connected Device Information Acquisition
kind: query
command: "g_peripheral_info␣O␣0000␣00␣NC␣{unit_id},{serial}\r"
params:
- name: unit_id
type: string
description: 00-FF; can be omitted to query all
- name: serial
type: integer
description: 0-99999999; can be omitted
- id: s_peripheral_deviceid
label: Connected Device Device ID Setting
kind: action
command: "s_peripheral_deviceid␣S␣0000␣00␣NC␣{unit_id},{serial},{device_id},{check}\r"
params:
- name: unit_id
type: string
description: 00-FF
- name: serial
type: integer
description: 0-99999999
- name: device_id
type: integer
description: 0-999
- name: check
type: integer
description: 0=No duplicate check, 1=Duplicate check
- id: peripheral_status_notice
label: Connected Device Status Notification
kind: notification
command: "MD␣peripheral_status_notice␣0000␣00␣NC␣{atcp_port_a},{atcp_port_b},{atnd_port_a},{atnd_port_b},{esw_port_a},{esw_port_b}\r"
params:
- name: atcp_port_a
type: integer
- name: atcp_port_b
type: integer
- name: atnd_port_a
type: integer
- name: atnd_port_b
type: integer
- name: esw_port_a
type: integer
- name: esw_port_b
type: integer
- id: peripheral_info_notice
label: Connected Device Information Notification
kind: notification
command: "MD␣peripheral_info_notice␣0000␣00␣NC␣{unit_id},{serial},\"{name}\",{version},{connect_status},{topology},{mac},{device_id}\r"
params:
- name: unit_id
type: string
- name: serial
type: integer
- name: name
type: string
- name: version
type: string
- name: connect_status
type: integer
description: 0=Not connected, 1=Connected
- name: topology
type: string
description: A001 to D999
- name: mac
type: string
- name: device_id
type: integer
Feedbacks
# Responses observed during command handling.
- id: ack
type: enum
values: [ack]
description: "<COMMAND>␣ACK\r - successful Set command response"
- id: nak
type: enum
values: [nak]
description: "<COMMAND>␣NAK␣<error_code>\r - Set command error"
- id: nak_error_codes
type: enum
description: Error codes returned in NAK
values:
- 01 # Syntax error
- 02 # Invalid command
- 03 # Splitting transmission error
- 04 # Parameter error
- 05 # Transmission timeout (not used)
- 06 # Device ID duplicate
- 90 # Busy
- 92 # Busy (Save mode)
- 93 # Busy (Extension)
- 99 # Other errors
- id: ip_control_start
type: enum
values: [started]
description: Sent once when IP control is enabled after power up
- id: open_channel_status
type: enum
values: [close, open]
description: Per-input channel open/close state from open_channel_notice
- id: cancut_status
type: enum
values: [off, on]
description: Per-input Priority/CanCut state from cancut_notice
- id: recorder_status
type: enum
values: [stopped, recording, recording_paused, replaying, replaying_paused]
- id: gpo_switch_state
type: enum
values: [off, on]
description: GPO Switch 1/2 state from g_gpo_action answer
- id: firmware_version
type: string
description: XX.XX.XX format from g_firmware_version answer
- id: preset_number
type: integer
description: Bank number returned by g_preset_number (e.g. 6)
- id: partial_preset_number
type: integer
description: 1-40 returned by g_partial_preset_number
Variables
# Observable state values returned by Get Commands.
- id: input_channel_level
type: integer
description: Per-input fader level 0-511; -inf,-120dB to +10dB
- id: input_channel_mute
type: enum
values: [disable, enable]
- id: output_channel_level
type: integer
description: 0-511
- id: output_channel_mute
type: enum
values: [disable, enable]
- id: bus_assign
type: object
description: per (input, bus) tuple: {assign: off|smart_mix_pre|smart_mix_post, level: 0-411}
- id: operator_fader_level
type: integer
description: 0-100 per fader
- id: operator_fader_mute
type: enum
values: [no_mute, mute]
- id: smartmix_mode
type: enum
values: [off, gate, gain_share]
- id: num_open_mic
type: integer
description: 1-10
- id: device_id
type: string
description: 0000-03E7 hex or 0-999 decimal
- id: device_id_format
type: enum
values: [hex, decimal]
- id: input_gain_mic
type: integer
description: 0-40 (+20dB to +60dB)
- id: input_gain_line
type: integer
description: 0-40 (-20dBu to -60dBu)
- id: input_gain_virtual_mic
type: integer
description: 0-40
- id: input_source
type: enum
values: [mic, line_+4dbu, line_0dbv, line_-10dbv, line_-20dbv, usb, virtual_mic, at_link, at_link_mix_a, at_link_mix_b]
- id: phantom_power
type: enum
values: [off]
- id: phase
type: enum
values: [normal, invert]
- id: lowcut
type: enum
values: [off]
- id: aec_mode
type: enum
values: [off, aec, noise_canceling]
- id: aec_reference
type: integer
description: 0-5 (CH 1-6), 12-13 (Out 1-2), 22 (Out ST), 23 (External)
- id: virtual_mic_mode
type: enum
values: [off, es954, es964]
- id: fader_group
type: enum
values: [none, group_a, group_b, group_c, group_d, group_e, group_f, group_g, group_h]
- id: gain_unit
type: enum
values: [dbu_dbv, db]
- id: delay_unit
type: enum
values: [ms, m, ft]
- id: output_flip
type: enum
values: [off]
- id: input_eq_dyn_view
type: enum
values: [eq, dyn]
- id: header_color
type: enum
values: [white, green, yellow, orange, purple, blue, cyan]
- id: at_link_mode
type: enum
values: [extension, primary]
- id: network_ip_mode
type: enum
values: [auto, static]
- id: network_port
type: integer
description: 1-65535; default 17300
- id: network_multicast_address
type: string
description: Default 239.000.000.100
- id: network_multicast_port
type: integer
description: Default 17000
- id: network_mac
type: string
- id: permission_require_password
type: enum
values: [no, yes]
- id: permission_password
type: string
description: Alphanumeric; omitted if password not required
- id: log_enabled
type: enum
values: [disable, enable]
- id: log_destination
type: enum
values: [internal, syslog]
- id: front_panel_recall_preset
type: enum
values: [disable, enable]
- id: front_panel_led_dimmer
type: enum
values: [disable, enable]
- id: level_meter
type: object
description: 24 levels; post-fader (0-61), AEC ERL (0-60), gainshare (0-15)
- id: datetime
type: string
description: YYYYMMDDHHMMSS via s_date
- id: eq_band
type: object
description: per band: {enable, type, freq 0-480, gain, q}
- id: compressor
type: object
description: comp/de-esser params (threshold 0-60, ratio, attack, release, output_gain)
- id: delay
type: object
description: enable + delay_time 0-1000 msec
- id: limiter
type: object
description: enable + threshold 0-60
- id: gpo_config
type: object
description: per GPO: {enable, function (0=ArrayMic,1=GPO,2-9=Fader,10-17=Fader Mute), display name, on_action, off_action}
- id: usb_output
type: object
description: out1_bus, out2_bus, send_level 0-411
- id: oscillator
type: object
description: enable, source, frequency, level, per-channel assign
- id: ducker
type: enum
values: [off, on]
- id: front_panel_function
type: object
description: per fader: {function, target (0=Input,1=Output), channel, enable}
- id: bootup_preset
type: integer
description: 0=Not select, 1-6=Bank 1-6
- id: preset_recall_link
type: enum
values: [off, on]
- id: call_partial_preset_number
type: integer
description: 1-40
- id: arraymic_mute
type: object
description: per virtual mic (1-2): {mute}
- id: operator_page_common
type: object
description: {button_link: 0-3 (ArrayMic/GPO combinations)}
- id: operator_page
type: object
description: {recall_preset, num_preset 1-6, fader_resume, logout_btn, switch_btn}
- id: operator_channel
type: object
description: per fader 1-8: {name, icon (0-5), level 0-100, max/min enable+value}
- id: operator_assign
type: object
description: per fader: {ch_type 0-2, show_mute, show_fader, l1-l8}
- id: operator_mute
type: object
description: per fader: {mute}
- id: connected_device
type: object
description: per peripheral: {unit_id, serial 0-99999999, name, version, connect_status 0-1, topology A001-D999, mac, device_id 0-999}
- id: access_restrict
type: object
description: {restrict 0-1, ip1, ip2, ip3, ip4, ip5}
- id: identify_response
type: enum
values: [ack]
description: ACK is the only response to identify
- id: factory_settings_response
type: enum
values: [ack, nak]
description: ACK on success; NAK on error
- id: reboot_response
type: enum
values: [ack]
Events
# Unsolicited notifications sent over UDP multicast 239.000.000.100:17000
- id: ip_control_start_notice_event
description: Sent when IP control becomes enabled after power up. Envelope: MD␣ip_control_start_notice␣{device_id}␣{unit_id}␣NC␣1\r
- id: open_channel_notice_event
description: Sent when Smart Mix Active state changes. Envelope: MD␣open_channel_notice␣...␣{ch},{status 0|1}\r
- id: cancut_notice_event
description: Sent when Smart Mix Gate Priority/CanCut changes. Envelope: MD␣cancut_notice␣...␣{i1..i6}\r
- id: input_gain_level_notice_event
description: Sent when input gain/level changes. Envelope: MD␣input_gain_level_notice␣...␣{ch},{mic},{line},{level},{mute}\r
- id: output_level_notice_event
description: Envelope: MD␣output_level_notice␣...␣{ch},{level}\r
- id: output_mute_notice_event
description: Envelope: MD␣output_mute_notice␣...␣{ch},{mute}\r
- id: fbs_notice_event
description: Sent when FBS detects howling. Envelope: MD␣fbs_notice␣...␣{channel},{proc},{enable},8×{static,freq,gain,q}\r
- id: operator_channel_notice_event
description: Sent when operator page fader level changes. Envelope: MD␣operator_channel_notice␣...␣{ch},{level},{mute},{page}\r
- id: arraymic_mute_notice_event
description: Sent when Array Mic mute state changes. Envelope: MD␣arraymic_mute_notice␣...␣{mute},{virtual_mic}\r
- id: rec_status_notice_event
description: Sent when recording state changes. Envelope: MD␣rec_status_notice␣...␣{recorder_status 0-4}\r
- id: recall_preset_notice_event
description: Sent when device calls a preset. Envelope: MD␣recall_preset_notice␣...␣{bank}\r
- id: recall_partial_preset_notice_event
description: Sent when device calls a partial preset. Envelope: MD␣recall_partial_preset_notice␣...␣{partial 1-40}\r
- id: gpo_action_notice_event
description: Sent when GPO switch changes. Envelope: MD␣gpo_action_notice␣...␣{kind 0|1},{action}\r
- id: peripheral_status_notice_event
description: Sent on change in connected peripheral counts. Envelope: MD␣peripheral_status_notice␣...␣{atcp,atnd,esw port A/B counts}\r
- id: peripheral_info_notice_event
description: Sent on change in peripheral info. Envelope: MD␣peripheral_info_notice␣...␣{unit_id,serial,name,version,status,topology,mac,device_id}\r
- id: level_meter_notice_event
description: Sent periodically (interval set via s_level_meter_interval, default 100 msec). Envelope: MD␣level_meter_notice␣...␣24 levels
Macros
# Sequences the source describes for typical workflows.
- id: connection_establish
description: Host opens TCP socket to port 17300. Up to 5 simultaneous connections allowed; extras fail.
- id: command_response
description: Set command flow: host → device ACK/NAK. Get command flow: host → Answer. Asynchronous - host may send next command without waiting.
- id: notification_subscription
description: Set s_network Notification=1, Audio Level Notification=1 to receive UDP multicast notifications on 239.000.000.100:17000.
- id: gpo_array_mic_link
description: Set s_operator_general button_link and s_gpo_setting function=0 (ArrayMic) to bind Array Mic mute to a GPO switch.
- id: factory_reset
description: Send factory_settings␣S␣0000␣00␣NC␣0\r to reset all settings.
- id: file_import_export
description: import initiates, then file_transfer pushes data with CS/CM/CE continue markers; export reads back via file_transfer-style response.
Safety
confirmation_required_for:
- factory_settings # erases all settings
interlocks: []
# UNRESOLVED: no safety warnings, fault procedures, or interlocks documented in source
Notes
The source document is the "ATDM-0604a IP Control Protocol Specifications" version 1.2 (2023/09/14), published by Audio-Technica Corporation. The ATDM-0604a is the SmartMixer that hosts the ES954 and ES964 microphone arrays as "Virtual Mic" inputs — the mic arrays themselves do not speak this IP protocol; they are selected via the s_audio_system Virtual Mic Mode parameter (1=ES954, 4=ES964) and mute-controlled via s_arraymic_mute.
Command envelope: every TCP message is a single line of ASCII text terminated by CR (0x0D). Delimiter is a single-byte space (0x20). The frame structure is:
<COMMAND>␣<S|O|H>␣<4-char device id>␣<2-char unit/category id>␣<2-char continue: NC|CS|CM|CE>␣<params>\r
TCP port 17300 for commands. UDP multicast 239.000.000.100 port 17000 for status notifications. Full-duplex 10/100 Mbps on RJ45 (CAT5e+). Up to 5 simultaneous TCP connections; commands are processed asynchronously, so subsequent commands may be sent before ACK/NAK/Answer returns (NAK 90=BUSY is the busy response).
Old vs new command format: ZIDIP (4.6.45) toggles between the new system (Device ID 0000-0999 + Category ID 00-FF) and the old system (Device ID 0000 fixed, Unit ID 00-FF fixed to FF for IDs ≥ 256). Most commands in this spec use the new format.
Authentication: s_permission allows enabling a login password (default is "Password not required"). NAK error code 02 returns for unknown commands or commands that cannot be used for the current device.
Fader / level mappings: 0-511 covers -inf to +10dB; 0-411 covers -inf to 0dB; 0-100 is the operator fader scale; 0-40 maps to mic gain +20dB to +60dB. See Appendix tables 6.1-6.5 in the source for exact value-to-dB conversions.
Models controlled via A-T LINK: ATCP-W01 (80), ATCP-W02 (81), ESW-R4180LK (C0), ATND1061LK (C1).
Provenance
source_domains:
- docs.audio-technica.com
source_urls:
- https://docs.audio-technica.com/all/ATDM-0604a_IP_Control_Protocol_Specifications_EN_Ver1.2_web_231118.pdf
- https://docs.audio-technica.com/us/ATDM-0604_IP_Control_Protcol_Specification_EN_Ver1.1.3_web_200821.pdf
retrieved_at: 2026-05-07T07:24:57.105Z
last_checked_at: 2026-06-02T21:40:14.163Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:40:14.163Z
matched_actions: 141
action_count: 141
confidence: medium
summary: "All 141 spec actions have literal wire-token matches in the source (Table 3-1 enumerates all 140 command rows; two are double-listed so unique count is ~136; spec covers all variants including GPO/peripheral); transport port 17300 and multicast 239.000.000.100:17000 confirmed verbatim. (3 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "The spec covers the ATDM-0604a SmartMixer host; the ES954/ES964 are microphone array models connected to it (selected via `Virtual Mic Mode` values 1=ES954, 4=ES964 in `s_audio_system`). No standalone protocol for ES954/ES964 was found in the source."
- "no safety warnings, fault procedures, or interlocks documented in source"
- "firmware version compatibility matrix at the end of the source is cut off (table 6.x) — exact version constraints not captured. The level_meter_notice / fbs_notice parameter count and exact field list depend on firmware; the spec enumerates the documented parameter set. GPO control via ES954/ES964 button press is described in the source as a derived behaviour of `s_operator_general` button_link + `s_gpo_setting` function=0, but the exact LED behaviour is not specified."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0