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:
LFO:
/\ /\ /\ /\ /\
/ \ / \ / \ / \ / \
/ \ / \ / \ / \ / \ ...and so on
/ \/ \/ \/ \/ \/
ENVELOPE:
| 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..
anyway..
Ethan