In Part 1 I outlined how to make a very simple discrete white noise generator. In Part 2 I’m going to expand that into something a little more interesting.
To colour the noise, simple passive filtering is sufficient. Originally I was going to put a switch here with a couple of different RC networks in place for basic high- and low-pass, but instead opted for a potentiometer to fade between them. The filter circuit below is inspired by part of the classic EMS VCS3 synthesizer, though is not identical. The pot sweeps from high pass at one end, through to low pass at the other, with a balance in the middle.
R4/C4/R5 and R6/C5 form low- and high-pass passive filters respectively. The pot pans between them by proportionally grounding one, or the other, or somewhere in between. The two networks have the same cutoff frequency, and that remains the same as you sweep the pot. It’s really just a balance control, between high and low frequency content.
Now we just add a volume control and one more stage of amplification to buffer the output. The overall output from the whole circuit, with these components, is about 5v p-p maximum. This varies as you sweep the filter. Feel free to play with the gain – line level audio will hover around 1v p-p, modular signals nearer 10v p-p.
You can download the full schematic as a PDF here.
Please Note: the schematic below includes corrected R and C numbering in the first stage. The schematic posted in Part 1 accidentally starts the numbering at 2 instead of 1. The component placement and values, however, should be correct throughout.
CAN I USE A DIFFERENT VOLTAGE SUPPLY, eg. 12v or 15v?
The short answer is ‘yes’.
A single-sided DC supply is fine for the transistor circuits here, and 9v or more is sufficient to allow breakdown noise generation. If you use a dual supply, opamp stages would make for an efficient circuit with very easily controlled gain.
HOW DO I SELECT A TRANSISTOR?
Pick out any NPN you have at hand, connect its base to 0v and its emitter through a resistor to your positive supply. Leave the collector free. Power up and use a scope to monitor the noise at the emitter. Choose a resistor between 100k and 1M. Lower values give greater noise level, to a point. Too high resistance, and you won’t see a suitable noise source. The results listed in Part 1 for different devices were based solely on some quick practical tests, and are to be taken as a guide only.
You should be able to use pretty much any common general-purpose NPN in this manner, though don’t forget to pay attention to the pin arrangement as this varies across different devices.
Here’s a photo of the circuit in development on a breadboard. The scope shows the white noise output, the meter shows current consumption. Note the 9v PP3 battery providing power.
Finally, here’s a couple of photos of the finished device, housed in a stompbox-sized enclosure, and with an LED added to show power on. The audio output is a 1/4″ mono jack, and the power input is a 3.5mm minijack. Not the most common style for 9v, but they do crop up, on old DOD pedals for example, and some EHX. It’s just what I had lying around.
The second photo of the pair shows the interior. You can see how the circuit fits easily enough into a small enclosure. The eagle-eyed reader may notice a component difference or two – that’s because the black box is a version I made some time ago, and I decided to recreate and update the design for this blog.
This circuit gets is name from the way it charges, then discharges, a capacitor. Think of it like breathing: inhale, exhale. The charge on the capacitor is the rhythm of the breath.
Watch this in action here: Relaxation LFO simulator
Download a PDF of the schematic here: Relaxation LFO schematic
This example uses two op-amp stages, run from dual supply rails. Let’s consider just the first op-amp for now.
It has something in common with a comparator – the output will flip high or low depending on which input is higher. Here we’re using feedback to control this operation.
Imagine the output of the op-amp is high. From this, feedback charges the capacitor. The capacitor takes time to charge up through the feedback resistor, with the charging being faster with less resistance (actually here we’re using one fixed resistor and one variable resistor so the user can change the charging rate). When the voltage present at the inverting input (-) goes higher than the voltage at the non-inverting input (+), the output flips low.
Now, the capacitor slowly ramps down because of the negative feedback from the low output. When the voltage at (-) drops below the voltage at (+), the output flips high and the cycle repeats.
With the values shown, the LFO ranges from about 0.3Hz to 30Hz, or 30 milliseconds to 3 seconds per cycle. This is a good starting point for experimentation.
Some Technical Detail
Looking at the simulation, we can see a square wave at the output of the first op-amp, and a triangle wave at the top of the capacitor. Ignore the second op-amp for now.
The output voltage of the op-amp will vary depending on your supply rails and which device you use. The popular TL07x devices, for example, will not swing fully to either rail.
If you take your ‘square’ LFO wave from this point, it will likely be hotter than you need. Using a TL07x on 15V rails, your LFO output would be in the region of 27V peak-to-peak, which is silly. We could add a few more parts to drop it down to something more practical.
The two resistors connecting the output of the op-amp to its (+) input act as a divider to determine the level at which the signal flips direction. If they are equal, the flip point will be half the op-amp’s output voltage, etc. You should adjust these values to get the right output level for your needs. A typical modular LFO might be +5V to -5V, for example. Useful resistor values might be in the range 10k to 100k or thereabouts, but absolute values are not critical. It’s the ratio that counts. For example, if your rails are +/-12V, and your op-amp thereby swings to +/-11V, you could use a 12k resistor from output to (+), and a 10k resistor from (+) to ground, which would give you a +/-5V LFO output (11V*10k/10k+12k = 11*10/22 = 5).
We can take the square LFO output from the junction of these two resistors, instead of directly from the op-amp output, and it will be the same peak voltage as the triangle. We just need to buffer it to prevent problems arising from connecting it to some other input somewhere.
The ‘triangle’ wave available at the capacitor is not really a true triangle, as the rise and fall are both slightly curved. This will be more pronounced the closer to the rails your flip point is. It probably won’t matter, and you might not even notice, if you’ve got something like a 5V flip point on 12V or 15V rails.
We can’t take the triangle wave directly from the cap; we need to use a buffer so as not to load it. This is the second op-amp.
We can use one buffer for both waveforms, and just add a switch to select them. You can then use the output of this buffer to feed multiple destinations without trouble. Doing it this way means we can have a useful LFO with just one dual op-amp chip and a handful of extra parts. It’s a small circuit that is cheap to build, and with only one knob, one switch, and one socket required, you can fit them into a small panel space. Of course, you could omit the switch and use separate buffers for each waveform, or just tap off one waveform if you don’t need the other. You should be easily able to adapt this circuit to your own needs.
Finally, how do we change the speed range of the LFO? Once we know the peak voltage level, we can change the values of the capacitor and the negative feedback resistor/s. We can use a variable resistor here, though we’ll still need a small fixed resistor at one end to give a limit to the maximum speed. A higher resistance means a slower LFO. A 10k resistor and a 1M pot give a 1:100 range; if you keep the 1M pot but make the fixed resistor only 1k, for example, your range will be 1:1000, with the slow time more or less the same – the smaller fixed resistor sets the fast limit. When you’ve decided on your speed range, pick a suitable capacitor to determine the absolute speeds. A higher capacitance means a slower rate. With the aforementioned resistor values, something in the low microfarad range is a good starting point.
The capacitor should be non-polarised, as it will be charged above and below 0V. You can get non-polarised electrolytics easily enough, and the little polyester film caps are fine too, though they are less common in the >1µF range. Make sure the voltage rating of the cap is more than the voltage swing you’ll be giving it.
Next time I’ll talk about integrating LFOs.
There are three ways to get audio from your Werkstatt: the VCO direct out, the VCF direct out (both on the pin header), and the main audio out (the 1/4″ jack on the rear panel).
The VCO Out signal is a sawtooth or pulse, depending which wave the VCO is switched to, at 0-5V. This is pure, dry VCO with no further processing, though of course it will be pitch- and/or pulse-width-modulated, depending on your modulation routings. The VCF Out is taken directly from the output of the filter, bypassing the VCA, and is nominally -2V to +2V. The main audio out is at typical line level (a couple of volts peak to peak), and comes through the filter and VCA.
If you want to use the Werkstatt as an extra oscillator for a modular, for example, you’ll probably want to use the VCO direct out. If you’re running the filtered sound into an external VCA for more varied amplitude modulation or to use with a high-pass filter maybe, you will probably want to take the Werkstatt’s audio directly from the VCF out. If you’re using the Werkstatt as a standalone expander, the main audio out will do just fine.
If signal levels were the same all the way along, none of this would be a problem. However, as with other aspects of the Werkstatt’s design, it needs some tweaking to integrate perfectly. Here’s how.
VCO direct out
Let’s say you’re using the VCO direct out. Eurorack has typical VCO signals of 10 volts peak-to-peak (see Doepfer’s Signals in the A-100 section, for example), centred around 0V (that is, -5V to +5V). To get the closest match sonically we want the Werkstatt’s output to match the other oscillators you’re using. Not all modules with mixers on board will boost as well as cut their inputs, so we can add a small circuit to give a true -5V to +5V VCO Out on the Werkstatt. The schematic below shows both the VCO and VCF mods. More on the VCF shortly.
How It Works
The VCO out mod is a basic non-inverting amplifier with an offset to make the positive-only signal bipolar. The gain is set by the two 20k resistors (1+20k/20k = 1+1 = 2) and the unity-gain reference point is at 5V. That is, 5V in gives 5V out. 0V in would be a difference of -5V from this reference point, so this is multiplied by the gain of 2 to give a difference of -10V, which taken from the +5V reference gives -5V out. In this way, the 0-5V input becomes -5V to +5V out. You can see it in action at this link. Below is a screenshot of the simulation.
Likewise, if you want to run the Werkstatt’s VCF output into an external module, boosting the signal to match requires just a small circuit, almost identical to the first. The signal level drops as resonance is increased, but to keep our circuit simple we won’t worry about that. The schematic is on the same sheet as the VCO output, posted earlier on this page.
How It Works
This is also a non-inverting amplifier, but this time with no offset as the VCF signal is already bipolar – all the amplification happens around a 0V centre point. Positive signals get more positive, negative signals get more negative. The VCF direct out is normally about 5V peak to peak at maximum, so we just double that to get the more useful 10V range. The gain is set the same way as the previous circuit, and we get an output of -5 to +5V maximum.
Installing the mod
I built both these circuits onto a small piece of stripboard mounted onto the panel with one of the minijacks. There’s just enough room, as can be seen in the photos. This allows the use of both halves of a dual op-amp so nothing goes to waste. There’s also plenty of room on the experiment pads at the top of the Werkstatt’s PCB, though you may find it a bit cramped if you’ve already got a couple of mods in there like I have…
The photos show the locations on the PCB of the various supply rails you’ll be wiring up to: -9V and +9V to power the op-amp, +5V for the VCO amplifier reference, and GND. These are all labelled on the top side of the PCB anyway so it’s easy to find them. I shared the ground that my existing mods were already using, which is connected to the nearby screw post via a solder tag. See my CV mod for details.
U1: TL072 or equivalent
R1, R5: 10k (1/4W 1% Metal Film used here, but it’s not critical)
R2, 3, 6, 7: 20k
R4, 8: 1k
jacks, wire, stripboard: as per your own choice
I’ve already blogged about the reasons you might want to mod your Werkstatt, and have posted a list of mods here, so to complete the VCO/VCF/VCA trio, here’s the VCA input at last!
How it Works
This is a very simple mod, and just replicates the existing patch header input. All you need is a 10k resistor, some wire, and a jack socket.
The easiest point to solder to on the board is JMP62. This is located just above the Decay pot. This point is where incoming VCA CV signals are passively mixed. It’s probably best to solder the new parts to this jumper on the underside of the PCB, which you can see on the photos of the wiring:
As the Werkstatt already has a pin for VCA modulation on its patch header, you might think this mod seems less immediately useful than the VCO or VCF CV inputs. The main issue is that there is no way to simply switch off the Werkstatt’s own VCA – you can select EG shaping, or ‘on’ for drones, but you can’t bypass it for use with an external envelope. What does this mean in practice, and why bother adding a CV input for it?
If you’re using the Werkstsatt with a modular, you’ll have more interesting envelopes than the attack-decay type on the Werkstatt. You might well also have something that will give an offset. It should be possible to use a negative offset to counteract the Werkstatt’s ‘on’ VCA CV, and mix in a more interesting envelope signal; setting the Werkstatt’s VCA to ‘on’ and feeding this CV input with that mix will then allow you to contour the Werkstatt’s VCA as you like.
It would also allow you to use the Werkstatt’s own patchbay to feed the VCA with its LFO, and simultaneously blend another LFO in with this CV mod. Mixing different LFOs gives a lot of movement to a sound, and can be very enjoyable to play with. You can also sequence the VCA level this way, while retaining other modulation via the pin header.
As always, my mods are not definitive – the best thing to do is experiment, and adapt, and find out what works for you and this excellent little synthesizer. Enjoy!
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.
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 [EDIT: No I’m not! I sold both my 55s, thereby halting this particular project].
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.
The image above is a jpeg; click here for a PDF: Boss DR-55 clock input mod revised
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):
And here’s a close-up of the clock mod:
Here are two angles to show the extra circuit more closely:
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 [EDIT: project halted, see above. I have no current plans to do any further work on the DR-55].
For now though, this mod works fine, as shown in the (slightly rubbish) video below:
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.