Build a looping chase and watch one cycle
gma3_build_chaseBuilds a chase in a new or empty sequence with one cue per step or preset, sets timing and wrap-around, then verifies playback in Preview without affecting live output.
Instructions
Build a chase into an empty or new sequence (or replace: true to rebuild one, keeping its executor assignments): one cue per step (steps: each a look or looks, a phaser in a look, an optional name and command; or presets: one cue per preset on fixtures, a list or a range {pool, from, to}), every cue Time-triggered after step_seconds (or cycle_seconds / number of steps) with an optional crossfade, and Wrap Around on, so the last cue is followed by the first. Built in the console's Preview environment: its own programmer and selection, so nothing is output and the operator's Normal programmer is untouched (checked before and after). Each cue starts from an empty programmer (ClearAll, sent only in Preview), its looks are applied in order (presets, then intensity, then values; a later look wins on shared fixtures), each look is checked in the programmer (preset links, values per fixture and cell), then the cue is stored. A look that did not apply stops the batch before that cue is stored; the cues already stored stay (nothing is undone or retried) and the result lists every cue with its status. A cue's stored values cannot be read back on 2.5.1; the cue's existence, name, timing, trigger, command and note are. A cue stored without a name takes the preset's name. Requires exclusive: true. sequence_settings and protect_running as in gma3_store_cues. Then, unless observe: false, PLAYS the chase (Goto cue 1, live output) and OBSERVES it over time on the server side (no Lua loop needed), sampling its current cue to verify one cycle: the cue order through the wrap and each step against step_seconds / the sequence's rate. A cycle longer than observe_max_seconds (default 45, at most 120; keep it under your client's request timeout) is observed from a late cue through the wrap instead. The chase is switched off afterwards unless leave_running: true. The result is compact by default: outcome, verification, one line per cue (look details only for a cue that did not match), the observed cycle as its cue order and step intervals, and only the steps that did not succeed (with a count of the rest); detail: true returns every step, every look and every sample.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fade | No | Crossfade per cue in seconds (CueInFade); it does not lengthen the step. | |
| name | No | Sequence name. | |
| steps | No | 2 to 100 steps, one cue each; a step with a command needs no look. | |
| detail | No | Return every item's full result with its steps (default false: one line per item). | |
| verify | No | ||
| observe | No | Play the chase and verify one cycle (default: as verify, true). | |
| presets | No | One cue per preset on fixtures (instead of steps): a list, or a range {pool, from, to} of the presets that exist, each cue named after its preset. | |
| replace | No | Rebuild a sequence that has cues: delete them first (the sequence and its executor assignments stay, checked). Default false: such a sequence is refused. | |
| fixtures | No | Target for every step that does not name its own fixtures. | |
| sequence | Yes | An empty or new sequence. | |
| data_pool | No | Data pool number (DataPool n). Default: the current data pool, as without this parameter. | |
| exclusive | No | Required (true). | |
| step_seconds | No | Time per step (each cue's TrigTime), at least 0.2 s. | |
| cycle_seconds | No | Time for the whole loop, divided over the steps (instead of step_seconds). | |
| leave_running | No | ||
| protect_running | No | With a priority above ltp: turn Off When Overridden off on the running sequences the override would switch off (default false: they are listed in a warning). | |
| sequence_settings | No | Sequence settings applied after the build, as gma3_configure_sequence takes them (priority, off_when_overridden, wrap_around, ...). | |
| observe_max_seconds | No |