Envelope Generators

By: Ethan Duni

Envelope generation isn't too difficult, once 
you know the basics. The idea is similar to an 
LFO, i.e. you have a modulation source that is 
more-or-less automated to produce a varying 
control signal in time. The difference is that 
while an LFO produces a repeating waveshape, an 
envelope is (in its most common form anyway), 
unique in time.  Examine this ascii-matic:


   /\      /\      /\      /\      /\
  /  \    /  \    /  \    /  \    /  \
 /    \  /    \  /    \  /    \  /    \    ...and so on
/      \/      \/      \/      \/      \/


| A |D|    S     |    R
  /  \___________
 /               \
/                 \_______________________ 

Notice the four little lines above the envelope?  
They separate it into sections:
1. Attack (A)
2. Decay (D)
3. Sustain (S)
4. Release (R)
(in that order).  

How it works is this: when you hit a note, the 
attack section starts and the envelope goes up 
to the peak value.  When it reachs that, we enter 
the decay section, in which it decays down to a 
constant level, called the sustain.  Here it sits
until you let go of the key, at which time you 
enter the release section, where the envelope 
decays back down to zero.  

So, when you program an envelope generator, you 
usually have 4 main parameters, "attack" "Decay"
"sustain" and "Release" (which is why this kind 
of envelope generator is often called an "ADSR").  

The attack, decay and release parameters all tell
the generator how long each stage should last. so, 
for instance, a small attack setting would cause it 
to shoot right up to full value as soon as you hit 
the key, and a short release setting would cause it 
to cut right off when you let go of the key.  

The sustain parameter tells the generator what level 
the sustain portion should be at (since its duration 
is dictated by you letting go of the key, it's 
pointless to specify any kind of length here). 

Let's look at the example of an envelope generator 
being used to control volume.  With a long attack 
setting, the note will take longer to "fade in".
The sustain setting will control the volue the note 
plays at while you are holding the note, and the 
release setting will control how long the note takes 
to "fade out".  The decay setting will control how 
long it takes to get from the loudest volume down 
to the sustain level.  

Obviously, different relative settings are more 
suitable to modeling different instruments (this
is why there are those envelope generator presets 
in the s2000 like "piano" and "synth bass").  

For instance, a piano note dies off very quickly 
when you let go of the key (due to the damper 
moving back against the string), whereas a guitar 
rings for longer (unless you mute the string).

Of course, there are more complicated kinds of 
envelope generators, like the multistage ones 
in akais.  In the multi-stage generator, you have 
the freedom to simply specify four different levels 
and the time it takes to reach each one, rather 
than having an "attack" stage that automatically goes
to peak value and a sustain level that sits there 
until you stop playing the note.

There are even more complicated versions out there, 
such as "DAHDSR"s (Delay-Attack-Hold-Decay-Sustain-Release) 
or e-mu's function generators, which are similar to 
the four-stage akai multi-stage envelope except with
8-stages, each of which can be programmed to jump to 
any other segment depending on the value of a given 
modulation source and each of which can have any of 
63 "shapes" (instead of the straight lines i've been 
drawing to connect points on the envelopes, it uses 
different curves, zig-zags or random lines-most 
generators use a simple exponential).  

Also, the level of a given segment can be, instead of 
a constant value, a bounded random value, a given 
difference from the previous segment's value or even 
a bounded random difference from the previous segment's 
value.  This system allows you to use the function 
generator as an envelope, an arpeggiator or a combination 
of all three, many parameters of which can respond to your
playing.  With 2 of these generators (as well as 2 regular 
LFOs, 2 regular volume envlopes and one regular envelope) 
along with the morpheus' 200 different kinds of filters 
(all of which have at least 2 modulatable parameters, 
if not three), things can get pretty wild.. though, as you 
can imagine, it is something of a pain in the ass to 
program really fancy function generator curves on a 
2X16 LCD.. 



Goto Top of Article

Article List

Home Page