Summary
Yamaha MTX3, MTX5-D, MRX7-D, XMV Series, EXi8, and EXo8 commercial installation DSP/matrix processors and I/O units. Controlled via TCP/IP (Ethernet NETWORK connector, port 49280) or RS-232C (REMOTE connector on MTX/MRX). Text-based ASCII command protocol with LF-terminated lines, supporting parameter get/set (raw, normalized, relative), preset/snapshot recall, metering, event processing, audio player transport, scheduling, DST management, and alert event log retrieval. Protocol version V4.0.0 rev14. Up to 9 simultaneous controllers (8 TCP + 1 RS-232 on MTX/MRX; 8 TCP on XMV/EX).
Transport
protocols:
- tcp
- serial
addressing:
port: 49280
serial:
baud_rate: 38400 # configurable: 38400 or 115200 on MTX/MRX
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred: devmode normal/emergency switches run mode
- queryable # inferred: extensive parameter query commands (get, getn, devstatus, devinfo)
- levelable # inferred: fader parameter set/setn/setr with dB-level control
- routable # inferred: input/output patch and router parameters in section 7
Actions
- id: devstatus_runmode
label: Query Device Run Mode
kind: action
params: []
command: devstatus runmode
response: 'OK devstatus runmode "{mode}"'
description: Queries current run mode (normal, emergency, update)
- id: devstatus_error
label: Query Device Error Status
kind: action
params: []
command: devstatus error
response: 'OK devstatus error "{status}"'
description: Queries current alert/error status
- id: devstatus_fs
label: Query Sampling Frequency
kind: action
params: []
command: devstatus fs
response: 'OK devstatus fs "{fs}"'
description: Queries current sampling frequency (unknown, 44.1kHz, 48kHz)
- id: devstatus_lockstatus
label: Query Word Clock Lock Status
kind: action
params: []
command: devstatus lockstatus
response: 'OK devstatus lockstatus "{status}"'
description: Queries word clock lock status (lock, unlock)
- id: devmode_normal
label: Set Normal Run Mode
kind: action
params: []
command: devmode normal
response: OK devmode normal
description: Sets device to normal run mode
- id: devmode_emergency
label: Set Emergency Run Mode
kind: action
params: []
command: devmode emergency
response: OK devmode emergency
description: Sets device to emergency run mode (invalid on XMV, EXi8, EXo8)
- id: scpmode_encoding
label: Set Character Encoding
kind: action
params:
- name: encoding
type: enum
values: [ascii, utf8]
description: Character encoding mode
command: 'scpmode encoding {encoding}'
description: Sets response/notification encoding (default: ascii)
- id: scpmode_valuetype
label: Set Value Notification Mode
kind: action
params:
- name: mode
type: enum
values: [raw, normalized]
description: Value type for notifications
command: 'scpmode valuetype {mode}'
description: Sets parameter change notification value type (default: raw)
- id: scpmode_resolution
label: Set Normalization Resolution
kind: action
params:
- name: resolution
type: integer
description: Resolution for normalized values (minimum 100, default 1000)
command: 'scpmode resolution {resolution}'
description: Sets normalized value resolution
- id: scpmode_keepalive
label: Set Keepalive Interval
kind: action
params:
- name: interval_ms
type: integer
description: Timeout in milliseconds (minimum 1000)
command: 'scpmode keepalive {interval_ms}'
description: Enables keepalive; device disconnects if no message received within timeout
- id: get_parameter
label: Query Parameter (Raw)
kind: action
params:
- name: address
type: string
description: "MTX:mem_MemNo/UniqueId/ElmNo/Xpos/Ypos/PrmNo/IndexNo or MTX:Index_IndexNo"
command: 'get {address} 0 0'
response: 'OK get {address} 0 0 {value}'
description: Queries parameter value in raw units
- id: getn_parameter
label: Query Parameter (Normalized)
kind: action
params:
- name: address
type: string
description: "MTX:mem_MemNo/UniqueId/ElmNo/Xpos/Ypos/PrmNo/IndexNo or MTX:Index_IndexNo"
command: 'getn {address} 0 0'
response: 'OK getn {address} 0 0 {value}'
description: Queries parameter value in normalized units (0-1000)
- id: scheduler_status_query
label: Query Scheduler Status
kind: query
params: []
command: get MTX:EvntScd_On 0 0
response: 'OK get MTX:EvntScd_On 0 0 {state}'
description: "Queries scheduler on/off state (1=on, 0=off). Invalid on XMV, EXi8, EXo8."
- id: set_parameter
label: Set Parameter (Raw)
kind: action
params:
- name: address
type: string
description: Parameter address path
- name: value
type: integer
description: Raw value to set
command: 'set {address} 0 0 {value}'
response: 'OK set {address} 0 0 {value} "{string}"'
description: Sets parameter to raw value. OKm response if value was clamped.
- id: setn_parameter
label: Set Parameter (Normalized)
kind: action
params:
- name: address
type: string
description: Parameter address path
- name: value
type: integer
description: Normalized value (0-1000 default resolution)
command: 'setn {address} 0 0 {value}'
response: 'OK setn {address} 0 0 {value} "{string}"'
description: Sets parameter to normalized value. OKm response if clamped.
- id: setr_parameter
label: Set Parameter (Relative)
kind: action
params:
- name: address
type: string
description: Parameter address path
- name: delta
type: integer
description: Relative increment/decrement value
command: 'setr {address} 0 0 "{delta}"'
response: 'OK setr {address} 0 0 {value}'
description: Relative inc/dec for fader-type parameters only. OKm if clamped.
- id: scheduler_on_off
label: Set Scheduler On/Off
kind: action
params:
- name: enabled
type: enum
values: ["1", "0"]
description: "1 = on, 0 = off"
command: 'set MTX:EvntScd_On 0 0 {enabled}'
description: Enables or disables the event scheduler (invalid on XMV, EXi8, EXo8)
- id: mtrstart
label: Start Meter Transmission
kind: action
params:
- name: address
type: string
description: "MTX:mtr_MemNo/UniqueId/meter or MTX:Index_IndexNo"
- name: meter_type
type: enum
values: [level, gr, hold]
description: Meter type (MRX7-D supports all; others use level)
- name: interval_ms
type: integer
description: Minimum transmission interval in milliseconds
command: 'mtrstart {address} {meter_type} {interval_ms}'
description: Requests periodic meter data transmission
- id: mtrstop
label: Stop Meter Transmission
kind: action
params:
- name: address
type: string
description: Meter address
- name: meter_type
type: enum
values: [level, gr, hold]
description: Meter type to stop
command: 'mtrstop {address} {meter_type}'
description: Stops periodic meter data transmission
- id: sscurrent
label: Query Current Preset Number
kind: action
params: []
command: sscurrent
response: 'OK sscurrent {index} {status}'
description: Queries current preset index; status is unmodified or modified
- id: ssrecall
label: Recall Preset
kind: action
params:
- name: index
type: integer
description: Preset index number
command: 'ssrecall {index}'
response: 'OK ssrecall {index}'
description: Recalls preset at specified index (invalid on XMV, EXi8, EXo8)
- id: ssrecall_ex
label: Recall Snapshot
kind: action
params:
- name: index
type: integer
description: Snapshot index from Remote Control Setup List (MRX7-D only)
command: 'ssrecall_ex list {index}'
response: 'OK ssrecall_ex list {index}'
description: Recalls Snapshot or SnapshotGroup assigned in Remote Control Setup List (MRX7-D only)
- id: ssnum
label: Query Preset Count
kind: action
params: []
command: ssnum
response: 'OK ssnum {count}'
description: Queries number of preset lists (invalid on XMV, EXi8, EXo8)
- id: ssinfo
label: Query Preset Info
kind: action
params:
- name: index
type: integer
description: Preset index number
command: 'ssinfo {index}'
response: 'OK ssinfo {index} "{num}" {attrib} "{title}" "{comment}"'
description: Returns preset display number, attribute (preinst/reserve/user/empty), title, comment. Invalid on XMV/EXi8/EXo8.
- id: devinfo_protocolver
label: Query Protocol Version
kind: action
params: []
command: devinfo protocolver
response: 'OK devinfo protocolver "{version}"'
- id: devinfo_paramsetver
label: Query Parameter Set Version
kind: action
params: []
command: devinfo paramsetver
response: 'OK devinfo paramsetver "{version}"'
- id: devinfo_version
label: Query Firmware Version
kind: action
params: []
command: devinfo version
response: 'OK devinfo version "{version}"'
- id: devinfo_productname
label: Query Product Name
kind: action
params: []
command: devinfo productname
response: 'OK devinfo productname "{name}"'
- id: devinfo_serialno
label: Query Serial Number
kind: action
params: []
command: devinfo serialno
response: 'OK devinfo serialno "{serial}"'
- id: devinfo_deviceid
label: Query Device ID
kind: action
params: []
command: devinfo deviceid
response: 'OK devinfo deviceid "{id}"'
- id: devinfo_devicename
label: Query Device Name
kind: action
params: []
command: devinfo devicename
response: 'OK devinfo devicename "{name}"'
- id: event_set_time_old
label: Set Device Time (Old Format)
kind: action
params:
- name: datetime
type: string
description: "yyyy/mm/dd hh:mm:ss"
command: 'event MTX:AbsoluteTime "{datetime}"'
response: 'OK event MTX:AbsoluteTime "caught"'
description: Sets device clock using legacy MTX:AbsoluteTime path. Invalid on EXi8/EXo8.
- id: event_set_time
label: Set Device Time
kind: action
params:
- name: datetime
type: string
description: "yyyy/mm/dd hh:mm:ss"
command: 'event MTX:SetAbsoluteTime "{datetime}"'
response: 'OK event MTX:SetAbsoluteTime "caught"'
description: Sets device clock (new format). Invalid on EXi8/EXo8.
- id: event_get_time
label: Query Device Time
kind: action
params: []
command: 'event MTX:GetAbsoluteTime ""'
response: 'OK event MTX:GetAbsoluteTime "{datetime}"'
description: Invalid on EXi8/EXo8.
- id: event_dst_enable
label: Set DST Enable/Disable
kind: action
params:
- name: state
type: enum
values: [enable, disable]
description: DST enabled state
command: 'event MTX:DSTSetEnable "{state}"'
response: 'OK event MTX:DSTSetEnable "{state}"'
description: Invalid on XMV, EXi8, EXo8.
- id: event_dst_enable_query
label: Query DST Enable/Disable Setting
kind: query
params: []
command: 'event MTX:DSTGetEnable ""'
response: 'OK event MTX:DSTGetEnable "{enable|disable}"'
description: Queries configured DST enable state. Invalid on XMV, EXi8, EXo8.
- id: event_dst_status_query
label: Query DST Working Status
kind: query
params: []
command: 'event MTX:DSTGetStatus ""'
response: 'OK event MTX:DSTGetStatus "{on|off}"'
description: Queries whether DST is currently in effect. Invalid on XMV, EXi8, EXo8.
- id: event_dst_offset_set
label: Set DST Offset Time
kind: action
params:
- name: hh
type: integer
description: "Hour offset (0 to 2)"
- name: mm
type: integer
description: "Minute offset (0 to 59)"
command: 'event MTX:DSTSetOffset "offset={hh}:{mm}"'
response: 'OK event MTX:DSTSetOffset "offset={hh}:{mm}"'
description: Sets DST offset (up to 2 hours). Invalid on XMV, EXi8, EXo8.
- id: event_dst_offset_query
label: Query DST Offset Time
kind: query
params: []
command: 'event MTX:DSTGetOffset ""'
response: 'OK event MTX:DSTGetOffset "offset={hh}:{mm}"'
description: Invalid on XMV, EXi8, EXo8.
- id: event_dst_start_time_set
label: Set DST Start Time
kind: action
params:
- name: hh
type: integer
description: "Hour (0 to 23)"
- name: mm
type: integer
description: "Minute (0 to 59)"
command: 'event MTX:DSTSetStartTime "time={hh}:{mm}"'
response: 'OK event MTX:DSTSetStartTime "time={hh}:{mm}"'
description: Invalid on XMV, EXi8, EXo8.
- id: event_dst_start_time_query
label: Query DST Start Time
kind: query
params: []
command: 'event MTX:DSTGetStartTime ""'
response: 'OK event MTX:DSTGetStartTime "time={hh}:{mm}"'
description: Invalid on XMV, EXi8, EXo8.
- id: event_dst_end_time_set
label: Set DST End Time
kind: action
params:
- name: hh
type: integer
description: "Hour (0 to 23)"
- name: mm
type: integer
description: "Minute (0 to 59)"
command: 'event MTX:DSTSetEndTime "time={hh}:{mm}"'
response: 'OK event MTX:DSTSetEndTime "time={hh}:{mm}"'
description: Invalid on XMV, EXi8, EXo8.
- id: event_dst_end_time_query
label: Query DST End Time
kind: query
params: []
command: 'event MTX:DSTGetEndTime ""'
response: 'OK event MTX:DSTGetEndTime "time={hh}:{mm}"'
description: Invalid on XMV, EXi8, EXo8.
- id: event_dst_days_set_dayweek
label: Set DST Start/End Days (day and week)
kind: action
params:
- name: s_weekindex
type: enum
values: [First, Second, Third, Fourth, Fifth, Last]
description: Start week index
- name: s_day
type: enum
values: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
description: Start day of week
- name: s_month
type: enum
values: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
description: Start month
- name: e_weekindex
type: enum
values: [First, Second, Third, Fourth, Fifth, Last]
description: End week index
- name: e_day
type: enum
values: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
description: End day of week
- name: e_month
type: enum
values: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
description: End month
command: 'event MTX:DSTSetDayWeek "s_weekindex={s_weekindex}|s_day={s_day}|s_month={s_month}|e_weekindex={e_weekindex}|e_day={e_day}|e_month={e_month}"'
response: 'OK event MTX:DSTSetDayWeek "..."'
description: Sets DST start/end days by nth weekday of month. Invalid on XMV, EXi8, EXo8.
- id: event_dst_days_query_dayweek
label: Query DST Start/End Days (day and week)
kind: query
params: []
command: 'event MTX:DSTGetDayWeek ""'
response: 'OK event MTX:DSTGetDayWeek "s_weekindex=...|s_day=...|s_month=...|e_weekindex=...|e_day=...|e_month=..."'
description: Returns error if DST configured by "day" not "day and week". Invalid on XMV, EXi8, EXo8.
- id: event_dst_days_set_day
label: Set DST Start/End Days (fixed date)
kind: action
params:
- name: s_month
type: enum
values: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
description: Start month
- name: s_date
type: integer
description: "Start day of month (1 to 31)"
- name: e_month
type: enum
values: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
description: End month
- name: e_date
type: integer
description: "End day of month (1 to 31)"
command: 'event MTX:DSTSetDay "s_month={s_month}|s_date={s_date}|e_month={e_month}|e_date={e_date}"'
response: 'OK event MTX:DSTSetDay "..."'
description: Sets DST start/end days by fixed date. Invalid on XMV, EXi8, EXo8.
- id: event_dst_days_query_day
label: Query DST Start/End Days (fixed date)
kind: query
params: []
command: 'event MTX:DSTGetDay ""'
response: 'OK event MTX:DSTGetDay "s_month=...|s_date=...|e_month=...|e_date=..."'
description: Returns error if DST configured by "day and week" not "day". Invalid on XMV, EXi8, EXo8.
- id: event_dst_days_setting_query
label: Query DST Day Format Setting
kind: query
params: []
command: 'event MTX:DSTGetDaySetting ""'
response: 'OK event MTX:DSTGetDaySetting "setting={dayweek|day}"'
description: Returns which DST day format is currently configured. Invalid on XMV, EXi8, EXo8.
- id: audio_player_get_current_dir
label: Query Audio Player Current Folder
kind: query
params: []
command: 'event MTX:AudioPlayerGetCurrentDir ""'
response: 'OK event MTX:AudioPlayerGetCurrentDir "dirpath={path}|dirname={name}|subdirnum={n}|filenum={n}"'
description: Queries current folder info. OKm with "sdcard is not inserted" if no SD card. MTX/MRX only.
- id: audio_player_set_current_dir
label: Move Audio Player Current Folder
kind: action
params:
- name: dirpath
type: string
description: "Directory path in index expression (0 for root, 0/nnnn for sub folder)"
command: 'event MTX:AudioPlayerSetCurrentDir "dirpath={dirpath}"'
response: 'OK event MTX:AudioPlayerSetCurrentDir "dirpath=...|dirname=...|subdirnum=...|filenum=..."'
description: Moves current folder. Only root and one level of subfolders supported. MTX/MRX only.
- id: audio_player_get_dir_name
label: Query Audio Player Folder Name
kind: query
params:
- name: dirindex
type: integer
description: Folder index number
command: 'event MTX:AudioPlayerGetDirName "dirindex={dirindex}"'
response: 'OK event MTX:AudioPlayerGetDirName "dirname={name}"'
description: Queries folder name by index. Valid only when current folder is root. MTX/MRX only.
- id: audio_player_get_file_name
label: Query Audio Player File Name
kind: query
params:
- name: fileindex
type: integer
description: File index number
command: 'event MTX:AudioPlayerGetFileName "fileindex={fileindex}"'
response: 'OK event MTX:AudioPlayerGetFileName "filename={name}"'
description: Queries file name by index in current folder. MTX/MRX only.
- id: audio_player_get_dir_name_list
label: Query Audio Player Folder Name List
kind: query
params:
- name: first
type: integer
description: First index of desired range
- name: last
type: integer
description: Last index of desired range
command: 'event MTX:AudioPlayerGetDirNameList "dirindex={first}-{last}"'
response: 'OK event MTX:AudioPlayerGetDirNameList "dirindex={first}-{last}|dirname0=...|..."'
description: Queries multiple folder names in a range. MTX/MRX only.
- id: audio_player_get_file_name_list
label: Query Audio Player File Name List
kind: query
params:
- name: first
type: integer
description: First index of desired range
- name: last
type: integer
description: Last index of desired range
command: 'event MTX:AudioPlayerGetFileNameList "fileindex={first}-{last}"'
response: 'OK event MTX:AudioPlayerGetFileNameList "fileindex={first}-{last}|filename0=...|..."'
description: Queries multiple file names in a range. MTX/MRX only.
- id: audio_player_get_play_mode
label: Query Audio Player Play Mode
kind: query
params: []
command: 'event MTX:AudioPlayerGetPlayMode ""'
response: 'OK event MTX:AudioPlayerGetPlayMode "playmode={mode}"'
description: Queries current play mode. MTX/MRX only.
- id: audio_player_set_play_mode
label: Set Audio Player Play Mode
kind: action
params:
- name: mode
type: enum
values: [one, "repeat one", all, "repeat all", shuffle]
description: Play mode
command: 'event MTX:AudioPlayerSetPlayMode "playmode={mode}"'
description: Sets audio player play mode (MTX/MRX only)
- id: audio_player_get_status
label: Query Audio Player Playback Status
kind: query
params: []
command: 'event MTX:AudioPlayerGetStatus ""'
response: 'OK event MTX:AudioPlayerGetStatus "status={stop|play|pause}"'
description: Queries playback status. MTX/MRX only.
- id: audio_player_transport
label: Audio Player Transport Control
kind: action
params:
- name: operation
type: enum
values: [play, stop, pause, prev, next]
description: Transport operation (prev = beginning of previous song, next = next song)
command: 'event MTX:AudioPlayerTransport "operation={operation}"'
description: Controls audio player playback (MTX/MRX only; invalid on XMV/EXi8/EXo8)
- id: audio_player_get_current_song
label: Query Audio Player Current Song
kind: query
params: []
command: 'event MTX:AudioPlayerGetCurrentSong ""'
response: 'OK event MTX:AudioPlayerGetCurrentSong "dirpath={path}|dirname={name}|fileindex={n}|filename={name}"'
description: Queries currently playing or selected song. MTX/MRX only.
- id: audio_player_set_current_song
label: Set Audio Player Current Song
kind: action
params:
- name: dirpath
type: string
description: Directory path in index expression (e.g. 0/1)
- name: fileindex
type: integer
description: File index number
command: 'event MTX:AudioPlayerSetCurrentSong "dirpath={dirpath}|fileindex={fileindex}"'
response: 'OK event MTX:AudioPlayerSetCurrentSong "dirpath=...|dirname=...|fileindex=...|filename=..."'
description: Selects song for playback (MTX/MRX only)
- id: editor_sync_status_query
label: Query MTX Editor Synchronization Status
kind: query
params: []
command: 'event MTX:SynchronizationGetStatus ""'
response: 'OK event MTX:SynchronizationGetStatus "{active|inactive}"'
description: Queries sync status with MTX Editor. Invalid on XMV, EXi8, EXo8.
- id: event_log_number_query
label: Query Alert Event Log Count
kind: query
params: []
command: 'event MTX:EventLogGetLogNumber ""'
response: 'OK event MTX:EventLogGetLogNumber "lognum={count}"'
description: Queries number of alert event log entries.
- id: event_log_query
label: Query Alert Event Log Entry
kind: query
params:
- name: logindex
type: integer
description: Index number of event log
command: 'event MTX:EventLogGetLog "logindex={logindex}"'
response: 'OK event MTX:EventLogGetLog "log{n}={AlertData}"'
description: "Queries one event log entry. AlertData format: {flt|err|wrn}/message// xnnn onf (sssss) ID-xxx yyyy/mm/dd hh:mm:ss"
- id: event_log_list_query
label: Query Alert Event Log as List
kind: query
params:
- name: first
type: integer
description: First index of desired range
- name: last
type: integer
description: Last index of desired range (max 10 logs per query)
command: 'event MTX:EventLogGetLogList "logindex={first}-{last}"'
response: 'OK event MTX:EventLogGetLogList "logindex={first}-{last}|log0=(AlertData)|log1=(AlertData)|..."'
description: Queries up to 10 event log entries in a range.
- id: event_log_clear
label: Clear Alert Event Log
kind: action
params: []
command: 'event MTX:EventLogClear ""'
response: 'OK event MTX:EventLogClear "lognum=0"'
description: Clears the alert event log
Feedbacks
- id: run_mode
type: enum
values: [normal, emergency, update]
description: Current device run mode (via devstatus runmode or NOTIFY devstatus runmode)
- id: error_status
type: string
description: "Alert status string: none, or flt/err/wrn with details (via devstatus error or NOTIFY devstatus error)"
- id: sampling_frequency
type: enum
values: [unknown, "44.1kHz", "48kHz"]
description: Current sampling frequency (via devstatus fs or NOTIFY devstatus fs)
- id: word_clock_status
type: enum
values: [lock, unlock]
description: Word clock lock status (via devstatus lockstatus or NOTIFY devstatus lockstatus)
- id: parameter_change
type: string
description: "Parameter change notification via NOTIFY set or NOTIFY setn. Address format: MTX:mem_MemNo/.../PrmNo/IndexNo or MTX:Index_IndexNo. Includes raw or normalized value."
- id: meter_level
type: string
description: "Meter data via NOTIFY mtr. Values are 2-digit hexadecimal per channel. Address: MTX:mtr_MemNo/UniqueId/meter or MTX:Index_IndexNo."
- id: preset_current
type: integer
description: Current preset index number (via NOTIFY sscurrent)
- id: preset_recall_status
type: integer
description: Preset recall in progress notification (via NOTIFY ssrecall with index)
- id: snapshot_current
type: integer
description: Current snapshot index from Remote Control Setup List, MRX7-D only (via NOTIFY sscurrent_ex)
- id: snapshot_recall_status
type: integer
description: Snapshot recall in progress, MRX7-D only (via NOTIFY ssrecall_ex)
- id: media_event
type: enum
values: ["sdcard=inserted", "sdcard=extracted"]
description: SD card insertion/removal notification (via NOTIFY event MTX:Media; invalid on XMV/EXi8/EXo8)
- id: synchronization_status
type: enum
values: [active, inactive]
description: MTX Editor synchronization status (via NOTIFY event MTX:SynchronizationSetStatus; invalid on XMV/EXi8/EXo8)
- id: audio_player_play_mode
type: enum
values: [one, "repeat one", all, "repeat all", shuffle]
description: Audio player play mode change notification (MTX/MRX only)
- id: audio_player_transport
type: enum
values: [play, stop, pause, prev, next]
description: Audio player transport state notification (MTX/MRX only)
- id: audio_player_current_song
type: string
description: "Playback song designation change (via NOTIFY event MTX:AudioPlayerSetCurrentSong; MTX/MRX only). Format: dirpath=...|dirname=...|fileindex=...|filename=..."
- id: dst_status
type: string
description: "DST enable/disable, offset, start/end time notifications (via NOTIFY event MTX:DSTSet*)"
- id: dst_days_setting
type: string
description: "DST start/end day setting change (day/week via NOTIFY event MTX:DSTSetDayWeek, or day via NOTIFY event MTX:DSTSetDay). Invalid on XMV, EXi8, EXo8."
Variables
- id: parameter_raw
type: integer
description: "Any addressed parameter value (raw). Address path: MTX:mem_MemNo/UniqueId/ElmNo/Xpos/Ypos/PrmNo/IndexNo (MTX/MTX5/XMV/EX) or MTX:Index_IndexNo (MRX7-D). Ranges vary by parameter - see section 7 Parameter List."
- id: parameter_normalized
type: integer
description: "Any addressed parameter value (normalized 0-1000). Same address scheme as raw."
- id: fader_level
type: integer
description: "Fader-type parameter. Raw range -13801 to +1000 (represents -Infinity to +10dB). Normalized 0 to 1000. Supports relative setr command."
- id: scheduler_state
type: enum
values: ["1", "0"]
description: "Event scheduler on/off state (1=on, 0=off) at MTX:EvntScd_On. Invalid on XMV, EXi8, EXo8."
Events
- id: notify_devstatus_runmode
description: "Unsolicited run mode change: NOTIFY devstatus runmode \"{mode}\""
trigger: Device run mode changes
- id: notify_devstatus_error
description: "Unsolicited error/alert: NOTIFY devstatus error \"{flt|err|wrn}/message// xnnn onf (sssss) ID-xxx yyyy/mm/dd hh:mm:ss\""
trigger: Alert condition occurs or clears
- id: notify_devstatus_fs
description: "Unsolicited Fs change: NOTIFY devstatus fs \"{fs}\""
trigger: Sampling frequency changes
- id: notify_devstatus_lockstatus
description: "Unsolicited word clock change: NOTIFY devstatus lockstatus \"{status}\""
trigger: Word clock lock status changes
- id: notify_set
description: "Unsolicited parameter change (raw): NOTIFY set {address} 0 0 {value} \"{string}\""
trigger: Any parameter changes on device (including from other controllers)
- id: notify_setn
description: "Unsolicited parameter change (normalized): NOTIFY setn {address} 0 0 {value} \"{string}\""
trigger: Any parameter changes on device
- id: notify_mtr
description: "Periodic meter data: NOTIFY mtr {address} {type} {hex_values...}"
trigger: After mtrstart; at configured interval
- id: notify_sscurrent
description: "Preset number changed: NOTIFY sscurrent {index}"
trigger: Preset recall completes or preset changes
- id: notify_ssrecall
description: "Preset recall started: NOTIFY ssrecall {index}"
trigger: Preset recall begins
- id: notify_sscurrent_ex
description: "Snapshot changed (MRX7-D only): NOTIFY sscurrent_ex list {index}"
trigger: Snapshot recall completes
- id: notify_ssrecall_ex
description: "Snapshot recall started (MRX7-D only): NOTIFY ssrecall_ex list {index}"
trigger: Snapshot recall begins
- id: notify_event_media
description: "SD card event: NOTIFY event MTX:Media \"sdcard={inserted|extracted}\""
trigger: SD card insertion or removal (invalid on XMV/EXi8/EXo8)
- id: notify_event_time_old
description: "Time sync <old format>: NOTIFY event MTX:AbsoluteTime \"yyyy/mm/dd hh:mm:ss\""
trigger: Device clock changed via old-format command (invalid on EXi8/EXo8)
- id: notify_event_time_new
description: "Time sync <new format>: NOTIFY event MTX:SetAbsoluteTime \"yyyy/mm/dd hh:mm:ss\""
trigger: Device clock changed via SetAbsoluteTime command (invalid on EXi8/EXo8)
- id: notify_event_dst_enable
description: "DST enable change: NOTIFY event MTX:DSTSetEnable \"{enable|disable}\""
trigger: DST enable/disable setting changed (invalid on XMV/EXi8/EXo8)
- id: notify_event_dst_offset
description: "DST offset change: NOTIFY event MTX:DSTSetOffset \"offset=hh:mm\""
trigger: DST offset time changed (invalid on XMV/EXi8/EXo8)
- id: notify_event_dst_start_time
description: "DST start time change: NOTIFY event MTX:DSTSetStartTime \"time=hh:mm\""
trigger: DST start time changed (invalid on XMV/EXi8/EXo8)
- id: notify_event_dst_end_time
description: "DST end time change: NOTIFY event MTX:DSTSetEndTime \"time=hh:mm\""
trigger: DST end time changed (invalid on XMV/EXi8/EXo8)
- id: notify_event_dst_dayweek
description: "DST days change (day/week): NOTIFY event MTX:DSTSetDayWeek \"s_weekindex=...|...\""
trigger: DST start/end day-and-week setting changed (invalid on XMV/EXi8/EXo8)
- id: notify_event_dst_day
description: "DST days change (day): NOTIFY event MTX:DSTSetDay \"s_month=...|...\""
trigger: DST start/end fixed-date setting changed (invalid on XMV/EXi8/EXo8)
- id: notify_event_play_mode
description: "Song play mode change: NOTIFY event MTX:AudioPlayerSetPlayMode \"playmode={mode}\""
trigger: Audio player play mode changes (MTX/MRX only)
- id: notify_event_transport
description: "Transport operation: NOTIFY event MTX:AudioPlayerTransport \"operation={play|stop|pause}\""
trigger: Audio player transport operated (MTX/MRX only)
- id: notify_event_current_song
description: "Playback song change: NOTIFY event MTX:AudioPlayerSetCurrentSong \"dirpath=...|dirname=...|fileindex=...|filename=...\""
trigger: Playback song designation changed (MTX/MRX only)
- id: notify_event_sync
description: "Editor sync: NOTIFY event MTX:SynchronizationSetStatus \"{active|inactive}\""
trigger: MTX Editor synchronization starts/stops
Macros
- id: communication_start
description: >
Communication start sequence (section 4.1):
1. Connect via TCP (port 49280) or RS-232C.
2. Send: devstatus runmode
3. Await response: OK devstatus runmode "normal"
4. Device is now ready to accept commands.
If response is not "normal", device is in emergency or update mode.
- id: parameter_sync
description: >
Parameter sync sequence (section 4.2):
After connection established, query all needed parameters via get/getn
to synchronize controller state with device state.
- id: preset_recall_sequence
description: >
Preset recall sequence (section 4.5):
1. Send: ssrecall {index}
2. Await: OK ssrecall {index}
3. Device sends NOTIFY ssrecall {index} (recall started)
4. Device sends NOTIFY sscurrent {index} (recall complete)
5. Device sends NOTIFY set/setn for each changed parameter
Safety
confirmation_required_for: []
interlocks:
- "After devmode emergency, device operates in emergency mode - verify intentional before sending"
- "SD Card should not be removed when the MTX is powered on"
# UNRESOLVED: no explicit safety interlock procedures documented in source
Notes
- Command syntax:
<command> <option1> <option2> ... <optionN><LF>. Each command terminated with LF (0x0A). Bare LF serves as heartbeat when keepalive is active. - Escaping: Double-quote strings with
\"; backslash with\\. - Parameter addressing (MTX3/MTX5-D/XMV/EXi8/EXo8):
MTX:mem_MemNo/UniqueId/ElmNo/Xpos/Ypos/PrmNo/IndexNo— all fields from section 7 Parameter List. - Parameter addressing (MRX7-D):
MTX:Index_IndexNo— index-based, requires Remote Control Setup List configured in MTX-MRX Editor. - Value modes: Raw (integer, parameter-specific range), Normalized (0–1000, default resolution adjustable via
scpmode resolution), and Relative (fader parameters only, viasetr). For setn, value 1023 makes resolution equal to raw. - OKm vs OK: Response
OKmindicates the requested value was clamped to the valid range, OR for audio-player/event-log commands that no SD card is inserted or the playback song is not specified. - Max connections: 9 simultaneous controllers on MTX/MRX (8 TCP + 1 RS-232); 8 TCP on standalone XMV/EX.
- MRX7-D Remote Control Setup List: Must be created in MTX-MRX Editor and uploaded to MRX7-D before external parameter control works. The list maps index numbers to specific parameters.
- Dante mode on MTX5-D: In Daisy Chain mode, either NETWORK connector can be used. In Redundant mode, only Primary NETWORK + RS-232.
- RS-232 baud rate: Configurable to 38400 or 115200 via MTX-MRX Editor. XMV/EXi8/EXo8 have no REMOTE connector (TCP only).
- Audio player commands (3-27 through 3-39) are invalid on XMV, EXi8, EXo8.
- Preset/snapshot commands (2-19, 2-20, 3-8, 3-9) are invalid on XMV, EXi8, EXo8.
- Snapshot commands (1-10, 1-11, 2-21) are MRX7-D only.
- DST/scheduler/media/sync event commands are invalid on XMV, EXi8, EXo8 — see Remarks column in section 2 Command List.
- DST day queries are mode-sensitive:
DSTGetDayWeekreturns an error if DST is configured by fixed date;DSTGetDayreturns an error if configured by day-and-week. UseDSTGetDaySettingfirst to determine which mode is active. - Event log: Indices range 0 to (total − 1); list queries return at most 10 entries; first index must be ≤ last index.
Upgrade done. Added 28 missing actions: scheduler query (2-12), old-format time set (3-10), DST query family (3-14..3-26), audio player folder/file/status/current-song queries (3-27..3-33, 3-35, 3-37), editor sync query (3-39), event log queries (3-40..3-42). Fixed `audio_player_transport` enum (added `prev`/`next`) and `event_log_clear` response (`lognum=0`). Added 8 missing DST/time Events + current-song Feedback. Preserved all existing IDs/shapes.
## Provenance
```yaml
source_domains:
- usa.yamaha.com
source_urls:
- https://usa.yamaha.com/files/download/other_assets/5/1343735/200330_mtx_mrx_xmv_ex_rcps_v400_rev14_en.pdf
- https://usa.yamaha.com/files/download/other_assets/5/2230685/MCP1-remote-V100_en.pdf
- https://usa.yamaha.com/files/download/other_assets/1/313111/AMX_Control_Module_MTX5-D.zip
- https://usa.yamaha.com/files/download/other_assets/2/1204842/Crestron_module_MRX7-D.zip
- https://usa.yamaha.com/files/download/other_assets/6/1209076/Crestron_module_MTXseries_v.1.2.zip
retrieved_at: 2026-07-17T07:06:34.199Z
last_checked_at: 2026-07-22T08:08:44.558Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-07-22T08:08:44.558Z
matched_actions: 65
action_count: 65
confidence: medium
summary: "All 65 spec actions map 1:1 to the source's Section 2.2/2.3 command tables (devstatus/devmode/scpmode/get/set/setr/mtr/ss*/devinfo/event MTX:* families) with matching command strings, response shapes, and enums; transport (port 49280, RS-232 8N1 38400/115200) confirmed verbatim. (8 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "MRX7-D uses an index-based parameter addressing scheme (Remote Control Setup List) that must be configured in MTX-MRX Editor before external control — the mapping is device-specific and not enumerable from the protocol spec alone"
- "XMV-specific parameter details (InputSelect, ATT, DigitalATT) are in section 7.3 but not fully extracted here"
- "no explicit safety interlock procedures documented in source"
- "Full parameter address tables (section 7) contain hundreds of entries with MemNo, UniqueId, ElmNo, Xpos, Ypos, PrmNo per parameter — too extensive to list individually. See source document sections 7.1–7.6."
- "Meter address tables (section 8) list all meter UniqueIds per device model."
- "Fader parameter dB-to-raw-value lookup tables (section 6.1) cover -Infinity to +10dB range with precise mapping."
- "XMV-specific parameters (InputSelect, ATT, DigitalInputSensitivity, Power) in section 7.3."
- "XMV power on/off command behavior (Power parameter in XMV parameter list)."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0