Summary

The Allen & Heath Dm48 is a dLive MixRack providing 48 mic preamp sockets within the dLive digital mixing system. This spec covers TCP/IP control via MIDI-format messages as documented in the dLive TCP/IP Protocol reference (firmware V1.5+). Control includes fader levels, mutes, send levels, DCA/Mute Group assignment, preamp control (gain, pad, 48V), channel naming/colour, scene recall, and MIDI transport.

Transport

protocols:
  - tcp
addressing:
  port: 51325  # stated: "Clients should be configured to use TCP port 51325"
auth:
  type: UNRESOLVED  # source does not state this (was inferred none: no auth procedure in source)
# Messages are MIDI-format (hex) sent over TCP/IP.
# SysEx Header for all SysEx messages: F0 00 00 1A 50 10 01 00
#   where MV=01 (Major version), mV=00 (Minor version)
# Base MIDI channel N selected in Utility / Control / MIDI.
# Audio channel type selected by offsetting MIDI channel from base N.

Traits

traits:
  - levelable    # inferred: fader levels, send levels, preamp gain control present
  - queryable    # inferred: pad/48V/name/colour query commands present
  - routable     # inferred: AUX/FX/Matrix send and Main assign commands present

Actions

# Channel selection: audio channel type selected by offsetting MIDI channel from
# base N. N = lowest channel selected in Utility / Control / MIDI.
# Channel type offsets: Inputs N+0, Mono Groups N+1, Stereo Groups N+1,
#   Mono Aux N+2, Stereo Aux N+2, Mono Matrix N+3, Stereo Matrix N+3,
#   Mono FX Send N+4, Stereo FX Send N+4, FX Return N+4, Mains N+4, DCA N+4,
#   Mute Group N+4. See source channel selection table for CH note ranges.
#
# SysEx Header = F0 00 00 1A 50 10 01 00

- id: mute_on
  label: Mute On
  kind: action
  command: "9{N}, {CH}, 7F, 9{N}, {CH}, 00"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F), selected in Utility / Control / MIDI
    - name: CH
      type: integer
      description: Note number for target channel (hex), per channel selection table
  notes: NOTE ON velocity > 40 followed by NOTE OFF

- id: mute_off
  label: Mute Off
  kind: action
  command: "9{N}, {CH}, 3F, 9{N}, {CH}, 00"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
  notes: NOTE ON velocity < 40 followed by NOTE OFF

- id: fader_level_set
  label: Fader Level Set
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 17, B{N}, 06, {LV}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: LV
      type: integer
      description: "Fader value -inf to +10dB = 00 to 7F (hex)"
  notes: NRPN with parameter ID 17

- id: assign_to_main_on
  label: Channel Assignment to Main Mix On
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 18, B{N}, 06, 7F"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
  notes: NRPN with parameter ID 18, ON value = 40 to 7F

- id: assign_to_main_off
  label: Channel Assignment to Main Mix Off
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 18, B{N}, 06, 3F"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
  notes: NRPN with parameter ID 18, OFF value = 00 to 3F

- id: aux_fx_matrix_send_level
  label: AUX / FX / Matrix Send Level
  kind: action
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 0D, {CH}, {SndN}, {SndCH}, {LV}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for source channel (hex)
    - name: SndN
      type: integer
      description: MIDI channel for destination send bus
    - name: SndCH
      type: integer
      description: Note number for destination send bus
    - name: LV
      type: integer
      description: "Send value -inf to +10dB = 00 to 7F (hex)"
  notes: SysEx message. SndN and SndCH are the MIDI channel and note number for the channel to be sent to.

- id: dca_assign_on
  label: DCA Assignment On
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 40, B{N}, 06, {DB}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: DB
      type: integer
      description: "DCA 1-24 = 40 to 57 (hex)"
  notes: NRPN with parameter ID 40

- id: dca_assign_off
  label: DCA Assignment Off
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 40, B{N}, 06, {DA}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: DA
      type: integer
      description: "DCA 1-24 = 00 to 17 (hex)"
  notes: NRPN with parameter ID 40

- id: mute_group_assign_on
  label: Mute Group Assignment On
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 40, B{N}, 06, {DB}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: DB
      type: integer
      description: "Mute Group 1-8 = 58 to 5F (hex)"
  notes: NRPN with parameter ID 40

- id: mute_group_assign_off
  label: Mute Group Assignment Off
  kind: action
  command: "B{N}, 63, {CH}, B{N}, 62, 40, B{N}, 06, {DA}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: DA
      type: integer
      description: "Mute Group 1-8 = 18 to 1F (hex)"
  notes: NRPN with parameter ID 40

- id: preamp_gain_set
  label: Socket Preamp Gain Set
  kind: action
  command: "E{N}, {MP}, {GV}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: MP
      type: integer
      description: "Preamp socket number (hex). Mixrack sockets 1-64 = 00-3F, DX 1/2 = 40-5F, DX 3/4 = 60-7F"
    - name: GV
      type: integer
      description: "Gain min to max = 00 to 7F (hex). +10dB=00, +60dB=7F"
  notes: Pitchbend message. Adjusts gain of preamp at a socket.

- id: preamp_pad_get
  label: Socket Preamp Pad Status Query
  kind: query
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 07, {MP}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: MP
      type: integer
      description: Preamp socket number (hex)

- id: preamp_pad_set
  label: Socket Preamp Pad Set
  kind: action
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 09, {MP}, {Pad}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: MP
      type: integer
      description: Preamp socket number (hex)
    - name: Pad
      type: integer
      description: "OFF = 00 to 3F, ON = 40 to 7F (hex)"

- id: preamp_48v_get
  label: Socket Preamp 48V Status Query
  kind: query
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 0A, {MP}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: MP
      type: integer
      description: Preamp socket number (hex)

- id: preamp_48v_set
  label: Socket Preamp 48V Set
  kind: action
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 0C, {MP}, {48V}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: MP
      type: integer
      description: Preamp socket number (hex)
    - name: 48V
      type: integer
      description: "OFF = 00 to 3F, ON = 40 to 7F (hex)"
  notes: Phantom Power on/off

- id: channel_name_get
  label: Channel Name Query
  kind: query
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 01, {CH}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)

- id: channel_name_set
  label: Channel Name Set
  kind: action
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 03, {CH}, {Name}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: Name
      type: string
      description: Hex ASCII string, up to 8 characters (5 displayable on strip LCD)

- id: channel_colour_get
  label: Channel Colour Query
  kind: query
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 04, {CH}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)

- id: channel_colour_set
  label: Channel Colour Set
  kind: action
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 06, {CH}, {Col}, F7"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: CH
      type: integer
      description: Note number for target channel (hex)
    - name: Col
      type: integer
      description: "00=Off, 01=Red, 02=Green, 03=Yellow, 04=Blue, 05=Purple, 06=Lt Blue, 07=White"

- id: scene_recall
  label: Scene Recall
  kind: action
  command: "B{N}, 00, {Bank}, C{N}, {SS}"
  params:
    - name: N
      type: integer
      description: Base MIDI channel (0-F)
    - name: Bank
      type: integer
      description: "Bank select: 00=Scenes 1-128, 01=Scenes 129-256, 02=Scenes 257-384, 03=Scenes 385-500"
    - name: SS
      type: integer
      description: "Scene within bank (hex). 00 to 7F for banks 1-3, 00 to 73 for bank 4"
  notes: Bank and Program Change message. 500 Scenes across 4 banks. dLive also transmits this when a Scene is recalled from the dLive screen.

- id: midi_strip_fader_output
  label: MIDI Strip Fader Output
  kind: action
  command: "B1, 00, <VAR> to B1, 1F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 00 to 1F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_rotary_gain_output
  label: MIDI Strip Rotary Gain Output
  kind: action
  command: "B2, 00, <VAR> to B2, 1F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 00 to 1F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_rotary_pan_output
  label: MIDI Strip Rotary Pan Output
  kind: action
  command: "B2, 20, <VAR> to B2, 3F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 20 to 3F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_rotary_custom_1_output
  label: MIDI Strip Rotary Custom 1 Output
  kind: action
  command: "B2, 40, <VAR> to B2, 5F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 40 to 5F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_rotary_custom_2_output
  label: MIDI Strip Rotary Custom 2 Output
  kind: action
  command: "B2, 60, <VAR> to B2, 7F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 60 to 7F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_rotary_custom_3_output
  label: MIDI Strip Rotary Custom 3 Output
  kind: action
  command: "B2, 40, <VAR> to B2, 5F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 40 to 5F"
    - name: VAR
      type: integer
      description: value determined by the position of the control
  notes: By default, Rotary Custom 3 uses the same values as Rotary Custom 1.

- id: midi_strip_rotary_custom_4_output
  label: MIDI Strip Rotary Custom 4 Output
  kind: action
  command: "B2, 60, <VAR> to B2, 7F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 60 to 7F"
    - name: VAR
      type: integer
      description: value determined by the position of the control
  notes: By default, Rotary Custom 4 uses the same values as Rotary Custom 2.

- id: midi_strip_mute_key_output
  label: MIDI Strip Mute Key Output
  kind: action
  command: "=91, 00, <VAR> to 91, 1F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 00 to 1F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_mix_key_output
  label: MIDI Strip Mix Key Output
  kind: action
  command: "=91, 20, <VAR> to 91, 3F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 20 to 3F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

- id: midi_strip_pafl_key_output
  label: MIDI Strip PAFL Key Output
  kind: action
  command: "=91, 40, <VAR> to 91, 5F, <VAR>"
  params:
    - name: Strip
      type: integer
      description: "MIDI Strip index: 40 to 5F"
    - name: VAR
      type: integer
      description: value determined by the position of the control

Feedbacks

- id: preamp_pad_status
  type: enum
  values: [off, on]
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 08, {MP}, {Pad}, F7"
  query_command: "F0 00 00 1A 50 10 01 00, 0{N}, 07, {MP}, F7"
  notes: "Reply to pad query. Pad OFF=00, ON=7F"

- id: preamp_48v_status
  type: enum
  values: [off, on]
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 0B, {MP}, {48V}, F7"
  query_command: "F0 00 00 1A 50 10 01 00, 0{N}, 0A, {MP}, F7"
  notes: "Reply to 48V query. 48V OFF=00, ON=7F"

- id: channel_name_reply
  type: string
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 02, {CH}, {Name}, F7"
  query_command: "F0 00 00 1A 50 10 01 00, 0{N}, 01, {CH}, F7"
  notes: "Reply to name query. Name = Hex ASCII String"

- id: channel_colour_reply
  type: enum
  values: [off, red, green, yellow, blue, purple, lt_blue, white]
  command: "F0 00 00 1A 50 10 01 00, 0{N}, 05, {CH}, {Col}, F7"
  query_command: "F0 00 00 1A 50 10 01 00, 0{N}, 04, {CH}, F7"
  notes: "Reply to colour query. Col = 00 to 07"

Variables

# Fader level (LV): -inf to +10dB mapped to 00-7F
# Preamp gain (GV): min to max mapped to 00-7F
# Send level (LV): -inf to +10dB mapped to 00-7F
# These are settable via actions above; no additional variables beyond those.

Events

- id: scene_recall_transmitted
  description: dLive transmits Bank/Program Change when a Scene is recalled from the dLive screen
  command: "B{N}, 00, {Bank}, C{N}, {SS}"

# MIDI Strips: dLive transmits custom MIDI messages from assigned fader strip
# controls. Factory defaults (restorable via Scene 9 in Template Show):
#   Fader:        B1, 00-1F, <VAR>
#   Rotary Gain:  B2, 00-1F, <VAR>
#   Rotary Pan:   B2, 20-3F, <VAR>
#   Rotary C1:    B2, 40-5F, <VAR>
#   Rotary C2:    B2, 60-7F, <VAR>
#   Rotary C3:    B2, 40-5F, <VAR>  (same as C1 by default)
#   Rotary C4:    B2, 60-7F, <VAR>  (same as C2 by default)
#   Mute key:     91, 00-1F, <VAR>
#   Mix key:      91, 20-3F, <VAR>
#   PAFL key:     91, 40-5F, <VAR>
# Where <VAR> = value determined by control position.

Macros

# UNRESOLVED: no multi-step sequences explicitly documented in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures found in source.
# Note: 48V (phantom power) control is present but no safety interlock documented.

Notes

  • Protocol uses MIDI-format messages (hex) transmitted over TCP/IP on port 51325.
  • Available via any Network port on the dLive Surface or MixRack.
  • SysEx header for all SysEx messages: F0 00 00 1A 50 10 01 00 (manufacturer ID 00 00 1A, device 50 10, version MV=01 mV=00).
  • Base MIDI channel N is configured in Utility / Control / MIDI. Audio channel types are selected by offsetting from N:
    • Inputs 1-128: N+0, CH=00-7F
    • Mono Groups 1-62: N+1, CH=00-3D; Stereo Groups 1-31: N+1, CH=40-5E
    • Mono Aux 1-62: N+2, CH=00-3D; Stereo Aux 1-31: N+2, CH=40-5E
    • Mono Matrix 1-62: N+3, CH=00-3D; Stereo Matrix 1-31: N+3, CH=40-5E
    • Mono FX Send 1-16: N+4, CH=00-0F; Stereo FX Send 1-16: N+4, CH=10-1F
    • FX Return 1-16: N+4, CH=20-2F
    • Mains 1-6: N+4, CH=30-35
    • DCA 1-24: N+4, CH=36-4D
    • Mute Group 1-8: N+4, CH=4E-55
  • Mute message velocity interpretation: velocity 00 and NOTE OFF ignored; velocity 01-3F = Mute OFF; velocity 40-7F = Mute ON.
  • Preamp control, scene recall, and MIDI transport use the base MIDI channel N.
  • 32 MIDI Strips available; fader strips assignable as custom MIDI controllers for DAW/external equipment control.

Provenance

source_domains:
  - usermanual.wiki
  - shop.ccisolutions.com
source_urls:
  - https://usermanual.wiki/m/17f57c351c70e570df06460d46999bf4dd7a0af4e24c599f71593674847ef3d5.pdf
  - https://shop.ccisolutions.com/StoreFront/jsp/pdf/ANH-DLIVEDM48_brochure.pdf
retrieved_at: 2026-07-13T18:49:54.279Z
last_checked_at: 2026-10-07T13:25:07.056Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T13:25:07.056Z
matched_actions: 34
action_count: 34
confidence: medium
summary: "All 34 action units match the dLive TCP/IP protocol source with correct shapes and port 51325; source names no DM48 model, so applicability is family-level. (7 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "MMC (MIDI Machine Control) commands mentioned as a controllable function but specific MMC command payloads not documented in the source."
- "Dm48-specific socket count (48) inferred from model name; protocol doc covers entire dLive range (up to 128 inputs, 64 mixrack sockets)."
- "no multi-step sequences explicitly documented in source"
- "no safety warnings or interlock procedures found in source."
- "MMC (MIDI Machine Control) specific command payloads not documented in source — only listed as a controllable function."
- "No receive buffer/timeout/retry behavior documented."
- "Firmware version compatibility range stated as \"V1.5 and later\" but no upper bound."

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