Documentation

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.

What's Q-SYS?

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

  1. In your Q-SYS design, add a scripting component (Lua) or the HTTP listener block.
  2. 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.
  3. 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

  1. In Tevyr, open Webhooks and click Add webhook.
  2. Set the URL to your Q-SYS listener endpoint.
  3. Subscribe to the events you want — session.started, timer.warning, display.blackout, and so on.
  4. Save, then hit Test to fire a sample event and confirm Q-SYS reacts.

Recipe — Recall a snapshot when a session starts

SettingValue
Webhook eventsession.started
URLhttp://<q-sys-core-host>:<port>/<your-path>
HandlerYour 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.
  • Webhooks — how Tevyr fires events at any HTTP endpoint
  • Macros — fire a flow.http_request at 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