Summary
The Allen & Heath CQ is a compact digital mixer controllable via MIDI. The CQ sends and receives MIDI over USB (USB-B class-compliant MIDI device) and over Ethernet using MIDI over TCP/IP (network port). All control messaging uses MIDI Channel 1. This spec covers scene recall, soft key triggering, mute control, level control, pan/balance control, and parameter value queries via MIDI NRPN messages.
Transport
# MIDI over TCP/IP documented on port 51325. MIDI over USB also supported
# (class-compliant USB MIDI via USB-B port) but USB-MIDI is not represented
# in the standard protocol enum; TCP is the primary network transport.
protocols:
- tcp
addressing:
port: 51325 # stated: "send messages to the CQ's IP address and use port 51325"
auth:
type: none # inferred: no auth/login procedure in source
Traits
traits:
- levelable # inferred: level (fader) control commands present
- queryable # inferred: "Getting values" / get commands present
Actions
# All commands use MIDI Channel 1 (0xB0 = CC ch1, 0x90 = NoteOn ch1, 0x80 = NoteOff ch1,
# 0xC0 = ProgramChange ch1). Source omits the "0x" prefix; hex values shown verbatim.
# NRPN addressing uses MSB (MB) / LSB (LB) parameter numbers from the reference tables.
# See Notes for the full MSB/LSB parameter address tables.
#
# Scene recall (bank change + program change). PG = program 00-7F; CQ scene = PG + 1.
- id: scene_recall
label: Scene Recall
kind: action
command: "B0 00 00 C0 {PG}"
params:
- name: PG
type: string
description: "Program value 00-7F (hex). CQ scene number = decimal(PG) + 1 (offset -1). Scene must exist as saved scene."
# Soft Key press (Note On). SK = soft key note hex. Key1=30, Key2=31, Key3=32 (C3,C#3,D3).
- id: soft_key_press
label: Soft Key Press
kind: action
command: "90 {SK} 7F"
params:
- name: SK
type: string
description: "Soft key note hex. SK1=30, SK2=31, SK3=32. (Some apps use C2/C4 octave designation.)"
# Soft Key release (Note Off).
- id: soft_key_release
label: Soft Key Release
kind: action
command: "80 {SK} 00"
params:
- name: SK
type: string
description: "Soft key note hex. SK1=30, SK2=31, SK3=32."
# Mute On (NRPN absolute). MB/LB = mute parameter number for target channel.
- 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: "MSB parameter number (hex) for target channel/route. See Mute Parameter Numbers in Notes."
- name: LB
type: string
description: "LSB parameter number (hex) for target channel/route. See Mute Parameter Numbers in Notes."
# Mute Off (NRPN absolute).
- 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: "MSB parameter number (hex). See Mute Parameter Numbers in Notes."
- name: LB
type: string
description: "LSB parameter number (hex). See Mute Parameter Numbers in Notes."
# Mute Toggle (NRPN data increment toggles state). Cannot be used with DCA/Mute Group mutes.
- id: mute_toggle
label: Mute Toggle
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 60 00"
params:
- name: MB
type: string
description: "MSB parameter number (hex). Not valid for DCA Mute / Mute Group Mute."
- name: LB
type: string
description: "LSB parameter number (hex). Not valid for DCA Mute / Mute Group Mute."
# Level Set absolute (NRPN). VC = coarse value, VF = fine value. See Example Level Values in Notes.
- id: level_set
label: Level Set
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 06 {VC} B0 26 {VF}"
params:
- name: MB
type: string
description: "MSB parameter number (hex) for source->destination route. See Level Parameter Numbers in Notes."
- name: LB
type: string
description: "LSB parameter number (hex) for source->destination route. See Level Parameter Numbers in Notes."
- name: VC
type: string
description: "Coarse value (hex). Combined with VF for absolute level. See Example Level Values."
- name: VF
type: string
description: "Fine value (hex). See Example Level Values."
# Level Increment (+1dB). NRPN Fader Law setting has no effect on relative control.
- id: level_increment
label: Level Increment (+1dB)
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 60 00"
params:
- name: MB
type: string
description: "MSB parameter number (hex) for source->destination route."
- name: LB
type: string
description: "LSB parameter number (hex) for source->destination route."
# Level Decrement (-1dB).
- id: level_decrement
label: Level Decrement (-1dB)
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 61 00"
params:
- name: MB
type: string
description: "MSB parameter number (hex) for source->destination route."
- name: LB
type: string
description: "LSB parameter number (hex) for source->destination route."
# Pan/Balance Set absolute (NRPN). 00 00 = full left, 40 00 = centre, 7F 7F = full right.
- id: pan_set
label: Pan/Balance Set
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 06 {VC} B0 26 {VF}"
params:
- name: MB
type: string
description: "MSB parameter number (hex) for source->destination route. See Pan/Balance Parameter Numbers in Notes."
- name: LB
type: string
description: "LSB parameter number (hex) for source->destination route."
- name: VC
type: string
description: "Coarse value (hex). 00=full left, 40=centre, 7F=full right."
- name: VF
type: string
description: "Fine value (hex). See Example Pan/Balance Values in Notes."
# Pan Increment (right one step).
- id: pan_increment
label: Pan/Balance Increment (right)
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 60 00"
params:
- name: MB
type: string
description: "MSB parameter number (hex) for source->destination route."
- name: LB
type: string
description: "LSB parameter number (hex) for source->destination route."
# Pan Decrement (left one step).
- id: pan_decrement
label: Pan/Balance Decrement (left)
kind: action
command: "B0 63 {MB} B0 62 {LB} B0 61 00"
params:
- name: MB
type: string
description: "MSB parameter number (hex) for source->destination route."
- name: LB
type: string
description: "LSB parameter number (hex) for source->destination route."
# Get value (query). Data increment with value 7F requests current value of mute/level/pan param.
- 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: "MSB parameter number (hex) of mute/level/pan/assignment parameter being requested."
- name: LB
type: string
description: "LSB parameter number (hex) of parameter being requested."
Feedbacks
# The CQ transmits MIDI NRPN messages when any change is made on the unit (or via
# connected app) to parameters that include NRPN MIDI Control. Returned value uses the
# same absolute NRPN set format (B0 63 MB B0 62 LB B0 06 VC B0 26 VF).
- id: parameter_state_report
type: nrpn
description: "Unsolicited NRPN message emitted by CQ when a controlled parameter changes. Format mirrors the corresponding set command."
- id: mute_state
type: enum
values: [on, off]
- id: level_value
type: range
description: "Coarse/fine (VC/VF) pair per the Example Level Values table."
- id: pan_value
type: range
description: "Coarse/fine (VC/VF) pair, 00 00 (full left) to 7F 7F (full right), 40 00 centre."
Variables
# Settable continuous parameters addressed via NRPN MSB/LSB.
- id: level
description: "Mix level (fader) per source->destination route. Absolute VC/VF or +/-1dB relative."
unit: dB
- id: pan_balance
description: "Pan (mono) or balance (stereo) per source->destination route. Absolute or relative step."
- id: mute
description: "Mute on/off per channel, output, FX, DCA, Mute Group."
Events
# The CQ sends MIDI messages unsolicited when parameters change on the unit itself.
# Raw MIDI output can be recorded and played back to automate level/mute control.
- id: unsolicited_state_change
description: "NRPN message transmitted by CQ on any parameter change made on the unit or app. Avoid MIDI feedback loops when recording."
Macros
# Source documents scene recall as a two-message sequence (bank change + program change),
# represented by the scene_recall action. No other multi-step macros documented.
# UNRESOLVED: no additional macro sequences described in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or
# power-on sequencing requirements.
Notes
- MIDI Channel: All control uses MIDI Channel 1.
- TCP limit: Only one TCP/IP MIDI connection possible at a time.
- Hex notation: Source omits the
0x prefix throughout; values shown verbatim (e.g. B0, 7F).
- Mute Toggle restriction: Cannot be used with DCA Mute and Mute Group Mute.
- Scene offset: CQ counts scenes 1-128; MIDI counts 0-127 (offset -1).
- Pan to linked stereo outputs: 'Follow Main LR Pan' must be set to 'Off' to allow MIDI pan control.
- Soft Key octave caveat: HEX values are accurate, but some apps/hardware use different octave designations (try C2/C4 if C3 does not work).
- Feedback loop warning: Avoid sending CQ MIDI output back to the CQ input when recording MIDI data.
Mute Parameter Numbers (MB / LB)
| Target |
MB |
LB |
Target |
MB |
LB |
Target |
MB |
LB |
| Ip1 |
00 |
00 |
St1 |
00 |
18 |
Main LR |
00 |
44 |
| Ip2 |
00 |
01 |
St2 |
00 |
1A |
Out1 |
00 |
45 |
| Ip3 |
00 |
02 |
USB |
00 |
1C |
Out2 |
00 |
46 |
| Ip4 |
00 |
03 |
BT |
00 |
1E |
Out3 |
00 |
47 |
| Ip5 |
00 |
04 |
FX1 |
00 |
51 |
Out4 |
00 |
48 |
| Ip6 |
00 |
05 |
FX2 |
00 |
52 |
Out5 |
00 |
49 |
| Ip7 |
00 |
06 |
FX3 |
00 |
53 |
Out6 |
00 |
4A |
| Ip8 |
00 |
07 |
FX4 |
00 |
54 |
MGRP1 |
04 |
00 |
| Ip9 |
00 |
08 |
DCA1 |
02 |
00 |
MGRP2 |
04 |
01 |
| Ip10 |
00 |
09 |
DCA2 |
02 |
01 |
MGRP3 |
04 |
02 |
| Ip11 |
00 |
0A |
DCA3 |
02 |
02 |
MGRP4 |
04 |
03 |
| Ip12 |
00 |
0B |
DCA4 |
02 |
03 |
|
|
|
| Ip13 |
00 |
0C |
Out1/2 |
00 |
45 |
|
|
|
| Ip14 |
00 |
0D |
Out3/4 |
00 |
47 |
|
|
|
| Ip15 |
00 |
0E |
Out5/6 |
00 |
49 |
|
|
|
| Ip16 |
00 |
0F |
|
|
|
|
|
|
| Target |
MB |
LB |
| Main LR |
4F |
00 |
| Out1 |
4F |
01 |
| Out2 |
4F |
02 |
| Out3 |
4F |
03 |
| Out4 |
4F |
04 |
| Out5 |
4F |
05 |
| Out6 |
4F |
06 |
| Out1/2 |
4F |
01 |
| Out3/4 |
4F |
03 |
| Out5/6 |
4F |
05 |
| FX1 |
4F |
0D |
| FX2 |
4F |
0E |
| FX3/FX4 |
4F |
0F |
| DCA1 |
4F |
20 |
| DCA2 |
4F |
21 |
| DCA3/DCA4 |
4F |
22/23 |
Each row = source, columns = Main LR / Out1 / Out2 / Out3 / Out4 / Out5 / Out6 / FX1 / FX2 / FX3 / FX4. Full matrix provided in source Reference Tables (e.g. Ip1->Main LR = 40 00; Ip1->Out1 = 40 44; Ip1->FX1 = 4C 14). Representative entries:
| Source->Dest |
MB |
LB |
| Ip1 -> Main LR |
40 |
00 |
| Ip1 -> Out1 |
40 |
44 |
| Ip1 -> FX1 |
4C |
14 |
| Ip12 -> Main LR |
40 |
0B |
| ST1 -> Main LR |
40 |
18 |
| FX1 -> Main LR |
40 |
3C |
| FX1 -> Out1 |
46 |
14 |
Example Level Values (VC / VF)
| dB |
VC |
VF |
dB |
VC |
VF |
dB |
VC |
VF |
| -inf |
00 |
00 |
-45 |
0C |
00 |
-20 |
2E |
40 |
| -89 |
01 |
40 |
-40 |
0F |
40 |
-15 |
36 |
00 |
| -60 |
06 |
00 |
-30 |
1F |
00 |
-10 |
3E |
00 |
| -50 |
08 |
00 |
-25 |
26 |
40 |
-5 |
4E |
40 |
| -30 |
1F |
00 |
-20 |
2E |
40 |
0 |
62 |
00 |
| -20 |
2E |
40 |
-10 |
3E |
00 |
+5 |
73 |
40 |
| -10 |
3E |
00 |
0 |
62 |
00 |
+10 |
7F |
40 |
Example Pan/Balance Values (VC / VF)
| Position |
VC |
VF |
| L100% |
00 |
00 |
| L50% |
1F |
7F |
| Centre |
40 |
00 |
| R50% |
5F |
7F |
| R100% |
7F |
7F |
Soft Key Note Values (SK)
| Soft Key |
Note |
HEX |
| 1 |
C3 |
30 |
| 2 |
C#3 |
31 |
| 3 |
D3 |
32 |
Provenance
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/content/uploads/2024/06/CQ_MIDI_Protocol_V1_2_0_iss1.pdf
- https://www.allen-heath.com
retrieved_at: 2026-07-13T18:53:53.993Z
last_checked_at: 2026-07-21T20:01:02.435Z
Verification Summary
verdict: verified
checked_at: 2026-07-21T20:01:02.435Z
matched_actions: 13
action_count: 13
confidence: medium
summary: "All 13 spec actions match verbatim source commands with correct wire patterns, parameter shapes, and transport port 51325; 100% bidirectional coverage. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "specific CQ hardware model variants (CQ-18T, CQ-20B, CQ-60T) not distinguished in source; source refers to \"CQ\" generically"
- "no additional macro sequences described in source."
- "source contains no safety warnings, interlock procedures, or"
- "full input-to-output level/pan MB/LB matrix not reproduced inline (300+ entries); see source Reference Tables sections 3.4-3.6"
- "number of CQ soft keys beyond keys 1-3 not stated; source table only lists three"
- "CQ hardware model variants (CQ-18T / CQ-20B / CQ-60T) not distinguished"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0