Low Pass Gate with Trigger Processing
Low Pass Gates are kind of a secret sauce in modular synths. A purely analog circuit that exploits components’ imperfections, they can’t really be modelled digitally and are too inconsistent to be included in brand name synths. As a result, they don’t really exist outside of modular synths and the occasional semi-modular.
The thing I love most about LPGs is their response to pinging. Send a brief trigger to the CV input and it will create a short percussive sound that rings out naturally. If you tweak the amplitude and duration of your triggers, it will change the LPG’s response. I wanted to create an LPG that allows for easy manipulation of the ping qualities. Let’s take a look at the circuitry, in two parts: the LPG, and the trigger processing.
The Notorious LPG
LPGs are generally built around one specific component; the vatctrol. A vactrol consists of an LED (light emitting diode) coupled with an LDR (light dependent resistor), sealed inside a light-proof enclosure. When current flows through the LED, it shines a light onto the LDR, changing the LDR’s resistance. It’s basically the simplest voltage-controlled resistor around, which makes it very handy.
However, there are some issues with vactrols that prevent them from being too reliable. First, there is a lot of variation from one unit to the next in terms of the resistance range and the response to light. Second, the response is imperfect and nonlinear.
The most basic version of an LPG consists of just a vactrol, a resistor, and a capacitor. It doesn’t need power and since it’s so simple, it is a perennial favorite of synth DIY beginners.
R1 is a current limiting resistor for the LED. C1 and the LDR together form an RC lowpass filter. The audio passes through this filter while CV lights the LED, which in turn determines the resistance of the LDR. The resistance determines the filter’s cutoff frequency. If C1 is removed from the circuit, then this becomes a vactrol VCA.
I’m not interested in a passive module though, I want more features. I downloaded a bunch of LPG schematics and found that they are all very similar. It turns out LPGs today are pretty much all clones of the Buchla 292. The circuit more or less looks like this:
U1A and the components in its feedback loop drive the vactrol’s LED; this is the control section of the circuit.
U1B and U1C form the audio path; C3 and C4, together with the vactrol’s LDR form a two pole filter. Connecting R11 and R14 to ground turns the LPG into a VCA.
U1D and the components around it provide resonance.
The vactrols should provide at least 10M resistance when off in order to prevent signal bleed. Many people like VTL5C3 vactrols. I like to roll my own to save money, I use red LEDs and GL5549 LDRs inside black heat shrink tubing.
The “deep switch” (SW2) is another method of dealing with signal bleed. If your vactrol isn’t closing all the way, you can use that switch to dim the LED.
In Buchla’s terms, Gate means VCA and Lowpass means filter; so the name Lowpass Gate refers to the mode that is both filter and VCA.
I tested out the circuit and it sounded great - no surprise there. Now to put my own spin on it.
I decided to simplify things a bit by stripping out the VCA and filter modes, leaving only the combo LPG mode. I also found RV3 less than useful, so I replaced it with two trimmers to set the upper and lower bounds of the Cutoff pot (RV1). Finally, I plan on adding a dedicated Ping input - more on that later. Here is what the LPG section of my module looks like:
The Ping Input
The most basic ping input should consist of a comparator followed by a gate to trigger converter. This way, a trigger will be generated any time the input goes over a certain voltage.
I used the LM393 for the comparator because it is unipolar, so it outputs 0V when the non-inverting input is above ~1V. D2 is to prevent negative voltages from damaging the IC. R27 is a pull up resistor that is required by the LM393. C13 and R28 form a high pass filter, which isolates the rising and falling edges of a gate, and D4 is a rectifier that gets rid of the falling edge. All this together converts any input into a nice trigger.
Now I want to be able to manipulate these triggers to create a dynamic response from the LPG. My first thought was to use a vactrol VCA to control the amplitude of triggers - this would be kind of thematically consistent with the LPG.
It worked okay, but not good enough unfortunately. When I tried using velocity from my keyboard to control the ping amplitude, I found that the response was delayed. Each time I pressed a key, it would respond to the CV from the previous key press. I realized that the vactrol was introducing a lag to the CV, which meant that by the time the CV adjusted to the new value, the short ping was already over.
I had to switch to a more responsive VCA. I went with the classic discrete transistor VCA, as I didn’t want to add a dual or quad package IC when I only needed one VCA. There has already been a lot written about this circuit, Yusynth’s explanation is a great starting point if you want to know more.
This worked much better than the vactrol VCA. It uses quite a bit more components but they are all extremely common and cheap. However… the effect of modulating a trigger’s amplitude didn’t sound as good as I hoped. It worked, but it just didn’t have the sound I was looking for. I wanted to retain the naturalistic response of an LPG, but this approach just made the sound louder or quieter in a not-particularly-natural way.
OK - time to try Plan C. Instead of modulating the trigger’s amplitude, I’ll try modulating its width. This will require a few sub-circuits but they are pretty simple, The basic idea is to run the trigger through a simple slew limiter to get a linear decay, then run that through a comparator. This will output a pulse whose duration is determined by the comparator’s reference voltage.
The slew limiter (U4D and U6B) is a simplified version of the circuit used in 3xSlew. The pot is replaced with a fixed resistor, and the diode allows rising voltages bypass the slew limit. So when a brief trigger is sent through this, it outputs a sharp rise in voltage followed by a linear descent.
At U6C, the pot and CV voltages are summed, inverted and offset - this is because we want a low voltage to result in a short trigger, and a high voltage to result in a longer trigger. However, for a shorter trigger the comparator requires a higher reference voltage. Inverting and offsetting the voltage gives the desired result.
I tested this out and once again it worked well, but still didn’t sound natural. However - I found that modulating both the pulse width and amplitude together produced exactly the sound I was looking for! I incorporated both circuits into the LPG and loved the result. See the complete schematics linked at the bottom of the page for the full circuit.
Interface Design
I decided to include individual knobs for amplitude and width, but only one CV input that affects both in tandem. This way you can set up an initial trigger shape, but when you modulate it you get that natural sounding response.
The final decision I had to make was how to label everything on the panel so it makes sense intuitively. I want it to be clear which controls only affect the Ping input, if you aren’t pinging the filter then these won’t do anything. So I called them Ping Height and Ping Width - I hope that is descriptive enough.
For the CV control, I wanted to call it “Accent” but unfortunately that wouldn’t fit on the panel. I had to find another word to describe its functionality. At this time, I gained a new respect for Make Noise and their ability to come up with quirky, descriptive names for features that only exist on their devices. I ended up calling it “Oomph” as I felt that communicated the function reasonably well while being short and also kind of inviting.
I toyed with the idea of including a mode switch to toggle between LPG and VCA. But it turns out that the VCA mode is much quieter than the LPG (which seems counterintuitive since the VCA should have more harmonic content). If I were to include that feature, I would want to add an amplifier to bring the VCA level up to the LPG. That would mean adding another op amp IC to an already crowded board, as well as a 3PDT switch, which as far as I know don’t come in packages small enough to fit behind a standard eurorack panel. It would just be too much reworking. Maybe down the road I’ll figure out a way to add that feature but right now I am 100% satisfied with the LPG as is. It sounds great and does exactly what I hoped it would from the beginning.