How to Trigger ETC Eos Cues from Live Audio
Eos speaks OSC out of the box. The exact command surface, why the Go key is not a cue fire, and how to drive the desk from music without an operator.
CueSync TeamStage Automation Engineers
Why Eos Is the Easy One
Automating a lighting console usually means finding out which of several half-documented control surfaces the vendor expects you to use. Eos is the exception: OSC is native, documented, and switched on from the console.
Setup → System → Show Control → OSC. Enable RX and TX, note the IP and port. That is the whole console-side configuration. No plugin, no middleware, no macro scaffolding in the show file, and nothing that has to be re-done when the show file changes.
Which means the interesting question is not how do I connect but what should I send.
The Command Surface
| Command | Effect |
|---|---|
/eos/key/go_0 | Press Go — advance the active cue list |
/eos/key/stop | Stop / back |
/eos/key/resume | Resume a stopped cue |
/eos/cue/<list>/<number>/fire | Jump to and fire a specific cue |
/eos/chan | Set a channel level |
/eos/sub/<number> | Set a submaster level — float argument |
/eos/macro/<number>/fire | Fire a macro |
Three details in that table are worth stating explicitly, because each one is a bug someone has already shipped.
The Go key is not a cue fire. /eos/key/go_0 is the operator's Go button: it advances the active cue list from wherever it currently sits. /eos/cue/<list>/<number>/fire jumps to a named cue regardless of position. Sequential playback wants the first. Event-driven triggering that must land on a specific look wants the second. Using Go where you meant an explicit fire produces a show that is correct in rehearsal and wrong the first time anything runs out of order.
Submasters take a float argument, on /eos/sub/<number> — the level is the argument, not part of the address. This is the form that maps cleanly onto a continuous audio parameter.
Macros fire on /eos/macro/<number>/fire. An older form, /eos/macro/fire/<number>, appears in circulated examples; the argument form /eos/macro/fire with the number as an argument is equivalent. Pick one and be consistent.
One more, easily missed: /eos/key/sneak is a valid key and an unrelated function. It is not a pause. Pause is /eos/key/stop.
Discrete Cues or Continuous Levels
Two different mappings, and most shows want both.
Discrete — fire a cue. A drop, a section change, a phrase boundary. The console owns the look; the trigger only decides the moment. This is where beat-phase accuracy matters, because a cue that lands a beat late reads as a mistake rather than a design.
Continuous — drive a level. Route an energy envelope or a frequency band to /eos/sub/<number> and the rig moves between programmed states rather than stepping between them. This is what makes automated lighting look intentional instead of mechanical, and it costs nothing on the console beyond having submasters to drive.
A show built only from cue fires looks like a slideshow. A show built only from levels never lands a moment. The combination is the point.
Reading the Console Back
Eos also transmits. It publishes the active cue on /eos/out/active/cue/... and the show name on /eos/out/show/name.
This matters more than it first appears. A controller firing cues blind accumulates a belief about console state that drifts from reality the moment anyone touches the desk — and on a real show, someone always touches the desk. Subscribing to the outbound feed lets a controller reconcile what it thinks is active against what actually is.
CueSync uses exactly this feed for cue reconciliation, parsing /eos/out/active/cue/... to keep its own view aligned. The equivalent on GrandMA3 is that console's OSC-out configuration; the principle is the same, and a controller that does not do it will eventually fight the operator.
What This Does Not Do
It does not program the desk. Every cue fired here was built by someone in the console, and the console remains the source of truth for what a look is. The automation layer decides when, never what.
That boundary is what makes it usable on a real production. On a show with no dedicated Eos operator, this can drive the desk end to end. On a programmed show, it fires the automated cues while an operator keeps a hand on manual override — and because Eos is receiving ordinary OSC rather than being remote-controlled at a lower level, the operator's actions always win.
Setup, End to End
- On the console: Setup → System → Show Control → OSC. Enable RX and TX. Note the IP and port.
- In CueSync: add an Eos OSC output pointed at that IP and port.
- Map triggers — beat, phrase, energy, timecode, or manual — to cue fires, Go, channels, submasters, or macros in the routing editor.
- Validate before the rig is live. Full configuration is available without a subscription, so the wiring can be proved on a bench.
- Test with ETCnomad on a loopback if the console is not available yet. The OSC surface is identical.
Compatible systems: Eos Ti, Gio, Gio @5, Ion Xe, Element 2, ETCnomad, Nomad Puck — any Eos system that exposes OSC.
Further Reading
- Audio-Reactive Cues Over OSC — the same idea aimed at QLab
- What Is Music-Driven Lighting Automation? — the category, from the top
- ETC Eos Integration — command surface, compatibility, setup steps
- CueSync for Theatre Operators — cue stacks, Show Editor, Run Mode
ETC® and Eos® are trademarks of Electronic Theatre Controls, Inc. CueSync is an independent product and is not affiliated with or endorsed by ETC.
Frequently Asked Questions
No. OSC is built into Eos and is enabled from the console itself under Setup → System → Show Control → OSC, where you turn on RX and TX and note the IP and port. There is nothing to install on the desk, no plugin, and no show-file preparation beyond having cues to fire. This is the main practical reason Eos is straightforward to automate compared with consoles that need a command-line bridge or a vendor-specific middleware layer.
Keep Reading
Audio-Reactive Cues Over OSC: What QLab Can and Cannot Do
Reacting to live audio usually gets built from QLab network cues, OSC queries and patience. What that does, where it stops, and what analysis adds.
ReadWhere Should Your Show's Timecode Come From?
Reaper, QLab, the console's internal clock, a hardware generator, or the live performance itself. Four architectures, and how to pick between them.
ReadWhat Is Music-Driven Lighting Automation? A Definition
Music-driven lighting automation is lighting control that reacts to live audio through beat, transient, and FFT analysis. Here's how it works.
Read