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

  1. In Designer, open your design and go to Tools → External Control → Named Controls.
  2. Add a new TCP device with the Zonal controller's IP address and port 1710.
  3. Enable the connection and click Discover. Zonal's monitors appear as named controls in the format zonal.<monitor-name>.spl.
  4. Drag a named control pin onto any gain component, AGC, or script asset.

Available named controls

Control nameTypeRangeDescription
zonal.<name>.splFloat0–140 dBCurrent A-weighted SPL reading
zonal.<name>.peakFloat0–140 dBPeak SPL in the last 10 s
zonal.<name>.onlineBoolean0/1Monitor connectivity status
zonal.zone.<zone>.avgFloat0–140 dBAverage SPL across all monitors in a zone

Enabling in Zonal

Q-SYS integration must be enabled in the controller settings:

  1. Open the Zonal dashboard and go to Settings → Integrations → Q-SYS.
  2. Toggle Enable Named Control server.
  3. Optionally restrict access to specific Core IP addresses for security.
  4. 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.

  1. Bind zonal.sanctuary-left.spl to a Script asset input.
  2. In the script, compare the SPL value to your target (e.g., 85 dB).
  3. 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 = offset

Firewall

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.