- Audio
- Control
Envelope
Purpose
Section titled “Purpose”Envelope is a control-signal AHDSR envelope generator: attack, hold, decay, sustain, release, rendered at sample rate as a control stream. It is not audio DSP; wire its output into any parameter that should follow a gate — filter cutoff, effect depth, a visual. Retrigger laws, looping, and ping-pong extend it from a note envelope into a cyclic modulation source.
Wire a gate or trigger source into the gate or trigger input and the value output into the parameter to modulate. Set the AHDSR stage times, choose a Retrigger law for overlapping gates, and turn Loop on to cycle the envelope while the gate is held.
Inputs and outputs
Section titled “Inputs and outputs”- Input 0: rate — control stream that scales stage times. Optional.
- Input 1: phase — external phase input. Optional.
- Input 2: trigger — fires the envelope on a rising edge. Optional.
- Input 3: gate — holds the envelope at sustain while high, releases when it falls. Optional.
- Output 0: value — the envelope level.
- Output 1: phase — progress through the envelope.
- Output 2: cycle — running cycle count when looping.
- Output 3: pulse — fires when the envelope ends a pass.
- Output 4: active — whether the envelope is running.
Controls
Section titled “Controls”- Attack, Hold, Decay, Sustain, Release — the AHDSR stages. Times in seconds up to 60; Sustain is a level.
- Amount — output scale, bipolar so an envelope can also pull a value down.
- Curve — segment curvature, from snappy exponential to slow-starting shapes.
- Retrigger — what a new trigger does mid-flight:
restartfrom zero,legato(ignore while running), orfrom_current(restart from the present level). - Loop — cycle the envelope instead of resting at sustain.
- Pingpong — alternate direction when looping.
from_currentavoids clicks when triggers arrive faster than the release finishes.- Loop with short stage times is an alternative LFO with an envelope’s shape vocabulary.
- The
pulseoutput can chain into another control op’s trigger input to build multi-stage modulation.
Inputs
-
raterow -
phaserow -
triggerrow -
gaterow
Outputs
-
valuerow -
phaserow -
cyclerow -
pulserow -
activerow
Parameters
Section titled “Parameters” Attack (Attack) Float
op('envelope').par.Attack - Default:
0.01- Range:
- 0 to 60
Hold (Hold) Float
op('envelope').par.Hold - Default:
0- Range:
- 0 to 60
Decay (Decay) Float
op('envelope').par.Decay - Default:
0.2- Range:
- 0 to 60
Sustain (Sustain) Float
op('envelope').par.Sustain - Default:
0.7- Range:
- 0 to 1
Release (Release) Float
op('envelope').par.Release - Default:
0.4- Range:
- 0 to 60
Amount (Amount) Float
op('envelope').par.Amount - Default:
1- Range:
- -16 to 16
Curve (Curve) Float
op('envelope').par.Curve - Default:
1- Range:
- 0.05 to 8
Loop (Loop) Toggle
op('envelope').par.Loop - Default:
Off- Options:
- Off, On
Pingpong (Pingpong) Toggle
op('envelope').par.Pingpong - Default:
Off- Options:
- Off, On