Q-SYS Integration
Zonal's Q-SYS integration lets your Q-SYS Core read live SPL data from any Zonal monitor and use it to drive gain control, ducking, or alert logic — all inside Q-SYS Designer without additional middleware.
Q-SYS integration is available on the Pro plan and above.
How it works
Zonal exposes a Named Control server on port 1710 (the standard Q-SYS external control port). Each Zonal monitor appears as a named control that Q-SYS can poll or subscribe to. No QRC scripting is required for basic use — just add the external control device in Designer and map controls to your components.
Requirements
- Q-SYS Core running firmware 9.4 or later
- Zonal Controller reachable from the Core's LAN port
- Pro license (Q-SYS integration is not available on Starter)
Setup in Q-SYS Designer
- In Designer, open your design and go to Tools → External Control → Named Controls.
- Add a new TCP device with the Zonal controller's IP address and port
1710. - Enable the connection and click Discover. Zonal's monitors appear as named controls in the format
zonal.<monitor-name>.spl. - Drag a named control pin onto any gain component, AGC, or script asset.
Available named controls
| Control name | Type | Range | Description |
|---|---|---|---|
zonal.<name>.spl | Float | 0–140 dB | Current A-weighted SPL reading |
zonal.<name>.peak | Float | 0–140 dB | Peak SPL in the last 10 s |
zonal.<name>.online | Boolean | 0/1 | Monitor connectivity status |
zonal.zone.<zone>.avg | Float | 0–140 dB | Average SPL across all monitors in a zone |
Enabling in Zonal
Q-SYS integration must be enabled in the controller settings:
- Open the Zonal dashboard and go to Settings → Integrations → Q-SYS.
- Toggle Enable Named Control server.
- Optionally restrict access to specific Core IP addresses for security.
- Click Save. The controller begins listening on port
1710.
Example: SPL-based gain reduction
A common use case is automatically reducing stage monitor or fill speaker level when sanctuary SPL exceeds a target — preventing volume wars between musicians and front-of-house.
- Bind
zonal.sanctuary-left.splto a Script asset input. - In the script, compare the SPL value to your target (e.g., 85 dB).
- Output a gain offset to the stage mix gain component.
-- Q-SYS Lua snippet
local spl = Controls["zonal.sanctuary-left.spl"].Value
local target = 85
local offset = math.min(0, target - spl) -- never boost, only cut
Controls["Stage Mix Gain"].Value = offsetFirewall
Ensure port 1710 (TCP) is open inbound on the machine running the Zonal controller, and that the Q-SYS Core can reach it. No outbound rules are needed on the Core side.