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.

Now of course the envelope output is a control voltage so it doesn't mean that you need to use it for the above mentioned purpose. You can connect it to anything that can be controlled with a control voltage like the filter cut-off or the resonance or the pulse width of a squarewave. This opens up a miriad of options but let's not get ahead of ourselves here. If you're just starting out with synth building, you need the ADSR to open the VCA and the fancy stuff will come later.

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.

  2. Hey Eddie
    I had a question about the extra in- and outputs you have on your finished module. Did you just put the extra ADSR output in series with the first one? Did you also do the same with the gate and trigger outputs, just connecting them to the inputs? Also I wanted to ask if you have a full schematic of the build, as it is on the bradboard.

    1. Yes the all the extra in and outputs are as you thought, connected in parallel. The schematic is the Datasheet schematic for the AS3310 chip. Just click on the word 'Datasheet' in yellow at the top of the article. Mind you this was the first ADSR I ever built and it is not my favourite. If you want a really good one, build the Digisound-80 version with the AS3310 chip or, even better, the Yusynth ADSR with the 7555 chip. They are in the menu. They work much better. The main problem I had with this ADSR is that the potmeters don't work linearly. Small changes in turning the potmeters makes for huge changes in time. Don't get me wrong, it'll work fine once you get used to it. It's just not my favourite. I want you to know that before you start building.

    2. Btw, the extra outputs at 10Vpp and the inverted outputs go through an extra opamp so they are independent of the other outputs.

    3. Okey thank you for that. I already built most of it, so it's already too late, but im using anti log pots, so mabye that will help. I didn't build the Digisound one, because it was quite complicated and I'm building these modules for my graduation proect in High School and this is enough for the moment but. In the future I will definately go after one of those though. I'm analyzing what happens in the schematic, mostly at the opamps, in my paper, and due to my limited amount of knowlage a simple moddule that does the job will be enough but thanks for the advice.

    4. Ah okay, well with anti log pots you'll be okay anyway. It'll work much better so no problem there.