QSC Q-SYS + Tevyr
Drive a QSC Q-SYS audio DSP straight from your show clock — recall snapshots, mute zones, or trigger a control when a session starts, a timer warns, or a blackout fires. Q-SYS subscribes to Tevyr's webhooks directly through its built-in HTTP listener, so there's no bridge software to run.
Q-SYS is QSC's networked audio, video, and control platform, programmed in Q-SYS Designer. Its control scripting and HTTP listener components can receive web requests — which is exactly how Tevyr talks to it. Learn more at qsys.com.
What you can do
Recall a snapshot per session
When a session starts, Tevyr fires a webhook that tells Q-SYS to load the right mix snapshot for that act.
Mute on blackout
On a blackout, Tevyr pings Q-SYS to mute the program bus — and unmute when the blackout clears.
Cue a control on a timer warning
At the 1-minute mark, trigger a chime, a control pin, or a routing change from your timer.
No middleware
Unlike consoles that route through Companion, Q-SYS listens for HTTP directly — one less piece of software in the path.
Prerequisites
- A Tevyr plan that includes webhooks (see Pricing)
- A Q-SYS Core running a design with control scripting, reachable from wherever Tevyr sends its webhooks (a public URL, or the same network)
- Basic familiarity with Q-SYS Designer — adding components and a little Lua scripting
One-time setup
1. Add an HTTP listener in Q-SYS Designer
- In your Q-SYS design, add a scripting component (Lua) or the HTTP listener block.
- Write a small handler that maps an incoming request to a control action — e.g.
Snapshot.Load, a mixer mute, or a control-pin trigger. - Note the URL Q-SYS listens on (the Core's host/IP plus the path and port you chose).
2. Point a Tevyr webhook at it
- In Tevyr, open Webhooks and click Add webhook.
- Set the URL to your Q-SYS listener endpoint.
- Subscribe to the events you want —
session.started,timer.warning,display.blackout, and so on. - Save, then hit Test to fire a sample event and confirm Q-SYS reacts.
Recipe — Recall a snapshot when a session starts
| Setting | Value |
|---|---|
| Webhook event | session.started |
| URL | http://<q-sys-core-host>:<port>/<your-path> |
| Handler | Your Lua handler reads the event payload and calls Snapshot.Load(...) for that session |
The same shape covers mute-on-blackout (display.blackout → mute) and timer cues (timer.warning → trigger a control).
Troubleshooting
"Q-SYS never receives the request"
- Confirm the Core is reachable from wherever Tevyr sends webhooks (a public URL, or the same LAN).
- Double-check the listener's host, port, and path match the webhook URL exactly.
"The request arrives but nothing happens"
- Add a log line in your Lua handler to confirm it fires, then verify the snapshot or control name it targets.
Related
- Webhooks — how Tevyr fires events at any HTTP endpoint
- Macros — fire a
flow.http_requestat Q-SYS as one step in a larger cue - Bitfocus Companion — bridge consoles (DiGiCo, Yamaha, Shure) that don't take HTTP directly
- Integrations overview — other tools you can wire alongside Q-SYS