WebsiteGet Ultimate VJ
DocumentationEffects & shaders

Animation and modulation

On this page

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.