ADSR

Read with AI
All docs in one file (llms-full.txt)
ADSR #Signal #Node

An envelope that can hold its value for as long as Gate is open. When Gate becomes true, it rises from 0 to 1 over Attack seconds, falls over Decay seconds to the Sustain level, and holds there. When Gate becomes false, it falls from the value at that instant to 0 over Release seconds. The curve shape is chosen with the Curve dropdown, and the same Ease is used for all four segments (the same list as Easing).

The Trigger input is for sources that have no gate (beats, hit detection); right after it opens, it closes automatically once Attack + Decay have elapsed. The result is an AD envelope plus Release, where Sustain takes effect as the landing point of Decay.

  • Attack default 0.05 s / Decay default 0.2 s / Release default 0.4 s (negative values are treated as 0 in all three)
  • Sustain default 0.6 (clamped to 0-1)
  • Curve default OutQuad
  • Envelope is 0-1, On Release End fires the moment the release ends and reaches 0

Retriggering does not preserve continuity of the value; it always rises again from 0.

Gate only looks at the moment the value changes (false→true / true→false). Plugging in an output that keeps sending true every frame (a “playing” flag, etc.) does not cause it to re-open, and Attack completes normally.

Video

Input ports

Port IDType
Gatebool
Triggertrigger
Attackfloat
Decayfloat
Sustainfloat
Releasefloat

Output ports

Port IDType
Envelopefloat
On Release Endtrigger

Scriptable members

PathType
gateInputbool
attackInputfloat
decayInputfloat
sustainInputfloat
releaseInputfloat

Synapse Apps (scripting)

await synapse.modules.create({ type: "ADSR" })

Pages linking here

Also referenced from