Envelopes
Envelopes
What
Originally the overall amplitude changes of a sound event
Later used in synthesis to denote a one-shot (not cyclical) parametric variation
en.wikipedia.org > Wiki > Envelope %28waves%29
Types
Linen
ADSR
Attack
Decay
Sustain
Release
Linear vs. exponential envelopes
Exponential usually sounds "better"
pow((nxtval
/
val),
1.0
/(dur*sr))
Envelopes are usually linked to events
Envelopes start with the event and occasionally slightly later
Triggered vs. "gated/sustained"
Triggered envelopes run through the envelope without stopping
Envelopes with sustain wait for a "release" event to complete, so they can have variable duration
Envelopes on other parameters
e.g. filter cutoff frequency, modulation depth
Usually involves scaling as parameter ranges are different
This scaling can be fixed
or can depend on other parameters, e.g. for filter frequency keyboard tracking
How
counter
Prepare duration in samples, to switch between segments
Precompute increment and add it every sample
or multiply the counter for the current point by the increment to find a delta from the previous breakpoint
breakpoint interpolation
Similar to counter, but always relative to current and next breakpoint
updating envelope on every sample vs. a certain number of samples
The concept of the control block
First implemented by Barry Vercoe in Music360 a descendant of Music V by Max Matthews
Linear interpolation between points in an exponential envelope
Examples
Csound
linen
csounds.com > Manual > Html > Linen
adsr
mxadsr
csounds.com > Manual > Html > Mxadsr
envlpx
csounds.com > Manual > Html > Envlpx
transeg
csounds.com > Manual > Html > Transeg
several others
Gamma
Decay
Env < >
mat.ucsb.edu > Gamma > Doxygen > Html > Classgam 1 1 env
AD
ADSR
SC
Envelope specification separate from the envelope generation
doc.sccode.org > Classes > Env
doc.sccode.org > Classes > EnvGen
CSL
fastlabinc.com > CSL > Doxygen > Classcsl 1 1 envelope