Any Synthesizer is going to use some form of envelope generator to control the Voltage Controlled Amplifiers, and Voltage Controlled Filters. There is the stock ADSR2 module, and several other 64 bit third party modules available.
It’s known as ADSR from the four portions of the envelope:
Attack, Decay, Sustain and Release.
The controls for an ADSR module control:
Attack time, Decay time, Sustain Level, and release time.
Attack is initiated when the module receives a trigger pulse, once the envelope has reached it’s maximum (10V), the Decay is then started, which is controlled by the Decay time. Once the Decay portion of the envelope has reached the Sustain level this is then held until the gate voltage is removed.
The Stock Synthedit ADSR Module.
This module generates a basic ADSR envelope with a linear slope.
There’s nothing special to note as far as using it goes, except you must connect both the Gate and Trigger plugs for the ADSR to be properly functional.
All the default values for the controls are the standard 0V to 10V, however you can set the range of the Level slider control from -10V to +10V which allows you to have the facility for negative (inverted) envelopes, which can be useful when sweeping filter cut-off frequency.
Calculating envelope times versus voltage.
The scale for the Attack, decay, and release plugs is exponential.
The formulae for conversion are:
The time is specified in seconds. This means that the default 0 to 10 volts control range equals a range of 9.8 ms to 10.07 seconds.
Gate and Trigger plugs
The Trigger and Gate plugs have related but different functions.
The Trigger is a short pulse when you first press a key down, it signals the start of the note and triggers the Attack segment of the envelope.
The gate also goes high but stays on till you release the key, this controls the length of the sustain portion of the envelope.
The difference comes in mono-mode when you’re holding one note and press a second. In this situation the keyboard sends a fresh trigger, but leaves the gate unchanged in the on-state. This slight difference from a clean note-on is what allows auto-glide, mono-note-priority and soft-steal modes to work to detect legato playing (one note smoothly gliding into the next).
This is crucial to emulating the playing feel of a classic monophonic synth. That’s why all the sample-playback VSTs cannot sound as accurate as SynthEdit. In the old system used by the ADSR Version 1, the gate served both functions, but it meant there was no way to differentiate between a clean note articulation and a number of legato notes, which a separate trigger pulse allows us to do.
This meant that once the gate was high, there was a need to turn it off then on again, causing a slight delay before the new note started. The new system eliminates this inherent delay giving true sample-accurate note timing.
Note: For correct operation of the ADSR module both Trigger and Gate voltages must be used, which means that the MIDI-CV 2 module should also be used (The older MIDI-CV can be used but the Gate and Trigger plugs on the ADSR must both be connected to the Gate plug on the MIDI-CV module.
Connecting up the ADSR module.
The level control and inverted ADSR envelopes.
The Overall level plug give control over the maximum output level of the ADSR envelope. If a “negative” or inverted envelope option is required then you can specify a minimum of -10 V and a Maximum of +10 V for the level control slider.
The inverted envelope will begin at 0 volts as with the normal option, but will then drop to -10 V, instead of rising to +10 V. This inverted envelope can be very useful when applied to the cutoff frequency of a VCF module.
One point to note here is that the with the standard slider control finding the null (0 V) point between – and + 10 volts can be fiddly. There is a solution to this, but it’s not a standard SynthEdit module, we need to build our own “Center return slider” prefab for this.
The Community ADSR module.
The Community ADSR Module (often called the “curvy ADSR”) allows us to generate the usual ADSR envelope, but control the shape of the Attack, Decay, and Release segments of the envelope.
The voltage range for the Curve plugs is from -5 Volts to +5 Volts which gives us a variation from an exponential curve (-5V), through linear (0V) to a logarithmic curve (+5Volts).
Logarithmic curve:
Exponential Curve:
Using an ADSR module to control a VCFs cutoff frequency.
This is pretty much as per using an ADSR with a VCA, except for the addition of the Cutoff and Resonance controls for the filter.
The TD_ADBSR envelope Module
This is a constant rate ADBSR (Attack, Decay, Break, Sustain, Release) envelope generator module..
About Constant Rate: This basically means ‘speed at which envelope increases or decreases’, it does not mean time. This is how analogue envelopes and most vintage digital synths work. As soon as the envelope reaches its preset level, it switches, so say you put the both the Attack and Break levels at 10 Volts, then the Decay Rate will have no effect.
You may be used to ADSR envelopes where you set the attack and decay rates in time, however this envelope does work in this manner.
The “^2” on the levels is just there as a convenience while still being cheap to calculate, the level sliders on analogue synths do not use linear potentiometers because the human ear does not hear level in a linear fashion.
An example of an ADBSR envelope is shown below:
Attack/Break/Sustain points.
Shape = 0 Volts gives this shaped slope:
Shape = 10 Volts gives an almost linear slope:
When the Sustain Level voltage is higher than the Break Point voltage.
When the Sustain Level voltage is lower than the Break Point voltage.
ADBSR Module plugs.
- Trigger:- (Voltage) Trigger Input. This initiates the envelope. If no trigger pulse is available, use the gate signal.
- Gate:- (Voltage) Gate input the length of this pulse sets the length of the sustain portion of the envelope..
- Attack Rate:- (Voltage) Sets the rate at which envelope moves to the maximum Attack level.
- Attack Shape:- (Voltage) Sets the shape of the attack curve.
0V = Exponential, 10V = approximately linear. - Attack Level:- (Voltage) Maximum level of the attack/decay section shaped internally by x^2.
- Decay Rate:- (Voltage) Rate at which envelope decays to the Break level voltage.
- Decay Shape:- (Voltage) Sets the shape of the decay curve. 0 volts = Exponential, + 10 volts = approximately linear.
- Break Level:- (Voltage) Sets the Break level voltage, the level is shaped internally by x^2.
- Break Rate:- (Voltage) Rate at which envelope moves to the Sustain Level.
- Break Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
- Sustain Level:- (Voltage) The level of the sustain portion of the envelope is set internally by x^2. The sustain portion is as usual controlled by the length of the keyboard gate signal.
- Release Rate:- (Voltage) Rate at which envelope moves to zero volts after the gate signal has returned to 0 volts.
- Release Shape:- (Voltage) Sets the shape of the release curve.
0V = Exponential, 10V = approximately linear. - Overall Level:- (Voltage) Linear control of the overall envelope voltage.
- Output:- (Voltage) Control Voltage Envelope output
The TD_AHDSR envelope module.
This is very much like a standard ADSR module, except that when the Attack section reaches it’s peak voltage it is held for a time which is pre-set by the voltage on the Hold Time plug. The hold time is in no way controlled by the Gate voltage from the keyboard.
Typical envelope from an AHDSR envelope module.
- Trigger:- (Voltage) Trigger Input.
- Gate:- (Voltage) Gate Input.
- Attack Rate:- (Voltage) Rate at which envelope moves to 10 Volts.
- Attack Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
- Hold Time:- (Voltage) 10V = 10 seconds.
- Decay Rate:- (Voltage) Rate at which envelope moves to Sustain Level.
- Decay Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
- Sustain Level:- (Voltage) Level shaped internally by x^2.
- Release Rate:- (Voltage) Rate at which envelope moves to zero volts.
- Release Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
- Overall Level:- (Voltage) Linear control over the overall envelope voltage.
- Output:- (Voltage) Envelope output.