Wednesday, 20 November 2019

Synthesizer Build part-4: THE ENVELOPE GENERATOR or ADSR

This was the first Envelope Generator I built but I no longer use this design myself since I discovered the Digisound 80 ADSR and the Yusynth 7555 ADSR both of which are much better designs with the Digisound design also using the AS3310 chip (or the CEM3310).

Original text of this article:
The Envelope Generator is generally better known as the ADSR which stands for Attack, Decay, Sustain and Release. These are the four phases a note goes through when you press a key on the keyboard. The attack is the speed of the initial rise of the note, once you press the key. Decay is the time it takes for the note to go from the peak attack level to the sustain level. Sustain is the level of the note as you keep the key pressed down. It is usually a bit less loud than the first instance of the note being played. Then we have Release and that is the amount of time it takes for the note to fade out once you let go of the key. So the envelope generator produces a signal that determines the volume of the note over time and this signal is being used by the Voltage Controlled Amplifier (VCA) which interprets it as an output level. In some Minimoog synths it is also called the Loudness Contour.

I decided to build this ADSR using the chip series that I plan to use for the most important components of my DIY synth, the AS33xx series of chips. The AS3310 is the ADSR chip and it costs way less then its CEM counterpart. It's about €6,- 

So I looked up the datasheet and used the circuit that was presented there. I made the following stripboard layout for it. This layout is verified, I used it for my build. (All potmeters viewed from the front.):

(Last revised: 16-March-2020: Removed direct potmeter connection to 5Volt. Revised potmeter wiring. Trigger when not used shorted to Gate via internal switch in trigger input socket.)

Print only:

This design works very well and does the job it needs to do. It has a few little quircks though. The potmeters for instance. I used normal linear type potmeter and that works but it would be better to have reversed logarithmic or anti-logarithmic potmeters because the difference between 1 second and 10 seconds on the Release for instance is only a few degrees of turning the knob. But once you're used to this it's not really a problem. The Sustain potmeter is at its maximum at about 2/5th of its maximum throw. If you turn it further the Sustain level rises but the attack won't be able to reach it. So if you have Attack set to, for instance, one second, it will rise normally and after one second it will suddenly jump to the Sustain level. I've got some oscilloscope pictures below to illustrate this.
The external trigger input is normally shorted out through a switch in the Trigger input socket. So if there's no trigger cable attached, the trigger for the chip is provided by the Gate signal through the 3nF capacitor. The AS3310 needs a simultaneous gate and trigger signal to function. So if you plug a cable into the trigger input but you don't provide a trigger signal, the Attack parameter of the ADSR will not work! So this is not a malfunction, this is how it's supposed to work.

I added a few extra's to this design. First there is the option to output a signal that is twice the voltage of the normal output (10Vpp instead of 5Vpp). You can use this, together with a passive attenuator in the mixer panel, to drive a filter's resonance or other parameters of the synth. Then there's also an inverted signal output, to add to the options of driving parameters of the synth. This goes from 0V to -10V.
All this takes place at the opamp on the lower left of the circuitboard. You can use the old favourite TL072 for this or the TL082. Pins 1,2 and 3 together with the two 100K resistors form the 2x amplification. You can use other resistor values as long as you use 2 resistors of the same value. Then the input signal is split at the non inverting input and goes, via a 100K resistor to the other side of the chip where the opamp is set up as an inverting buffer. Both opamp outputs have their own output jack socket. The normal 5V ADSR output is a separate socket (of course).

And finally I added a manual trigger option, at first I added it so I could put a gate signal on the gate input for test purposes, but then I thought this would be handy to have anyway so I added the switch to the final panel. I decoupled the manual trigger signal from the gate input socket with a Schottky Diode so no voltage goes into the circuitry that delivers the normal gate signals so as not to damage it (although this is probably not necessary). I used a Schottky diode because their voltage drop is only 0.2 Volts so it doesn't detract too much from the usual 5 Volt gate signal.

Here's the E.G. mounted in my synth. You can see that I doubled the output sockets. There's 2 outputs for normal 5Vpp ADSR and 2 for either 10Vpp or Inverted -10Vpp I also installed a Gate output and a Trigger output. The Trigger output is connected to the Gate output via a 3nF capacitor and the Gate output is simply switched in parallel over the Gate input. I will however install a opamp buffer for the gate output in the near future.:

Here are some oscilloscope screenshots showing the function of each variable:
This is the normal envelope CV at 10Vpp.

Varying the Decay time:

The picture below shows the quirck I mentioned earlier where the Sustain level is set higher than the Attack can reach and so after the Attack cycle has finished the Decay is skipped all together (because there is no Decay if the Sustain level is higher than the Attack level) and the envelope jumps to the Sustain level. You can clearly hear the jump in volume in the audio. You can use this to your benefit though because it sorta has a percussive quality to it. Anyway, if you don't want this, just turn the Sustain down a bit. Problem solved. You can also limit the maximum resistor value of the Sustain potmeter by adding a resistor or trimmer to pin 3, but you'll have to experiment to find which value works best.

Lowering the Sustain level:

Increasing the Release time:

And finally switching between the inverse envelope (which was set to 0 to -5V in my ADSR but to 0 to -10V in the stripboard layout) and the 10Vpp envelope.

Okay, that's it for this one.
I hope you enjoyed this article and leave a comment please if you found this helpful! Much appreciated! Also, any questions? Put them in the comments or contact me on Facebook. I'm a member of the 'Synth DIY' Facebook group and the LMNC Discussions FBgroup and also the "Synth DIY for non engineers" Facebook Group all under my own name Eddy Bergman.
Stay tuned for more build reports and click 'follow' to be notified of new posts to this website.


  1. with this design anti log pots would be an option? or are you suggesting if the design were changed it to use anti log pots it would benefit?

    1. I mean that using anti-log pots with this design would be better. You'll have better control of the parameters.