Advanced Envelope Module
An easy to use ADSR envelope will be added to AudioGL. The envelope currently available will be renamed to the 'Advanced Envelope Module'.
The purpose of an envelope is to add life to a synthesizer. Envelopes can control volume levels, filter levels, and anything else that you feel like controlling. By controlling parameters with an envelope, a synthesizer can make a wide range of interesting noises.
Working with the Advanced Envelope Module
This envelope module allows you to create any pattern that you desire. In fact, the module allows you to create eight different patterns, which you can switch between at will.
The envelope module can then be connected in Modulation Mode, to most of the parameters in your project, and those parameters will be modulated by the pattern that you have created.
The envelope module can also control the gating of an instrument. To use the envelope for gating, you will have to use it's sequencer output in Module Mode, and you will have to create a Release Function for your envelope pattern.
Connecting an Envelope Module (Module Mode)
Instructions on connection modules can be found in the Module Mode article.
An envelope will always be connected to a Sequencer Module. The sequencer will control when the envelope module is activated and deactivated.
To perform envelope gating, the envelope module's output should be used. If you want an instrument to stop playing the instant a note is released, you should use the sequencer output to run your sound generating modules. If you want to use a Release Function then you should use the envelope's output to run the sound generators. See Fig 4.0.
Connecting an Envelope Module (Modulation Mode)
Instructions for connecting modulators is outlined in the Modulation Mode article.
|0 - 7||
This parameter controls which curve the envelope module is currently playing. The envelope can store up to eight different patterns, but only one of those patterns can be played at a time.
In the envelope editor, there is a 'curve' textbox which allows you to select which curve you are currently editing. The 'curve' parameter follows the same numbering scheme.
If the 'curve' parameter is set to '0', then you are modulating with 'curve 0'. If the 'curve' parameter is set to '1', then you are modulating with 'curve 1', and so on.
If the 'curve' parameter is set to a fractional value, then AudioGL will round the parameter to the nearest whole number.
As a side note: if you decide to automate this parameter, you should not use Parameter Filtering.
Working with the Envelope Editor
Opening the Envelope Editor
In Module Mode, simply double-click on the envelope module whose editor you want to use. The editor will appear. This functionality will be extended to include Parameter Mode as well. But right now you have to be in Module Mode :(
Closing the Envelope Editor
Exit the envelope editor by clicking outside of it, or clicking the 'X' in the top right corner of the editor.
Editing a Curve
Curve editing is similar to automation editing. See the Automation Editor article for details.
There are two key differences between editing an envelope curve and editing automation:
1. The first point of an envelope curve will always be locked to '0' on the timeline. This point cannot be moved in the time direction.
2. Envelope curves have a Sustain Point, which is user customizable.
Zooming In and Out, Working with Snaps
The envelope editor's zooming and snapping systems are identical to that of the Automation Editor.
Changing to a Different Curve
The envelope module contains 8 curves. To switch to a different curve, change the value in the 'Curve' textbox to the curve you want to edit. The first curve is denoted by the number '0' instead of the number '1', because that's how it is.
Attack and Decay
All of the points prior to the sustain point are referred to as 'attack' and 'decay' points. You can use them to create the pattern described above, or you can just make something up.
The Sustain Point
The sustain point is highlighted in red. Once this point has been reached, the envelope module will stop, and stay at the same level.
To set the sustain point, deselect all of the points. Click on a single point. Click on the 'Set Sustain' button, and the selected point will become the new Sustain Point.
All of the points following the sustain point are referred to as the 'release function'. The release function can be any shape that you want, and can also be as long as you want.
The instant that a note is released, the envelope will jump to the release function. Once the end of the release function has been reached, the note will be gated.
Feature not available yet.
Loops can only be applied to the attack and decay section of an envelope pattern. To use a loop, click the 'Loop Mode' button, and set the timeline indicators to the range that you want to be looped.
Copying and Pasting a Pattern
Feature not available yet.
To copy and paste curves, just select the curve that you want to copy with the 'Curve' textbox. Click the 'Copy Pattern' button. Switch the 'Curve' textbox to the curve that you would like to paste into. Click the 'Paste Pattern' button, and the curve will be replaced with the one you have copied.
The scaling of modulation values is described in the Modulation Mode article. The advanced envelope module features a range of '+2' to '-2' (see Fig 4.0), which means that the highest amplitude of a curve can be '4'. However, for most applications, the amplitude of a curve should not exceed '2'.
Some parameters, (for example: the 'Octave' parameter in the Oscillator Module) can be pushed beyond their limits when modulating them. In this instance, it makes sense to use the full amplitude of the envelope module.