Conditional Cues

Any cue carries a condition that controls whether it is active during playback. The condition has three states. Use a condition for interactive, data-driven shows where content appears, disappears, or triggers based on show Variables.

The Cue Properties section is labeled by cue type. For media cues it is Conditional Render. For other cue types (control, output, variable, marker) it is Conditional Trigger. For a mixed selection it is Conditional Render/Trigger.

Output cues do not check their condition when they fire. The runtime collects output messages by start time without evaluating the condition. A condition on an output cue has no effect on whether the message sends.

Condition States

Every cue has a condition that can be in one of three states:

  • Enabled (default) — the cue always renders or triggers. No condition is evaluated.
  • Disabled — the cue never renders or triggers, regardless of playback position. Use this to mute a cue without deleting it.
  • Expression — the cue renders or triggers only when the Expression evaluates to true.

Setting a Condition

To add a condition to a cue:

  1. Select one or more cues.
  2. In the Cue Properties panel, find the conditions section. Its label adapts to the selected cue types (Conditional Render, Conditional Trigger, or Conditional Render/Trigger).
  3. Set the Value field to Expression (or Disabled to mute the cue).
  4. For Expression, enter the condition in the Expression field.

Condition Expressions

A condition expression is evaluated against the show's current Variable values. It follows standard mathematical syntax and references any show Variable by name.

The result greater than 0 means the condition is true. A result of 0 or less, or an evaluation error, means false.

Examples:

  • MyVariable — true when the Variable "MyVariable" is greater than 0.
  • Temperature > 25 — true when the "Temperature" Variable exceeds 25.
  • ButtonA * ButtonB — true only when both "ButtonA" and "ButtonB" are greater than 0.
  • Mode == 2 — true when "Mode" equals 2.

Variable names in expressions are case-insensitive. myVar and MYVAR reference the same Variable. A Variable not defined in the show evaluates to 0.

Runtime Behavior

Conditions are evaluated continuously during playback, not just at the cue's start time:

  • A media cue with a conditional render appears and disappears as the expression toggles between true and false during the cue's active time range.
  • A control or variable cue with a conditional trigger executes only when the condition is true as the playhead reaches the cue.
  • An output cue ignores its condition. The message sends regardless of the condition value.

If a media cue's condition becomes false while it renders, it stops rendering immediately. If the condition becomes true again while the playhead is still within the cue's time range, rendering resumes.

Interaction with Variables

Condition expressions work with show Variables driven by external inputs such as OSC, MIDI, Art-Net, LTC, and the HTTP API. See Variables and Variable Cues for input sources.

For example, set an "EmergencyMode" Variable to 1 via an HTTP API call. All cues conditioned on EmergencyMode then start rendering emergency messaging.

Use Cases

Show branching based on audience interaction: Use sensor data (via OSC or MIDI) to set a variable that controls which content path the show follows. Cues on one branch are conditioned on the variable being 1, while cues on the alternative branch are conditioned on it being 0.

Time-of-day content switching: An external system sets a "TimeOfDay" variable (e.g. 1 for morning, 2 for afternoon, 3 for evening). Media cues conditioned on TimeOfDay == 1, TimeOfDay == 2, or TimeOfDay == 3 display appropriate content automatically.

Emergency messaging: A dedicated "Emergency" variable is normally 0. When triggered via the HTTP API, it becomes 1, causing conditioned emergency messaging cues to render on all displays instantly. Clearing the variable back to 0 removes the messaging.

Interactive installations: In museum or exhibition contexts, proximity sensors or touch interfaces can drive variables that show or hide content as visitors approach or interact with displays.

Rehearsal/performance mode: A "ShowMode" variable switches between rehearsal (showing stage directions, timing markers, and debug overlays) and performance mode (clean output only). Cues for each mode are conditioned on the appropriate variable value.

To swap the media of one or more cues between named versions, Cue Sets and Variants are easier to organize than per-cue conditions. Use conditions to show or hide cues. Use Cue Sets to switch which content a cue plays.