5.13.3 Envelopes
Here's some more information about the concept of a note envelope for
those unfamiliar with sound synthesis terminology, it's all about how
the dynamics of a note are defined (i.e the way in which the loudness
changes during the life of a note)
Graph of a note's volume during it's life cycle:
/\______ /\_______
__/ \_____ ... _______/ \_________
0011111111110000000 ... 0000000111111111110000000000
A D S R AAADSSSSSSSR
The string of 0's and 1's represents the keyon/off state of the voice,
1's indicate the key being held down. The attack, decay, sustain, and
release portions of the envelope are represented by ADSR, this is what
happens:
When the note is first triggered on the volume rises to peak volume at a
rate determined by the attack value.
Once at the full level the decay period starts and the volume dies down
(at a rate set by the decay value) to a level that is set by the sustain
value.
The note continues to sound at this volume until triggered off (the
'key' is released) whereupon it dies down to zero volume at the release
rate.
And so on. Now, with the current voice assignment method, while orbits
are being generated continuously, timing looks like this (with four note
polyphony in this example)
Voice:
1 *111.....*111....
2 .*111.....*111...
3 ..*111.....*111..
4 ...*111.....*111.
5 ....*111.....*111
6 .....*111.....*11
7 ......*111.....*1
8 .......*111.....*
9 ........*111.....
orbit: 12345678901234567
Where:
. = key off (silent or releasing note)
* = note assigned a value and triggered on, attack, decay, sustain
phase
begins
1 = note held on, you'll notice that above there are only ever
four
notes held on at any one time, though more than four may be sounding
if there is a long release value.