Skip to content

EnvelopeState

Struct

Source: AudioTypes.h

Description

Holds ADSR envelope state for a single voice.

Tracks the attack/decay/sustain/release stages and provides both floating-point and Q15 fixed-point variants to support platforms without an FPU (e.g., ESP32-C3 RISC-V).

Properties

NameTypeDescription
attackSamplesuint32_tSamples for attack phase (0 = instantaneous).
decaySamplesuint32_tSamples for decay phase.
sustainLevelfloatTarget volume at sustain phase [0.0 - 1.0].
releaseSamplesuint32_tSamples for release phase.
sampleCounteruint32_tCounter within current stage.
currentLevelfloatCurrent envelope amplitude [0.0 - 1.0].
attackDeltafloatVolume increment per sample during attack: 1.0 / attackSamples.
decayDeltafloatVolume decrement per sample during decay: (1.0 - sustainLevel) / decaySamples.
releaseDeltafloatVolume decrement per sample during release: sustainLevel / releaseSamples.
currentLevelQ15int32_tQ15 mirror of currentLevel (-32768 to +32768).
attackDeltaQ15int32_tQ15 attack delta: 32768 / attackSamples.
decayDeltaQ15int32_tQ15 decay delta: (32768 - sustainLevelQ15) / decaySamples.
sustainLevelQ15int32_tQ15 sustain level.
releaseDeltaQ15int32_tQ15 release delta: sustainLevelQ15 / releaseSamples.

Methods

void reset()

Description:

Resets all envelope state to OFF.

Released under the MIT License.