Playground · Build · 2026

Upcoming

Theatre Audio Cue Player — QLab for productions that can't afford QLab

A desktop cue-playback tool for live theatre — Mac-first via Electron, Web Audio API, with per-cue EQ and a limiter to handle the speaker crackle that ruins small-venue shows. End goal is a portable Raspberry Pi 5 rig with a USB audio interface, for productions that can't justify QLab licensing.

Role

Designer · Engineer · Sound Op

Timeline

Multiple weekends — Mac first, Pi later

Team

1 person

Scope

Electron, Web Audio API, future Raspberry Pi 5 build

Why this exists

I run sound for IU Productions. We've staged shows in venues with rented PAs that crackle the moment a cue hits 0dB. The fix is a per-cue limiter and a notch EQ on the mid-range — five-second trim per cue, applied live during tech rehearsal.

QLab is the industry tool for theatre cue playback. It is excellent. It also costs ₹50,000+ for the version that handles audio properly, runs only on macOS, and assumes the production has a dedicated sound op laptop.

For a small Mumbai theatre company doing five shows a year, QLab is overkill on every axis. We need cue playback. We need basic EQ and limiting. We do not need QLab's MIDI matrix or video integration. We need it on a portable rig that any production can afford.

What it does

A cue list, top to bottom. Each cue:

  • Audio file
  • Optional fade-in / fade-out (seconds)
  • Optional 3-band EQ (low/mid/high cut/boost)
  • Optional limiter (threshold, ratio, attack, release)
  • Hotkey trigger (default: spacebar advances)

Spacebar fires the next cue. Backspace cancels the running cue. Number keys jump to a specific cue. The whole thing runs full-screen on the sound op's laptop during the show.

A "rehearsal mode" for tech week — same UI, but shows waveforms, lets the sound designer scrub and tweak EQ live, then locks down for the show.

How it's built

  • Electron for the Mac app (Web Audio API has the EQ + limiter primitives built in).
  • Cue files live in plain JSON next to the audio files — version-controllable, sharable, no proprietary format.
  • Hotkey routing through Electron's accelerator API, with the Web Audio worklet handling the actual signal chain.
  • Long-term: same React UI, same Web Audio API, but ported to a Raspberry Pi 5 with a USB audio interface (Behringer UMC202HD or similar). The Pi runs the show; the laptop is the editor.

What it isn't

Not a DAW. Not a replacement for QLab in productions that need video, MIDI matrix, or 32-channel surround. Specifically for two-channel stereo cue playback in 50-200-seat venues.

Not free as in MIT — open-source, but the polish is for theatre companies that pay me to install it. The code is the lever; the install + tech-rehearsal support is the service.

Why it doesn't exist yet

The Web Audio limiter implementation is fiddly. Browser audio worklets have latency that's almost low enough but not quite — a 20ms gap between spacebar and audio start is fine for a music cue but unacceptable for a gunshot or a knock. I need to either move the audio chain to a native module or accept the latency budget for non-critical cues only.

I'm running an A/B test on the next IU production — laptop with the prototype for half the cues, QLab on a borrowed Mac for the rest. If the prototype holds up under load, it ships. If it doesn't, I learn what specifically to fix.