I went through a long process of indecision and reversed decisions and revised decisions on my first Kosmodrome envelope generator. (There will be a second one before long, but I haven’t even pretended I’ve decided what it’ll be.) What I finally — if it really is final — landed on is the Precision ADSR by Kassutronics. This is more or less René Schmitz’s Fastest Envelope in the West with some improvements. Most notable is its cure for most of the latter’s habit of not decaying back to 0 V, or at least not very fast — despite its name. The Precision ADSR still has a bit of that going on, due to the nonzero resistance of transistor switches, and Davor Slamnig has a design that addresses that with some MOSFETs, but I decided the Kassutronics approach is good enough for me, at least for now. I’ve breadboarded it.
Which allowed me to test some changes to the design. One is a trivial matter of adding a switch to select between two different integrating capacitors, giving shorter and longer time ranges. With 1M potentiometers, the 1 µF cap Kassutronics used gives maximum RC times of 1 s. Which is fine for many purposes, but sometimes you just want a really slow envelope. So I plan to allow you to switch to 10 µF for up to 10 second RC times.
I tried several capacitor types on the breadboard, by the way. I found that tantalum and aluminum electrolytics didn’t charge up to the full 8 V the 555 timer puts out — I don’t know why — and they leaked away some voltage on not-too-long sustains. Not a huge amount, and the tanty was slightly better on both counts than the aluminum. But a 1 µF polyester film cap blew the doors off both, charging right up to 8 V and holding it there. Unfortunately, the 10 µF basically has to be electrolytic (or multilayer monolithic ceramic, which has other problems, or ten film caps in parallel, and there’s not that much space easily available on the PCB).
Another change is a retriggering input. Send it a trigger while the input gate is on and it’ll make another attack and decay on top of what the original envelope was doing. This is just a matter of inverting and buffering the trigger and sending it to the 555 trigger input while leaving the gate unchanged.
The third big change is looping. Put the module in looping mode and it forces the sustain level to zero. When the envelope goes below a low threshold it retriggers itself. The result is a series of attack-decay envelopes, one right after another — which you can think of as an odd sort of low frequency oscillator. If a gate source is plugged in, it loops only when the gate is on. With nothing plugged in, it loops all the time. The way this is done is with a 3-pole switch: One pole connects the output of a comparator, which turns on whenever the envelope amplitude drops below threshold, to a copy of the retrigger input; another assigns a +12 V normalization to the gate jack, so the looping is always enabled if nothing is plugged in; the third disables the sustain pot and sets the sustain level to zero. That’s it.