Overview
Functions are the core building blocks for creating lighting shows in QLC+. They define what happens to your fixtures over time - from static scenes to complex sequences and effects.Functions can be nested and combined, allowing you to build sophisticated shows from simple components.
Function Types
QLC+ provides several function types, each suited for different use cases:Scene
A Scene captures a static lighting state - specific DMX values for selected channels.Use Cases
- Stage washes (all fixtures to a specific color/intensity)
- Preset positions for moving heads
- Lighting states for different show sections
- Set individual channel values (0-255)
- Control any number of fixtures
- Instant or faded transitions
- Blend modes (Normal, Mask, Additive, Subtractive)
Chaser
A Chaser is a sequence of steps executed in order.- Loop: Continuous repeat (1→2→3→1→2→3…)
- Single Shot: Run once and stop
- Ping Pong: Forward then reverse (1→2→3→2→1)
- Random: Random step selection
EFX (Effects)
EFX functions create automated movement patterns for fixtures with pan/tilt.Circle
Circular pan/tilt movement
Eight
Figure-8 pattern
Line
Linear sweep
Triangle
Triangular path
- Width/Height (movement range in degrees)
- X/Y Offset (center position)
- Rotation (pattern orientation)
- Start Offset (phase shift between fixtures)
- Direction (Forward/Backward)
Collection
A Collection runs multiple functions simultaneously.RGB Matrix
RGB Matrix generates pixel-mapped effects for LED fixtures. Built-in Patterns:- Text scrolling
- Geometric shapes
- Plasma effects
- Fire simulation
- Animated graphics
- Fixture layout (grid arrangement)
- Effect selection and parameters
- Color palette
- Animation speed and direction
Show
A Show provides timeline-based programming with precise timing control. Features:- Visual timeline interface
- Multiple parallel tracks
- Precise timing (millisecond accuracy)
- Mix of different function types
- Audio synchronization
Sequence
A Sequence is a special chaser type that captures absolute channel values at each step, rather than referencing other scenes.Sequences are created from the Simple Desk or by recording live changes. They’re useful for storing complete snapshots.
Function Properties
Common Properties
All functions share these properties:Timing Control
Speed Parameters
Beat-based timing automatically adjusts to BPM changes, perfect for music-synchronized shows.
Tempo Types
- Time: Absolute milliseconds (ms)
- Beats: Synchronized to Master Timer BPM
Intensity Attribute
All functions support intensity control:- Virtual Console sliders (submaster control)
- Chaser steps (vary intensity per step)
- Grand Master override
Function Hierarchy
Functions can contain other functions, creating powerful hierarchies:Parent-Child Relationships
When a parent function starts:- Child functions inherit override values (speed, intensity)
- Children respect parent’s running order
- Stopping parent stops all children
Running Functions
Lifecycle
- Start: Function is added to Master Timer
- preRun: Initialization, setup faders
- write: Generate DMX values each tick
- postRun: Cleanup, fade out
- Stop: Removed from Master Timer
Master Timer Integration
The Master Timer runs all active functions:- Calls
write()every 50ms (20 Hz) - Manages faders and priority
- Coordinates HTP/LTP merging
- Handles Grand Master scaling
Blend Modes
Functions can use different blend modes when writing to universes:- Mask: Dim a running scene without modifying it
- Additive: Layer effects without overriding base scene
- Subtractive: Create negative/cutout effects
Practical Examples
Creating a Simple Scene
Building a Color Chase
Circular Movement Effect
Best Practices
- Naming: Use clear, descriptive names for functions
- Organization: Use paths to organize functions by type or show section
- Modularity: Build complex shows from simple, reusable functions
- Timing: Start with time-based, switch to beats for music sync
- Testing: Test functions individually before combining
- Fade Times: Always set appropriate fade times for smooth transitions
Performance Considerations
- HTP Checking: Intensive for many overlapping scenes
- EFX Calculations: Complex algorithms can be CPU-intensive
- Fade Optimization: Faders are created/destroyed dynamically
- Function Depth: Limit nesting depth to avoid overhead
Related Concepts
- Universes - Where function output is written
- Fixtures - What functions control
- Virtual Console - Triggering functions during shows
