Summary
The Allen & Heath CQ is a compact digital mixer controllable via MIDI. This spec covers MIDI-over-TCP/IP (and USB MIDI) control of scene recall, soft keys, mutes, levels, and pan/balance using MIDI Note On/Off, Program/Bank Change, and NRPN messages. The CQ uses MIDI Channel 1 for all control messaging.
Transport
protocols:
- tcp
addressing:
port: 51325
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- levelable # inferred: level (volume) and pan/balance control present
- queryable # inferred: 'get' query commands returning parameter values present
- powerable # inferred: mute on/off commands present (discrete power/mute control)
Actions
# All hex payloads are verbatim from the source (0x prefix omitted per source convention).
# MIDI Channel 1 used throughout. Parameters:
# MB/LB = NRPN MSB/LSB parameter number (see source reference tables for mute/level/pan)
# VC/VF = coarse/fine value bytes
# SK = Soft Key note
# BK = bank, PG = program
actions:
- id: scene_recall
label: Recall Scene
kind: action
command: "B0 00{BK} C0{PG}"
params:
- name: BK
type: string
description: Bank byte; source recommends bank 1 (00) for completeness
- name: PG
type: integer
description: Program (scene) value 00-7F; -1 offset vs CQ scene number (CQ 1-128 = MIDI 0-127)
notes: "Recalled scene must exist as a saved scene in the CQ."
- id: soft_key_press
label: Soft Key Press
kind: action
command: "90 {SK} 7F"
params:
- name: SK
type: string
description: Soft Key note (C3/30 = Soft Key 1, sequential)
- id: soft_key_release
label: Soft Key Release
kind: action
command: "80 {SK} 00"
params:
- name: SK
type: string
description: Soft Key note (C3/30 = Soft Key 1, sequential)
notes: "CQ also accepts note-on with zero velocity as note-off."
- id: mute_on
label: Mute On
kind: action
command: "B0 63{MB} B0 62{LB} B0 06 00 B0 26 01"
params:
- name: MB
type: string
description: NRPN MSB for target mute parameter
- name: LB
type: string
description: NRPN LSB for target mute parameter
- id: mute_off
label: Mute Off
kind: action
command: "B0 63{MB} B0 62{LB} B0 06 00 B0 26 00"
params:
- name: MB
type: string
description: NRPN MSB for target mute parameter
- name: LB
type: string
description: NRPN LSB for target mute parameter
- id: mute_toggle
label: Mute Toggle
kind: action
command: "B0 63{MB} B0 62{LB} B0 60 00"
params:
- name: MB
type: string
description: NRPN MSB for target mute parameter
- name: LB
type: string
description: NRPN LSB for target mute parameter
notes: "Cannot currently be used with DCA Mute and Mute Group Mute (source)."
- id: level_set
label: Set Level (Absolute)
kind: action
command: "B0 63{MB} B0 62{LB} B0 06{VC} B0 26{VF}"
params:
- name: MB
type: string
description: NRPN MSB for source-to-destination level parameter
- name: LB
type: string
description: NRPN LSB for source-to-destination level parameter
- name: VC
type: string
description: Coarse value byte (see source 'Example Linear/Audio Taper Level Values')
- name: VF
type: string
description: Fine value byte
- id: level_increment
label: Level +1dB
kind: action
command: "B0 63{MB} B0 62{LB} B0 60 00"
params:
- name: MB
type: string
description: NRPN MSB for source-to-destination level parameter
- name: LB
type: string
description: NRPN LSB for source-to-destination level parameter
notes: "NRPN Fader Law setting has no effect on relative control."
- id: level_decrement
label: Level -1dB
kind: action
command: "B0 63{MB} B0 62{LB} B0 61 00"
params:
- name: MB
type: string
description: NRPN MSB for source-to-destination level parameter
- name: LB
type: string
description: NRPN LSB for source-to-destination level parameter
notes: "NRPN Fader Law setting has no effect on relative control."
- id: pan_set
label: Set Pan/Balance (Absolute)
kind: action
command: "B0 63{MB} B0 62{LB} B0 06{VC} B0 26{VF}"
params:
- name: MB
type: string
description: NRPN MSB for source-to-destination pan/balance parameter
- name: LB
type: string
description: NRPN LSB for source-to-destination pan/balance parameter
- name: VC
type: string
description: Coarse value byte; 00 00 = full left, 40 00 = centre, 7F 7F = full right
- name: VF
type: string
description: Fine value byte
notes: "For MIDI control of panning to Linked Stereo Outputs, 'Follow Main LR Pan' must be Off."
- id: pan_increment
label: Pan/Balance Right (increment)
kind: action
command: "B0 63{MB} B0 62{LB} B0 60 00"
params:
- name: MB
type: string
description: NRPN MSB for source-to-destination pan/balance parameter
- name: LB
type: string
description: NRPN LSB for source-to-destination pan/balance parameter
notes: "Incrementing moves pan to the right."
- id: pan_decrement
label: Pan/Balance Left (decrement)
kind: action
command: "B0 63{MB} B0 62{LB} B0 61 00"
params:
- name: MB
type: string
description: NRPN MSB for source-to-destination pan/balance parameter
- name: LB
type: string
description: NRPN LSB for source-to-destination pan/balance parameter
notes: "Decrementing moves pan to the left."
- id: get_value
label: Get Parameter Value
kind: query
command: "B0 63{MB} B0 62{LB} B0 60 7F"
params:
- name: MB
type: string
description: NRPN MSB for requested mute/level/pan parameter
- name: LB
type: string
description: NRPN LSB for requested mute/level/pan parameter
notes: "Returns current value of any mute, level, or pan/balance parameter."
Feedbacks
# CQ transmits MIDI messages when changes are made to any NRPN-controlled parameter (source 1.2).
# Raw MIDI output can be recorded and played back.
feedbacks:
- id: mute_state
type: enum
values: [muted, unmuted]
description: "Transmitted as Mute On/Off NRPN messages on mute changes."
- id: level_value
type: number
description: "Transmitted as absolute level NRPN messages on level changes."
- id: pan_balance_value
type: number
description: "Transmitted as absolute pan/balance NRPN messages on pan changes."
Variables
# Settable parameters are covered by the level_set / pan_set actions (parameterized).
# Source does not describe additional standalone settable variables.
# UNRESOLVED: no further variables identified in source.
Events
# Source does not document unsolicited notification events beyond parameter-change
# MIDI output (covered under Feedbacks).
# UNRESOLVED: no discrete event notifications described in source.
Macros
# UNRESOLVED: no multi-step sequences described in source.
Safety
confirmation_required_for: []
interlocks:
- "Avoid creating a MIDI feedback loop by sending the CQ MIDI output back to the CQ when recording MIDI data (source 1.2)."
- "Only one TCP/IP MIDI connection is possible at a time (source 1.1)."
# UNRESOLVED: no further safety/interlock procedures stated in source.
Notes
- Source uses hexadecimal throughout;
0xprefix omitted for brevity. All commands use MIDI Channel 1 (B0/C0/90/80status bytes reflect channel 1). - Scene recall has a -1 offset between CQ values (1-128) and MIDI values (0-127).
- Soft Key octave designation may differ across applications/hardware (C3 vs C2/C4). HEX values in source are authoritative.
- CQ does NOT send Note On/Off messages when a Soft Key is pressed physically — MIDI triggering is inbound only for Soft Keys.
- Mute Toggle uses the data-increment opcode (
B0 60 00) and toggles state; does not work with DCA/Mute Group mutes. - NRPN parameter number reference tables (mute/level/pan MB+LB pairs) are extensive in the source and not duplicated here per-action; implementers must consult the source reference tables for exact parameter numbers per channel/route.
- CC Translator option in the Allen & Heath MIDI Control app enables simplified CC/Note-On control; not modelled here (app-layer translation, not device protocol).
## Provenance
```yaml
source_domains:
- allen-heath.com
source_urls:
- https://www.allen-heath.com/content/uploads/2024/10/CQ_MIDI_Protocol_V1_2_0_iss4.pdf
- https://www.allen-heath.com/resources/
retrieved_at: 2026-07-13T19:03:50.519Z
last_checked_at: 2026-07-21T20:01:03.251Z
Verification Summary
verdict: verified
checked_at: 2026-07-21T20:01:03.251Z
matched_actions: 13
action_count: 13
confidence: medium
summary: "All 13 spec actions matched verbatim in source; transport (port 51325, TCP, channel 1) confirmed; coverage is complete one-to-one. (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "USB-MIDI transport details not fully modelled (spec models TCP/IP transport). Specific CQ model variants (CQ-18T / CQ-20B / CQ-28T) not distinguished in source."
- "no further variables identified in source."
- "no discrete event notifications described in source."
- "no multi-step sequences described in source."
- "no further safety/interlock procedures stated in source."
- "USB-MIDI transport not modelled as separate transport."
- "power on/off device command not present (only mute)."
- "clock/sync / tempo control not described."
- "CC Translator mapping table not in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0