Skip to content
Voro
  1. Audio
  2. Control

Curve

Curve is a control-signal shape you draw with eight breakpoints. The same drawn shape serves three roles depending on Mode: a time generator that plays the shape as a cyclic modulation, a transfer function that maps an input value through the shape, or an externally scrubbed source where another signal’s phase picks the position along the curve.

Set the eight Value controls to draw the shape, pick Mode and Interpolation, and wire the value output into the parameter to modulate. In time mode set Rate for the playback speed; in external_phase mode wire a phase signal into the phase input; in transfer mode the input value itself selects the position on the curve.

  • Input 0: rate — control stream that scales the rate. Optional.
  • Input 1: phase — external phase or transfer input. Optional.
  • Input 2: trigger — restarts playback on a rising edge. Optional.
  • Input 3: gate — gates playback. Optional.
  • Output 0: value — the curve output.
  • Output 1: phase — current position along the curve, 0 to 1.
  • Output 2: cycle — running cycle count.
  • Output 3: pulse — fires at each cycle boundary.
  • Output 4: active — whether playback is running.
  • Rate — playback speed in time mode. Negative runs backwards.
  • Value0 to Value7 — the eight breakpoints of the curve.
  • Amount and Offset — output scale and center.
  • Mode — time, transfer, or external_phase.
  • Interpolation — step, linear, or smooth between breakpoints.
  • Loop — repeat in time mode, or play once per trigger when off.
  • transfer mode makes Curve a drawn response curve: put it after Macro or Map to give a fader a custom feel.
  • step interpolation turns the same eight values into an eight-step pattern.
  • Loop off with a trigger wire plays the drawn shape once per event, like a one-shot envelope with an arbitrary contour.

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('curve').par.Rate
Default:
1
Range:
-1000 to 1000
Value0 (Value0) Float op('curve').par.Value0
Default:
0
Range:
-16 to 16
Value1 (Value1) Float op('curve').par.Value1
Default:
0.14
Range:
-16 to 16
Value2 (Value2) Float op('curve').par.Value2
Default:
0.28
Range:
-16 to 16
Value3 (Value3) Float op('curve').par.Value3
Default:
0.42
Range:
-16 to 16
Value4 (Value4) Float op('curve').par.Value4
Default:
0.58
Range:
-16 to 16
Value5 (Value5) Float op('curve').par.Value5
Default:
0.72
Range:
-16 to 16
Value6 (Value6) Float op('curve').par.Value6
Default:
0.86
Range:
-16 to 16
Value7 (Value7) Float op('curve').par.Value7
Default:
1
Range:
-16 to 16
Amount (Amount) Float op('curve').par.Amount
Default:
1
Range:
-16 to 16
Offset (Offset) Float op('curve').par.Offset
Default:
0
Range:
-16 to 16
Mode (Mode) Menu op('curve').par.Mode
Default:
0
Options:
time, transfer, external_phase
Interpolation (Interpolation) Menu op('curve').par.Interpolation
Default:
2
Options:
step, linear, smooth
Loop (Loop) Toggle op('curve').par.Loop
Default:
On
Options:
Off, On