As a companion to my simple op-amp AR envelope circuit, here’s a discrete version. It has the same basic functionality – gated input, variable attack and release times – but is made with transistors instead of integrated circuits. Power consumption is very low (just a handful of mA), and it runs from a positive supply of your own choosing. Like its op-amp cousin, it could be powered with a battery, or in a Eurorack system, or you could add it into an existing synth like the Moog Werkstatt as a mod.
The main difference between this and the op-amp circuit, aside from it being discrete, is that I have included a very simple way to set the level of the envelope output (see below for details).
RV1 is Release, RV2 is Attack. The Gate input can be anything over a couple of volts. Negative-going inputs (eg., from a bipolar LFO) will be removed by D1. The output goes to nominally 0V when fully off (closer than the op-amp version, in fact).
R1, R2, R6, R7, R10: 100k
R3, R4: 47k
R5, R8: 560 Ohm
RV1, RV2: 1M linear pot
C1: 1µ non-polarized
D1, D2, D3: 1N4148 or equivalent
Q1, Q4, Q5: BC549C or equivalent
Q2, Q3: BC559C or equivalent
How it works
Compare the first pair of transistors with my discrete gate buffer circuit. A positive voltage on the input turns on Q1, taking the base of Q2 low. This turns on Q2, taking its collector high. This is how we drive our envelope.
Now compare the diode and potentiometer arrangement with my op-amp AR. Once you’re past the transistors, it works in basically the same way.
Q3 inverts the output of Q2, so when Q2 is on, Q3 is off, and vice versa. When the collector of Q2 is high, the capacitor charges through diode D3 and pot RV2 (Attack). When the gate input goes low, the transistors Q1-3 switch off, off, and on, respectively. In this state, the capacitor discharges through RV1 (Release) and D2.
Note the two 560 ohm resistors: one on the emitter of Q2, the other on the collector of Q3. When the gate input is high and the capacitor is charging, current flows through Q2’s emitter resistor; when the gate is off and the capacitor is discharging, current flows through Q3’s collector resistor. These two resistors put a lid on the current flow and limit the fastest times for Attack and Release. The value is a trade-off between current and snappiness. With the values shown, maximum current through these resistors is around 16mA and the fastest rise and fall times of the envelope are around 2ms.
The final two transistors in the circuit after the capacitor are the output buffer; notice the two resistors between them, forming a potential divider. With the values shown, if you run this circuit on 12V, the envelope output will be around 8V max.
There are better ways to set the peak level of an envelope, but my aim here is to keep things simple as a base for experiment.
The most obvious things to tweak are the envelope times and the output level.
The values of the two potentiometers affect the attack and release times, but the envelope can be substantially stretched by using a larger capacitor. It would be easy to add a switch that connected, say, a 4.7µF or 10µF capacitor in parallel with the existing one, which would multiply the envelope’s times substantially (use perhaps a 25V electrolytic, with its -ve terminal to ground).
The two resistors between the output buffer transistors can be adjusted to suit your requirements. If you want full-scale output (ie., envelope peak closer to the supply voltage), remove R9 and R10, and connect the emitter of Q4 directly to the base of Q5. In fact, this circuit will also work with just a single NPN as a buffer (miss out Q4 and the divider resistors, connect the cap to the base of Q5), but amongst other things the ‘zero’ value is less close to actual zero; if you want to experiment with a single transistor here, setting the level of the output can be done by replacing the 10k resistor on its emitter with a pair of resistors as a potential divider, or even a 10k trimmer with the output taken from the wiper.
Feel free to experiment with the circuit in Falstad’s handy online simulator.
A very simple Attack-Release envelope generator can be built with a dual op amp and just a handful of extra components. The input stage is basically the same as my op amp gate buffer, with only its output resistor changed; the rest is a simple low-pass resistor/capacitor setup with an output buffer. Here’s how it works:
The input acts as a comparator. When the gate input goes high, the comparator output goes high, and the capacitor is charged up via D2 and the Attack pot RV1; when the gate goes low, the comparator goes low, and the capacitor discharges through the Release pot RV2 and D3. The diodes directionalise this process, so the attack time is governed only by the Attack control, etc. The output is a very simple unity-gain follower.
With the values shown, attack and release times range from just a couple of milliseconds to around 5 seconds. Larger values for the pots and/or cap will extend the times proportionally, smaller ones reduce them. The 560 Ohm resistor sets the minimum time against a given capacitance.
With an op amp such as the LM358, the output will swing between 0V and approximately 1.5V below the positive rail. If a lower output level is desired, add a potential divider of resistors in the low-mid single Ks after the output buffer amplifier, taking the overall output from their junction.
Supply voltage is not critical, but as mentioned above, the LM358 op amp will swing to around 1.5V below supply at maximum. It does, however, swing to ground too, which when operated on a single supply is necessary in obtaining a correct ‘gate low’ output. If you cannot find a 358, use another op amp which will swing rail to rail, or ground to near-positive.
A circuit like this makes a nice addition to synths with only one envelope, such as the Moog Werkstatt and Mother 32, or Arturia Microbrute. It will run from a 9V battery and is small enough to build into the Werkstatt itself, or indeed any small external box of your choice. You could easily build one for a Eurorack modular system too, and it will run happily on +12V or +15V.
For details of how to modify the Werkstatt, take a look at my Werkstatt page.
Op Amp AR, parts list:
U1: LM358 or similar
D1-3: 1N4148 or equivalent
C1: 1µ poly non-polarized
R1,2: 100k 1/4W resistor (I use 1% Metal Film types, but 5% Carbon are also fine)
R3: 82k —”—
R4: 18k —”—
R5: 560Ω —”—
R6: 1k —”—
RV1,2: 1M linear pot
Input and output connectors as desired.
One of the simplest DIY utility circuits you can build is a gate buffer: you put a gate signal into one end, and get a gate signal out of the other.
Although this might sound unnecessary, there are several reasons you might want a gate buffer:
- compatibility problems between gate/trigger inputs and outputs on different equipment: see my page on the Arturia Beatstep, for example
- the need to trigger multiple devices from one source: passive splitter cables or mults sometimes result in signal loss and therefore unreliable triggering
- tightening up the edges of gates/triggers: for various technical reasons, some trigger outputs are relatively slow to rise and/or fall; in a worst-case scenario, this can skew the timing of down-line devices. A buffer with multiple outputs can deliver a set of tight, sharp pulses simultaneously.
I offer two simple designs here, one using discrete components, the other using an op amp. Both require just a handful of parts, both will run off a wide range of DC supply, including a 9V battery, and both can be made very compact if you ever want to include them inside another piece of equipment as part of a build or mod.
Discrete (transistor) Buffer
The transistor buffer is a two-stage circuit, with each stage inverting the incoming signal.
Think of a gate signal as a logic on, or a logic off. When there is no gate present, the first transistor is held off by its base resistor. The base of the second transistor is therefore tied to +V by the two 47k resistors; as it is a PNP type, it is therefore off, and the output is held low.
Conversely, when the input is high, the first transistor is switched on, and the base of the second transistor is taken low. This pushes the second transistor into conduction, and the output is taken high.
Precise voltage levels depend upon the level of the gate signal going in, and the positive supply rail. The circuit will operate on a wide range of positive DC supply: in a 5V logic circuit, from a 9V battery, a 12V or 15V rail in a Eurorack system, etc. The input resistors and diode provide input protection; so, for example, you can send a bipolar square LFO into it with no ill effects, or use it to make a reliable 9V gate from a 15V one without the impedance issues of a simple passive potential divider. It will also allow you to increase a low gate to a high one, so you could (for example) run a 5V signal into this, powered on an existing 15V rail, and get a 15V gate out. With a standard signal diode and two normal low-power transistors, you can trigger this circuit with just a couple of volts.
Op Amp Buffer
The op amp version of this gate buffer circuit consists of a single op amp stage set up as a comparator: one voltage is compared to another, and the output goes high or low depending which input is the higher.
The potential divider at the inverting input provides our reference voltage. The non-inverting input takes the external gate signal we want to buffer.
When there is no gate signal, or it is low, the inverting input is higher, and the output is therefore low. When the gate signal is high, the non-inverting input is higher, and the output is high.
The circuit is designed to run from a single-sided supply, ie. ground and positive. For this purpose, an op amp such as the LM158/358/324 (single, dual, and quad versions respectively) is suitable as the low output state goes to the 0V rail. Their high output state is around 1.5V below positive supply.
The voltage reference provided by the potential divider at the inverting input should be adjusted for purpose: using a 9V supply, the values given will trigger the comparator at around 1.6V; even with a low battery, this circuit should trigger around 1.2V. With a 12V or 15V supply, replace the 18k resistor with something in the region of 10k-15k. This would keep the trigger level around 2V or a little lower, which is high enough to be a clear ‘on’ signal, but not so low as to be confused with a slightly high ‘off’ signal (the Arturia Beatstep ‘off’ gate signal hovers around 0.6V, for example).
It would be possible to use a dual-rail op amp just as well, which would require the addition of a diode on the output to clip the negative-going signal.
I have used an op amp here rather than a dedicated comparator; devices such as the 311 cannot be directly substituted in this circuit.