Summary

Behringer X32 and Midas M32 are professional digital mixing consoles controllable via OSC (Open Sound Control) over UDP. All OSC communication uses port 10023. The protocol supports two modes: Immediate (request/response) and Deferred (continuous updates via /xremote registration).

Transport

protocols:
  - udp
addressing:
  port: 10023  # stated: "UDP port 10023 for all OSC communication"
auth:
  type: none  # inferred: no authentication procedure in source

Traits

- powerable   # inferred: power state commands available via /config
- queryable   # inferred: /info, /status, /showdump query commands present
- routable    # inferred: routing commands via /ch, /bus, /mtx, /main, /outputs
- levelable   # inferred: level parameter types and /meters endpoint present

Actions

# Server ↔ Client OSC paths (get/set parameters)
- id: config
  label: Configuration
  kind: action
  params:
    - name: parameter
      type: string
      description: OSC path under /config
    - name: value
      type: mixed
      description: Parameter value (float, int, string, or blob)

- id: channel
  label: Channel Control
  kind: action
  params:
    - name: channel
      type: integer
      description: Channel number (1-based)
    - name: parameter
      type: string
      description: Parameter path under /ch

- id: auxin
  label: Aux Input
  kind: action
  params:
    - name: input
      type: integer
      description: Aux input number

- id: fx_return
  label: FX Return
  kind: action
  params:
    - name: return_num
      type: integer
      description: FX return number (1-8)
    - name: parameter
      type: string

- id: bus
  label: Bus Control
  kind: action
  params:
    - name: bus
      type: integer
      description: Bus number
    - name: parameter
      type: string

- id: matrix
  label: Matrix
  kind: action
  params:
    - name: matrix
      type: integer
    - name: parameter
      type: string

- id: main_stereo
  label: Main Stereo
  kind: action
  params:
    - name: parameter
      type: string

- id: main_mono
  label: Main Mono
  kind: action
  params:
    - name: parameter
      type: string

- id: dca
  label: DCA Groups
  kind: action
  params:
    - name: dca
      type: integer
    - name: parameter
      type: string

- id: effects
  label: Effects
  kind: action
  params:
    - name: fx_num
      type: integer
      description: Effects unit number (1-8)
    - name: parameter
      type: string

- id: outputs
  label: Output Control
  kind: action
  params:
    - name: output_set
      type: integer
    - name: parameter
      type: string

- id: headamp
  label: Headamp
  kind: action
  params:
    - name: headamp_id
      type: integer
    - name: parameter
      type: string

- id: show_control
  label: Show Control
  kind: action
  params:
    - name: action
      type: string
      description: Action path under /-show

- id: preferences
  label: Preferences
  kind: action
  params:
    - name: parameter
      type: string

- id: usb
  label: USB
  kind: action
  params:
    - name: parameter
      type: string

- id: action_trigger
  label: Action Trigger
  kind: action
  params:
    - name: action_id
      type: string

- id: status
  label: Status Query
  kind: action
  params:
    - name: parameter
      type: string

- id: node
  label: Node
  kind: action
  params:
    - name: parameter
      type: string

- id: renew
  label: Renew
  kind: action
  params: []

- id: xremote
  label: Deferred Update Subscription
  kind: action
  params: []
  description: Subscribe to continuous updates. Server sends changes until timeout.

- id: info
  label: Info Query
  kind: action
  params: []
  description: Returns server info (48 bytes)

- id: meters
  label: Meter Request
  kind: action
  params:
    - name: meter_id
      type: integer
      description: Meter subscription ID
    - name: duration
      type: integer
      description: Duration in seconds (sent as big-endian 32-bit)
  description: Returns meter blob every 50ms for specified duration (max 10s timeout)

Feedbacks

# Deferred/async updates (server-initiated)
- id: action_update
  type: blob
  description: Action data updates from server

- id: undo_update
  type: blob
  description: Undo/scene data updates

- id: show_update
  type: blob
  description: Scene data updates

- id: stat_update
  type: blob
  description: Status data updates

# Query responses (immediate mode)
- id: info_response
  type: blob
  description: Server info response (48 bytes): version, type, osc-server, model, firmware

- id: status_response
  type: blob
  description: Server status response (52 bytes): active flag, IP address

- id: parameter_response
  type: mixed
  description: Float, int, or string parameter values

- id: meter_blob
  type: blob
  description: Meter data blob format: <meter_id>,b~~<length><count><nativefloats>

Variables

# Parameter types from OSC specification
- id: param_string
  type: string
  description: Character string up to max characters, null-terminated

- id: param_enum
  type: enum
  description: Integer corresponding to element in a list

- id: param_int
  type: integer
  description: Signed 32-bit integer in [min, max] range

- id: param_linf
  type: float
  description: Linear float in [min, max] with step size

- id: param_logf
  type: float
  description: Logarithmic float in [min, max] with steps

- id: param_level
  type: float
  description: "Float 0.0-1.0 mapped to 4 dB ranges: 0.0-0.0625 (-∞ to -60dB), 0.0625-0.25 (-60 to -30dB), 0.25-0.5 (-30 to -10dB), 0.5-1.0 (-10 to +10dB)"

Events

# Server-initiated communications (require /xremote registration)
- id: server_action
  path: /action
  description: Action data changes from server UI or connected clients

- id: server_undo_show
  path: /-undo, /-show
  description: Scene/undo data changes

- id: server_status
  path: /-stat
  description: Status data changes

Macros

# Show dump (full state snapshot)
- id: showdump
  label: Show Dump
  description: Request full configuration state. May return multiple replies.
  steps:
    - action: /showdump
    - response: Multiple blob responses containing full show state

# Meter streaming
- id: meter_subscription
  label: Meter Subscription
  description: Request continuous meter updates for 10 seconds
  steps:
    - action: /meters with duration parameter
    - response: Blob response every 50ms containing meter values

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

OSC Encoding Requirements:

  • All parameters: big-endian, 4-byte aligned (padding with null bytes)
  • Float range: 0.0 – 1.0 mapped to 0x00000000 – 0x3f800000
  • Integer/float: signed 32-bit
  • Boolean: OSC integer type
  • Strings: null-terminated
  • Blobs: follow section-specific rules

Meter Blob Format: <meter_id>,b~~<int1><int2><nativefloat>...

  • int1: blob length in bytes (32-bit big-endian)
  • int2: number of native floats (32-bit little-endian)
  • nativefloat: 32-bit little-endian floats (0.0-1.0 representing audio level, can exceed 1.0 up to 8.0 / +18 dBFS)

Supported Effects (via /fx/[1..8]/par/[01..64]): Reverbs (Hall, Plate, Ambience, Rich Plate, Room, Chamber, Vintage Room, Gated, Reverse), Delays (Stereo, 3 Tap, 4 Tap), Modulation (Stereo Chorus/Flanger/Phaser, Dimensional Chorus, Mood Filter, Rotary Speaker, Tremola/Panner, Sub Octaver), Dynamics (True/Stereo Graphic EQ, Stereo/Dual De-Esser, Stereo/Dual Program EQ, Stereo/Dual Midrange EQ, Wave Designer, Precision Limiter), Combiners (Stereo/Dual Combinator, Compressors, Enhancers, Exciter, Edison EX1, Sound Maxer, Guitar Amp, Tube Stage, Pitch Shifter)

User Definable Controls:

  • /config/userctrl for 4 rotary encoders (1-4) and 8 buttons (5-12)

Provenance

source_domains:
  - web.archive.org
source_urls:
  - "https://web.archive.org/web/20190312114524/https://behringerwiki.musictribe.com/index.php?title=OSC_Remote_Protocol"
retrieved_at: 2026-04-30T04:40:39.256Z
last_checked_at: 2026-06-02T21:40:53.786Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:40:53.786Z
matched_actions: 22
action_count: 22
confidence: medium
summary: "All 22 spec actions traced to source. (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "physical connection specifications (Ethernet speed, Wi-Fi support) not stated"
- "no safety warnings or interlock procedures in source"
- "physical dimensions, power requirements, port pinouts not in source"
- "firmware version compatibility not stated"
- "specific command syntax for power on/off not detailed"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0