..Help .Objects

ADSR Envelope


A 4 stage linear envelope generator.

Pins
io letter name unit description
in T time seconds envelope time
t trigger logic start, restart and release
out = auto envelope

Controls
name description
base linevertical scale
attack decayinitial rise and first falloff
sustainlevel at which to hold
releaseinitial and final release rate

Parameters
name option key description
start pos pstart/restart on pos edge, release on neg edge
neg nstart/restart on neg edge, release on pos edge
no sustainsdon't wait for release trigger
no retriggerronly start when idle
ignore Tionly read T at start trigger
auto retriggerarestart automatically
smallentershow object as an icon

Notes
The vertical height is always 1. The Envelope always starts at 0. Adjust the base line control to adjust.
Ex: Setting the base line in the middle of the display sets the top at +0.5 and the bottom at -0.5. Controls in between the top and bottom are scaled accordingly.

In ABox ver 2.32 the ADSR algorithm was adjusted for more accurate timing. Specifically, output between segments (the corners of the envelope) is now interpolated. This means that at the segment transition, the output will rarely equal the actual value specified by the control circle. As there was no interpolation in previous versions, the ADSR time span was slightly different than that specified at the T input.

Changing the timing caused some previous circuits to operate incorrectly. For the sake of backwards compatability, all old versions of the ADSR are preserved and use the previous algorithm. These can be recognized by the 'old' label at the top left of the object. Copy and paste preserves the 'old' status. Newly created ADSRs always use the new algorithm.




©1999-2008 Andy J Turner
All rights reserved.