Skip to content
Voro
  1. Audio
  2. Control

Function

Function is the control-signal LFO and phase source. It is not audio DSP; it renders a control stream at sample rate to modulate other operators. Six shapes cover the classic waves plus sample-hold and smooth random, four timebases cover free-running, tempo, externally scrubbed phase, and integrated speed, and skew, fold, quantize, and jitter reshape the wave after the fact.

Place Function wherever a parameter needs movement. Set Rate and Shape, then wire the value output into the parameter to modulate, directly or through Map for range scaling. The optional inputs override or steer the clock: rate scales speed, phase scrubs position in external-phase mode, trigger restarts the cycle, and gate runs one-shot playback.

  • Input 0: rate — control stream that scales the rate. Optional.
  • Input 1: phase — external phase to follow in external_phase timebase. Optional.
  • Input 2: trigger — restarts the cycle on a rising edge. Optional.
  • Input 3: gate — gates playback, used by one-shot mode. Optional.
  • Output 0: value — the shaped control signal.
  • Output 1: phase — current phase, 0 to 1.
  • Output 2: cycle — running cycle count.
  • Output 3: pulse — fires at each cycle boundary.
  • Output 4: active — whether the generator is currently running.
  • Rate — speed. Negative values run backwards.
  • Phase — phase offset.
  • Amount and Offset — output scale and center.
  • Skew — pushes the wave shape asymmetric, turning a triangle toward a saw.
  • Fold — wavefolds the output for harmonically richer control shapes.
  • Quantize — steps the output into a set number of levels.
  • Jitter — random variation per cycle.
  • Smoothing — slews the output, softening steps from quantize or sample-hold.
  • Shape — sine, triangle, saw, square, sample_hold, or smooth_random.
  • Timebase — free, tempo_hz, external_phase, or integrated_speed.
  • Playback — loop, one_shot, or ping_pong.
  • Bipolar — output swings around zero instead of 0 to 1.
  • Seed — repeatable random for the random shapes.
  • external_phase turns Function into a lookup driven by whatever you wire into the phase input, so any signal can scrub the wave.
  • One-shot playback with a trigger wire makes it a shaped envelope-like sweep per event.
  • Sample-hold and smooth-random with a Seed are repeatable run to run.

Inputs

  • rate row
    control_f32_v1
  • phase row
    control_f32_v1
  • trigger row
    control_f32_v1
  • gate row
    control_f32_v1

Outputs

  • value row
    control_f32_v1
  • phase row
    control_f32_v1
  • cycle row
    control_f32_v1
  • pulse row
    control_f32_v1
  • active row
    control_f32_v1
Rate (Rate) Float op('function').par.Rate
Default:
1
Range:
-1000 to 1000
Phase (Phase) Float op('function').par.Phase
Default:
0
Range:
-16 to 16
Amount (Amount) Float op('function').par.Amount
Default:
1
Range:
-16 to 16
Offset (Offset) Float op('function').par.Offset
Default:
0
Range:
-16 to 16
Skew (Skew) Float op('function').par.Skew
Default:
0
Range:
-0.99 to 0.99
Fold (Fold) Float op('function').par.Fold
Default:
0
Range:
0 to 16
Quantize (Quantize) Float op('function').par.Quantize
Default:
0
Range:
0 to 256
Jitter (Jitter) Float op('function').par.Jitter
Default:
0
Range:
0 to 1
Smoothing (Smoothing) Float op('function').par.Smoothing
Default:
0
Range:
0 to 10
Shape (Shape) Menu op('function').par.Shape
Default:
0
Options:
sine, triangle, saw, square, sample_hold, smooth_random
Timebase (Timebase) Menu op('function').par.Timebase
Default:
0
Options:
free, tempo_hz, external_phase, integrated_speed
Playback (Playback) Menu op('function').par.Playback
Default:
0
Options:
loop, one_shot, ping_pong
Bipolar (Bipolar) Toggle op('function').par.Bipolar
Default:
Off
Options:
Off, On
Seed (Seed) Int op('function').par.Seed
Default:
1
Range:
0 to 16777215