Numeric effect parameters - including Wet amount - offer an Animate disclosure for a driver. Kaleidoscope → Black background is a toggle without that disclosure.
The same editor also serves RenderWave shader source controls, so sources lend themselves to the same treatment. See RenderWave shaders.
How it works
Animation is evaluated every frame into a temporary copy of the stack. Your authored value is never overwritten, which is why turning animation Off restores the base value exactly.
Each driver has Minimum and Maximum, defaulting to the parameter's own full range and required to
sit inside it. The final value is always minimum + cycle × (maximum − minimum), so narrowing the
range is how you tame any driver.
Out-of-range results are discarded before being applied.
Drivers
| Driver | Its own parameters |
|---|---|
| Off | none - removes the attachment |
| Sine | clock, period |
| Saw | clock, period |
| Triangle | clock, period |
| Square | clock, period |
| Random hold | clock, period (its internal seed picks each step's value) |
| Clip position | none - follows the clip's own 0…1 position |
| Envelope | editable points, clock, period |
| Audio level | Gain 0 … 20 (default 1), Attack (s) 0 … 10 (default 0.02), Release (s) 0 … 10 (default 0.2) |
Random hold has no phase or seed control exposed in the UI; both are stored and round-trip with the set, they are simply not editable yet.
Clip position deserves care: as a driver it is clockless and reads the clip's progress directly, which means it is only sensible at Clip scope.
Clocks
Every driver except Clip position and Audio level has a clock. New drivers default to Beats with a period of 4.
| Clock | Period labelled | Range |
|---|---|---|
| Seconds | Seconds per cycle |
0.01 … 128 |
| Beats | Beats per cycle |
0.01 … 128 |
| Clip position | Fraction of clip |
0.01 … 1 |
- Seconds and Beats are always offered. Clip position is offered only when the current edit scope is Clip - and note this clock is a different thing from the Clip position driver.
- Beats follows cumulative show beats, so a tempo change preserves the beat count rather than restarting the cycle. The footer says so: "Beat animation follows cumulative beats through tempo changes."
Envelopes
A draggable curve with numeric fields beneath it.
- 2 to 64 points, positions strictly increasing.
- Points are interpolated linearly between neighbours, and clamped outside the point span.
- Add point splits the widest interval and is disabled at 64 points; Remove is disabled at 2.
- Dragging clamps to ±0.001 of its neighbours.
- Default new envelope: (0, 0), (0.5, 1), (1, 0), clock Beats, period 4.
- Clip-position-clock envelopes hold at the final point; Seconds and Beats envelopes loop.
Audio level
Requires the audio input to be enabled. Target is clamp(level × gain), followed by separate attack
and release smoothing.
Two behaviours worth planning around:
- It holds its last smoothed value while paused, so a paused frame keeps reacting to the level it last saw rather than snapping to zero.
- The editor note is explicit: "Uses the selected audio input while Enable audio input is on. This driver does not select FFT bands." There is no band selection.
Pause and freeze
The modulation system does not own the clocks - the caller does. Freezing them pauses animation without rebasing it, so nothing jumps when you resume. Audio level is the only exception above.
Removing animation
- Setting a parameter's driver to Off removes that attachment. When no parameters have drivers, the instance carries no attachments at all.
- Reset parameters on an effect also deletes every driver, alongside restoring default parameters,
Wet amount 1 and blend
Alpha. - Each driver keeps independent smoothing state keyed by target identity plus instance ID plus parameter, and it resets when that driver is replaced or the stack is replaced.
Not verified
- Whether pausing behaves identically for modulation on shader source controls as it does for effect parameters. Only the effect path was read for these pages.