Building a looping ADSR

I built a Eurorack module yesterday: the AI Synthesis Looping ADSR.

It’s good to have two envelope generators; you can do things like use one to control the amplitude of your sound with the VCA while the other independently modulates the filter cutoff, for example. But also, this envelope generator can do more than the one in the Mother-32.

The latter has two knobs, controlling Attack and Decay times, with a Sustain switch. With the sustain switch off, playing a note results in an envelope that rises to a maximum and then immediately falls to zero, with the rise and fall times controlled by the knobs. This is a decent simple model of what happens with instruments like pianos, guitars, or drums — ones where you set a vibration going and then let it decay away. On the other hand, with instruments like winds or bowed strings, or the human voice, you don’t just start the vibration, you feed it. It continues as long as you blow air or bow the string, and you can vary the breath or the bowing to make the sound get louder or quieter or even to oscillate in loudness; the loudness envelope can be very complicated. On the Mother-32, your best approximation is with the sustain switch on, giving an envelope that rises to a maximum, stays there, and decays to zero when you release the key (or otherwise the envelope generator gate is turned off). That’s quite a simplification.

An ADSR envelope gives you a slightly more advanced model. Here there are four envelope parameters: Attack, Decay, and Release times, and Sustain level. The envelope goes from zero to maximum (with a time governed by the Attack knob), then falls away (Decay) to a lower level (Sustain) where it stays until the key is released, at which point it falls back to zero (Release). Real instruments do tend to have a strong attack before the lower sustain level, so this gets you slightly closer to real-instrument behavior.

That’s what the AI Synthesis module does when you have its switch in the “ADSR” position and plug in a gate. If instead of plugging in a gate you plug in a trigger, and set the Sustain level to zero, then it gives you a percussive Attack/Decay envelope. (If the Sustain level is nonzero it falls to that and stays there, which is probably not a very useful behavior.)

The looping feature is interesting. With the switch in the “Loop” position, and no gate plugged in, the module retriggers itself: Attack and Decay are followed by another Attack and Decay, ad infinitem. Essentially it becomes a low frequency oscillator, one with an odd waveform governed by the Attack and Decay knobs, whose sum determines the frequency. With a gate plugged in, it does the same thing, but only when gated.

How useful is this? I don’t know yet. I do know this: If you want for instance to get a tremolo effect by modulating the VCO frequency with the LFO, since the LFO is free running you have no control over whether a given note will start at the low pitch or the high pitch or in between — the LFO could be at any phase when the note starts. Use the looping ADSR, though, in gated looping mode, and the oscillation will always start when the note starts. (You can’t really get a trill behavior this way, though, since for that you need a square wave modulation.)

Something I didn’t really think of until just as I started building is this: You can’t use an external envelope generator to control the Mother-32 VCA in place of the builtin EG. The Mother-32 lets you switch the VCA between EG mode, controlled by the builtin EG, or On mode, always on; presumably what’s happening is you’re switching the control voltage input between the EG output and the +5V rail. That gets summed with the CV input on the patch panel. What you can’t do is have the CV input patch point alone control the VCA. So you can control the VCA with the builtin EG and the filter cutoff, for instance, with the external EG, but not vice versa. If you want the latter you would have to add an external VCA module to the setup.

My build went pretty well. The first time I plugged it in and switched it into loop mode I saw the LED flashing on and off, meaning it was, indeed, looping! Unfortunately, although changing the Attack knob changed the rate at which the LED brightened, the Decay knob had no effect on the fading. I quickly discovered a solder bridge between the Decay pot terminals. Fixing that made the Decay knob work.

To test ADSR mode I really had to plug it into the Mother-32. Having it modulate the oscillator frequency gave a good audible presentation of its behavior. Here I found the Release knob also was having no effect, and it measured zero ohms across the terminals as if it too had a solder bridge, but visibly there wasn’t one. I used a solder wick to reduce the amount of solder on the joints, thinking I might have to remove the pot entirely to see if it was faulty. But then the resistance measurement went up to where it was supposed to be. I never did figure out where the problem had been but it had gone away: Good enough!

The module works fine in ADSR mode. In looping mode I’ve had some problems. It’ll work as expected for long periods and then suddenly it’ll get stuck and stop looping until I switch to ADSR and back to loop. Build problem or design bug? Don’t know, but for now at least I’m not too concerned about it. It mostly works.

One thought on “Building a looping ADSR

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s