Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mcallegari/qlcplus/llms.txt
Use this file to discover all available pages before exploring further.
Overview
A Sequence is a specialized type of Chaser that is bound to a single Scene. Instead of playing different scenes in order, a Sequence animates the channel values of its bound scene across multiple steps, creating smooth transitions and animations.Sequences inherit all functionality from Chasers but add scene-binding capabilities for streamlined animation workflows.
When to Use Sequences
Channel Animation
Animate dimmer, color, or position values smoothly over time
Movement Patterns
Create complex movement sequences for moving head fixtures
Color Fades
Smooth color transitions across multiple steps
Intensity Ramps
Build fade-up and fade-down effects for theatrical cues
How Sequences Differ from Chasers
| Feature | Chaser | Sequence |
|---|---|---|
| Member Functions | Multiple different functions | Single bound scene only |
| Value Storage | References function IDs | Stores channel values per step |
| Use Case | Play different lighting states | Animate channel values |
| Flexibility | Any function type | Scene values only |
Bound Scene Concept
Every Sequence is bound to exactly one Scene:- Which fixtures are controlled
- Which channels are animated
- The base structure for all sequence steps
Creating a Sequence
Key Properties
Bound Scene ID
The ID of the Scene this Sequence animates. Set with
setBoundSceneID().Step Values
Each ChaserStep in a Sequence contains:Class Methods
The Sequence class (sequence.h:31) extends Chaser:Scene Binding
Inherited from Chaser
Sequences inherit all Chaser methods:- Step management (
addStep(),removeStep(), etc.) - Speed mode control
- Playback control
- Tempo synchronization
Step Synchronization
Sequences maintain value consistency with the bound scene:postLoad(), the sequence verifies:
- All steps have the same channels as the bound scene
- Missing channels are added with zero values
- Extra channels are preserved
XML Structure
Sequences save with scene binding information:The
BoundScene attribute is required for Sequences. Without it, the sequence cannot be loaded.Scene Value Fixup
The fixup mechanism (sequence.cpp:231) handles scene mismatches:- All steps have consistent channel structure
- New scene channels appear in all steps (value = 0)
- Existing step values are preserved
Best Practices
Design Scene First
Fully configure the bound scene with all needed fixtures/channels before creating steps
Common Use Cases
Dimmer Chase
Color Wheel
Position Sweep
Performance Considerations
- Sequences with many steps and channels use more memory
- The fixup mechanism adds load time overhead
- Hidden scenes (used only as sequence containers) don’t render in UI
Limitations
- Single Scene Only: Cannot animate multiple scenes
- Channel Structure Fixed: Adding/removing scene channels requires fixup
- No Function Mixing: Cannot mix scenes with other function types
- Legacy Format: Old sequence format is no longer supported
