Envelope Circuits: a simple discrete AR design

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).

Discrete AR envelope schematic

Discrete AR envelope schematic

Parts List

R1, R2, R6, R7, R10: 100k
R3, R4: 47k
R5, R8: 560 Ohm
R9: 24k
R11: 10k
R12: 1k
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.


Boss DR-55: external trigger input mod

By default, the Boss DR-55 does not receive any kind of incoming clock. The ‘FS’ footswitch input takes a latching footswitch that starts and stops the existing clock, but that’s it. Although you can clock other equipment from the DR-55, it would be nice to be able to use an external clock to sync the Boss to, which would allow the Boss to trigger yet more devices with its CSQ and DBS outputs (active on Accented steps only and every step, respectively).

My mod as detailed here does exactly that. By replacing the existing FS jack socket, adding a small circuit, and replacing a jumper, we can safely trigger the DR-55 from an external trigger.

A quick internet search will turn up an existing clock input mod which is simpler to do and requires no extra parts; however, it puts the RAM at risk of damage from high triggers, and it does not sync the Boss’ own DBS output. It also requires ‘arming’ by hitting start before external triggering.

My own mod, though more complex, overcomes all these issues: the trigger input is protected, both the Boss’ trigger outputs maintain their correct functions, and triggering occurs without ‘arming’. The only two functional disadvantages of my mod are that you must set the Boss’ tempo to Fast, and to reset the pattern when stopped mid-way you need to remove the trigger plug. I’m going to blog another small mod which will overcome the latter inconvenience.

The Clock Modification in detail

Below is a diagram which shows everything you need to know about building this mod. Below that is a parts list. Key to this is the replacement FS jack socket; it needs to be TRS (ie. a stereo jack), with single pole changeover switches on the tip and ring contacts. I used a Lumberg KLBPSS3 (datasheet here, Farnell UK stock page here).

The additional circuit can be made very small indeed (3 rows * 8 holes on stripboard), and there is plenty of room for it inside the DR-55, particularly towards the right-hand end. The photos below illustrate my own placement.

There is one jumper to be removed, the one immediately to the right of the Variation switch. The replacement connections for the upper and lower point of this removed jumper are shown in the diagram, and you can see in the photos how I wired this up.

In brief: remove that jumper, solder the two points to two jack pins; build the extra circuit, and solder that to the jack and to the main PCB; replicate two of the pre-existing connections from the jack to the PCB. That’s it. I also stuck a small folded piece of card to the PCB to stop the extra circuit from shorting against components.

Boss DR-55 clock input mod

Boss DR-55 clock input mod

The image above is a jpeg; click here for a PDF: Boss DR-55 clock input mod revised

Parts list:

1 * TRS 2-pole changeover jack socket – eg. Lumberg KLBPSS3
2 * 47k resistors – I used 1/8W for their smallness
1 * 10nF capacitor – I used a ceramic, again for smallness, but polyester film etc. would be usual
1 * 1N4148 signal diode or equivalent
1 * BC549C transistor or similar standard NPN

Here’s the modified DR-55 (also incorporating my DC supply mod):

clock modded DR-55 overview

clock modded DR-55 overview

And here’s a close-up of the clock mod:

clock modded DR-55 close up

clock modded DR-55 close up

Here are two angles to show the extra circuit more closely:

clock modded DR-55 circuit A

clock modded DR-55 circuit A

clock modded DR-55 circuit B

clock modded DR-55 circuit B


How to use your new trigger input

The new trigger input will accept any positive pulse over a couple of volts. It’s edge triggered, so the pulse can be any length over a couple of milliseconds. The operating principle is to use the DR-55’s existing clock, but to gate it on for a very short duration; normally when the clock is gated off again, the pattern resets, but the new jack socket enables us to disable that by breaking the reset connection when a jack is inserted.

As I mentioned earlier, the Tempo must be set to Fast (ie. all the way clockwise) for correct function. This is because the DR-55’s clock, once triggered, finishes its pulse cycle. If this is longer than the incoming trigger cycle, it will ignore the new trigger; if we set the speed dial to its fastest, we can clock the DR-55 at any rate up to its natural maximum.

The pattern will cycle round as usual, but if you stop mid-pattern, new triggers will continue where they left off. To reset the pattern at this stage, you need to unplug the trigger jack and hit Stop. This is not ideal, I know, and I will be making an amendment to correct this later.

For now though, this mod works fine, as shown in the (slightly rubbish) video below:

Boss DR-55: a 9V DC input modification

One of the drawbacks of the DR-55 as it comes unmodded is the power supply. In its original form, the DR-55 takes only batteries, and though this might be good for reducing cable clutter and having to find yet another wall-wart, it does mean you need to keep a regular stock of fresh AAs, and can guarantee that just when you want to use it, your DR-55’s batteries are too drained for the unit to function correctly.

Luckily, it is a relatively simple process to modify the DR-55 so that it takes a commonly-found 9V DC supply instead. I provide instructions for this below. It’s not the only way to do the job, but this is how I did it, and it works just fine. Modding the DR-55 in this way means it no longer accepts batteries, which means two things: 1) you will need access to a 9V adapter, and 2) pattern data will not be retained on power-off. Given that filling the memory of this humble machine can be done in less than five minutes, and I never use this outside my own home studio, I never found memory retention to be an issue. It would be possible to design a DC input that also catered for memory backup via battery, but I’m not going there.

There are two basic stages to this modification:

  1. Making a 9V DC input: the basic voltage supply circuit
  2. Installing the Mod: adapt some wire links on the output jack and PCB

Making a 9V DC input

Because the DR-55’s RAM can be killed by voltages higher than around 7V, we take a 9V input and regulate it down to between 5V and 6V. I chose to use a 5V regulator propped up with a diode to give around 5.6V, but you could also use a 6V regulator and omit D2. The input jack I used is a 3.5mm mono minijack of the kind often used for audio and CV interconnects, mainly because I had lots of them and the holes are easier to drill than the larger ones needed for a plastic-bodied insulated barrel connector. Use whatever type you prefer, but note the polarity of your incoming DC, and don’t connect the +ve to the case… with a tip-positive 3.5mm jack, the sleeve of the input jack is connected to the shell of the socket, so it makes sense for that to be the ground. Some barrel connectors do likewise.

Here’s the schematic:

Boss DR-55 DC input mod schematic

Boss DR-55 DC input mod schematic

Here’s the final circuit built onto stripboard. It will be panel-mounted using the socket:

DR-55 DC input build

DR-55 DC input build

Installing the Mod

Now we have a simple DC input, we could just solder the +ve and Gnd outputs to the corresponding solder points on the main board – that is, where the battery clip attaches. Black is ground, red is positive. This works, but you still need to insert an audio cable to turn the DR-55 on. I chose to remove that ‘feature’, as there are no longer any batteries to protect from accidental drain. It’s a simple mod that just means a couple of wiring changes.

The diagram below shows the required re-wiring. The audio output socket is wired by default to both ground and audio signal, as well as having two pins wired to act as a switch when a jack is insterted. We want to retain the audio and ground connections, but not the switch. We remove those wires and instead bridge the corresponding points on the PCB.

DR-55 DC output jack and PCB mod

DR-55 DC output jack and PCB mod

Here’s a photograph of the full mod (note the wiring):

DR-55 DC input wired and complete

DR-55 DC input wired and complete

I damaged a track while desoldering the battery wires, which is why the red wire goes to the un-numbered hole next to point 9. They’re directly connected, happily.

Below are some photos of the hole I drilled for mounting the new DC input, and the final appearance when mounted and labelled with cheap Dymo (should have gone with black… oh well):

DR-55 DC input enclosure drilling

DR-55 DC input enclosure drilling

DR-55 DC input socket and label

DR-55 DC input socket and label

So there you have it. My humble DR-55 now works from a regular 9V DC wall-wart supply, and switches on whether or not its audio is connected. The hardest part is putting the DR-55 back together again…


Boss DR-55: getting inside

The DR-55 is easy to get into, but I’ve found that removing the screws on the front panel makes it harder. I recommend the following procedure:

  1. Unclip the battery holder if present
  2. Remove the knobs (they should just pull off)
  3. Unscrew the nuts securing the 1/4” jacks
  4. Remove the screws on the rear and front edges
  5. Prise apart the shell, taking care with the jack wiring
  6. Remove the screws on the rear of the PCB that secure it to the standoffs

The washers are easily misplaced. Those standoffs are better left attached to the body. Note the arrangement of the jack wiring when you gain access, as it’s easy to trap wires on reassembly. The Boss DR-55 Service Manual also recommends avoiding certain wire placement due to possible interference.

Here’s the DR-55 in the nude, complete with a broken wire or two:

Boss DR-55 internals top

Boss DR-55 internals top

Boss DR-55 internals underside

Boss DR-55 internals underside



Boss DR-55: an overview

Boss DR-55 photo

Boss DR-55

The Boss DR-55 is a humble little black box that runs on batteries, and provides the user with 8 memory slots for programmable rhythm patterns. Kick, Snare, and Rimshot can be programmed as desired, as can an Accent control that boosts the volume of the steps on which it appears. The Hi-hats are non-programmable and appear at every step, every other step, or not at all, as governed by a switch. The sounds themselves are generated by analogue circuits, and are simple but punchy, sounding similar to the CR-78. The only other control over the sounds is an overall Tone control, which is kind of a one-knob EQ and emphasises the lows or highs as swept along its rotation.

The patterns are in two halves, labelled A and B. The Variation switch sets whether the pattern plays only its A part, only its B part, or cycles between A and B. Each part is either 12 or 16 steps in length, as governed by the memory slot selected. There are 6 * 16-step memories and 2 * 12-step memories. Generally, each step is assumed to be a semi-quaver or 16th-note. In 12-step patterns, the pattern is simply shortened to 12 steps and therefore at a given tempo will play three quarters the length of a 16-step pattern at the same speed; there is no onboard way to define the pattern as being in 3/4 time, or in triplets, etc. The onboard clock allows running speeds of around 30-300 BPM, if 4/4 time is assumed.


Patterns are programmed by selecting Write Mode and tapping the Beat/Rest buttons for the length of a pattern. The sounds are programmed separately, as governed by the Sound switch, allowing independent writing of the Kick, Snare, Rimshot, and Accent. Each time a button is pressed, the step is written with the appropriate data, and the pattern moves on to the next step. Both the pattern memory and the A/B switch function during programming just as during playback, allowing either or both parts of a pattern to be programmed. Programming is exited by switching back to Play Mode. All sounds are heard during programming.

All changes made to the running of the patterns are made in real time from the panel. If the pattern or the pattern mode is switched during playback, the change is instantaneous.

Rhythms can be started and stopped either from the panel or via a footswitch, connected to a 1/4” jack on the right-hand panel.

Connections and Power

Though the DR-55 cannot be clocked from another device, it can act as a master clock for other devices. There are two outputs: DBS, which puts out a 5V pulse on every step, and CSQ, which puts out a 5V pulse on every Accent hit. When the CSQ output is connected, the Accent is disabled from the onboard sounds. The Accent level control has no effect on the output pulse level.

The only other output is a 1/4” mono audio jack, which carries the mix of all sounds. There is no way to independently set their levels.

The DR-55 runs on 4 * 1.5V AA batteries, which are fitted in a holster that attaches to what looks like a regular PP3 clip. However, it must be noted that the memory IC used in the DR-55 is only tolerant of low voltages (no more than around 7V max), and a fresh 9V PP3 will destroy it permanently and irreversibly. The effect of a blown memory seems to be two-fold: patterns cannot be written, and sounds appear arbitrarily/on every step. The only solution is to replace the memory. Of course these ICs are obsolete and hard to find. Look after your DR-55!

While good batteries are kept in the DR-55, memory is retained during power-off. Low batteries affect memory retention and sound. It should also be noted that the DR-55 will not power up without a jack plugged into the audio ouput.

To sum up, the DR-55 is an enjoyable but limited machine. It is a cheap source of a basic set of CR-78 style analogue percussion sounds, and is fun in combination with synthesizer arpeggiators and analogue sequencers.

Examples of the DR-55 in famous recordings include Carnage Visors by The Cure, and Truth by New Order.

Here’s a short video of me programming the DR-55. It was made to illustrate a working sale item, but shows effectively how cumbersome by modern standards the programming is. Simple rhythms are relatively painless to input, but anything remotely fancy takes a bit of thought. Best to write them down first, or trust to chance and see what happens…

Apologies for the terrible sound quality. You get the idea, though.

Synth DIY: Envelope Generators

An envelope’s basic purpose is to generate a changing control signal that ramps up and down between predetermined levels. Controls typically determine the rate of change of parts of the slope and/or the level a slope will reach. Some envelopes include controls for hold times for a certain stage of the envelope, or delay times before activation.

A more thorough explanation can be found in Sound On Sound’s Synth Secrets series, a very useful reference for many aspects of synth programming.

Various synthesizer envelope controls

Various synthesizer envelope controls


Even a cursory search shows there are so many envelope generator circuits to be found online that it might seem wasteful to present a few more. However, I wanted to collect a few of my own designs here to illustrate different kinds of envelope circuit, and to offer different ways of achieving them.


Envelopes by type

AR (attack-release):

I will add more items to this list over time.

Envelope Circuits: a simple AR design using op amps

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.


Operational Amplifier Attack-Release Envelope

Operational Amplifier Attack-Release Envelope Schematic


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.

%d bloggers like this: