I’ve been sitting there, content with my box, for some years, until recently I’ve heard of the Project 447 phaser on an old ETI magazine. It wasn’t perfect by most accounts (the long string of 741 op-amps in series with the signal probably didn’t help noise-wise), but it exploited a CD4049 unbuffered hex inverter as the source of Voltage Controlled Resistors, with the idea behind it that FETs on the same die will be practically matched by nature. Specifically, the ETI phaser uses the NMOS devices: the PMOS are in parallel, since the supply rails are shorted, but they won’t conduct since the gates are biased up from the source voltage.
This amazed me. Not only I hadn’t thought before of using the MOSFETs inside a CMOS inverter this way, but I was happy to find a working example of MOS as VCR in a phaser, something I had contemplated before, since their use as cheaper VCR than JFETs is not unheard of, especially in synth projects, but which I had some doubts about because of the presence of the body diode which strongly harms linearity with anything other than small signals.
Before I knew it, I discovered even more phasers using the same principle, one being the Jen KPS-900 and another being the EHX Bad Stone, a circuit unjustly shadowed by the similar-named Small Stone, but with a beautiful schematic I suggest analyzing, once you can bring some order into it. The former uses the PMOS in the CD4007, the latter the NMOS in the oddball inverter CD4009, but the principle is the same.
Next, I even found a nice series of articles on EDN about FET VCRs, analyzing and demonstrating JFET and MOSFET equally in different applications, including a phaser effect (there’s 5 parts to the series, make sure to use the search function to find them all!).
This is to say that, while the idea isn't certainly new, it's surely a bit neglected, and I hope that in doing this I'm sharing a way for the DIY enthusiast to make cheap and easy to build phasers or other effects requiring multiple VCRs: this was a long journey made up of uncharted territories and violated assumptions, but it brought its results in the end.
We can see that in general we can have resistances from infinite to few hundred ohms with Vgs from 0 to 4V or more and that the conductance is close to linear over a useful range.
The 4069 PMOS is weaker than the NMOS, not being able to go below 1kΩ in these conditions, while the NMOS in the 4049 is even stronger, readily going below 100 ohms with lower gate voltage. This agrees with the common knowledge. I was leaning into using the 4069 already, given I had more of them, but I was glad that the choice was supported by the measurements, giving me control over a useful range of resistances with a less narrow Vgs range. I don’t doubt the following circuits will work with a 4049, but it will require at least an adjustment of the LFO amplitude to compensate for the difference.
- The input buffer and output unity-gain summing amplifier don’t need many explanations: high impedance input, low impedance output (70s phasers had an unhealthy passion for passive summing, leave alone what’s going on with the amplifier at the output of the phase 90).
- The “phase shift” path is made of the usual all-pass filter stages, with the variable resistor to ground instead of in series with the signal. The resistors in the inverting path are largely irrelevant as long as they’re the same, so as usual in these cases I defaulted to 10k, a nice compromise between loading the op-amp and adding Johnson noise (I guess I have an unhealthy passion for that value).
The capacitor and fixed resistor aren’t critical either, just keep in mind that the combination of capacitor and resistor determines the lowest frequency of the sweep (the parallel FET is negligible), the capacitor and the minimum resistance of the FET determine the highest frequency (this is also affected by LFO amplitude and bias to a point).
The resistor also has the functions of biasing the non-inverting input and making sure the drain voltage, hence the Vds, stays there too. Too large of a value will result in audible distortion, probably because of the larger variations in Vds. - The LFO is the two-opamp schmitt trigger plus integrator triangle oscillator. This more-or-less textbook form gives a low impedance triangle wave with linear ramps and is similar to the one in the Boss CE-2 and many others. Another nice thing about it is that it allows good control of the rate with a logarithmic or linear pot, just by attenuating the schmitt trigger output. Unlike in the Boss version, this attenuator doesn’t go to the voltage reference, which caused audible ticking even with generous decoupling, but to a dedicated divider, which also doubles as stopper resistor setting the lowest frequency (the 5k parallel combination of the two).
- The LFO is summed together with the gate bias voltage with two resistors. The bias voltage comes from a trim pot and is made to be at least equal to the source voltage (Vr). This resistor network also attenuates the LFO by the right amount, and the two are inseparable with DC coupling, even if I saw some phasers using a depth control with DC coupling.
This brings me to what I call “leverage”. Why didn’t I make the LFO smaller to begin with, so I have to attenuate it less? By the nature of the schmitt trigger, it works with the op-amp saturation voltages, so it’s roughly centered between the supply rails. Attempting to bias it far from it just breaks it, so its output will be centered around 4.5V. You can think of this as a voltage divider between bias and 4.5V, determined by R11 and the bias source resistance: if I attenuated the LFO less, even turning the bias trim up to 9V wouldn’t result in a high enough bias voltage. That’s why I settled on those values, which gave me the right amount of modulation and allowed me to bias without bottoming out the trim pot.
Actually, I’ve then discovered that the JH 20-pole phaser uses a clever trick with a diode in the schmitt trigger feedback loop that shifts the lfo in the positive or negative half of the supply, but for how cool this is, I didn’t feel like it was necessary as long as I had enough “leverage” to bias effectively.
C4 deserves a few words: it has the double function of attenuating the LFO at high rates, which otherwise results in a “seasick” effect, and keeping this node at low impedance for audio frequencies for the feedback explained below. - The resulting gate voltage goes through a feedback divider for each of the FETs. This has the purpose of reducing distortion caused by drain voltage variations by nothing other than the signal. This is sometimes present in JFET phasers, sometimes not, but it definitely necessary for MOSFETs. As detailed in the EDN articles, half of the signal has to be fed to the gate for maximum cancellation. The resistors are made large compared to both the drain and the LFO+bias impedances.
The only downside of doing this is that the resulting gate drive is half of what’s coming before the resistors, so this means the LFO and bias both need to be larger to compensate. This is achieved with the shown values. - The Vss pin of the 4069 is connected to the voltage reference. This connects to all the NMOS sources, which are all in parallel: not an issue for this application. I didn’t need to connect Vdd, and so the PMOS sources, to anything, since they’re not used and they’re harmless this way.
Since there are four stages now, we can have feedback! There are many possibilities, from any of the outputs to any of the inverting inputs, although some of them aren’t useful. Of the remaining ones, the one shown was my favorite. A 22k resistor was a nice compromise between being audibly different from no feedback and too much feedback that the circuit stops working, but you can try different values. You might think a potentiometer here would allow for variable amounts of feedback, but the inverting inputs are not at virtual ground! This means that as long as the feeedback is connected, even a large resistor or a divider that sends the resistor to Vr will affect the phaser response negatively, unless you want to have both the switch and the pot, which seems unnecessary to me.
The principle of the servo is simple to explain and similar to the one in the EDN articles. The op-amp tries to make the voltage on both inputs equal: since the FET is equivalent to a common source amplifier, the non-inverting input results in negative feedback. I had calculated as first guess a resistance value to center the modulation on of 2.2kΩ, which is 2.8kΩ in parallel with the 10kΩ fixed resistor. If you imagine R25 and the FET as a voltage divider, this means, since R12 is 10 times bigger, that R13 has to be 28kΩ.
In practice, I used a value of 33k because there are some sources of error. One of them is the op-amp offset voltage. The drain and divider voltages are some tens of mV above Vr, so even 1mV might throw things off considerably. The other is that even if R25 is large and there’s the same negative feedback as in the FETs in the phaser itself, its conditions aren’t quite the same. As it is, the Vds of the servo MOSFET has been measured at 19mV. I had to balance these two effects: if I used a larger value for R25 to reduce Vds, this either meant a Vds comparable to the offset voltage or scaling up the R12/R13 divider further, but 10M is at the upper limit of commonly used values. You could use a low offset, low bias current op-amp, but the results will probably need to be tweaked anyway, and R18 is another source of error, being in series with the linearizing 10M resistors, even if I made those larger to reduce the effect.
What matters is that I’ve compensated for those effects already, and you should get a phaser that behaves as intended with any 4069 (or possibly 4049, but remember to adjust the LFO) you plug in.
I’ve lowered the voltage reference to 3.6V because U2D has to output a voltage which is about 3V above that, since the gate drive gets halved by the feedback too. A 4.5V Vr worked, but the op-amp output was too close for comfort to the positive saturation voltage, given also that mine is just one sample of 4069. The MOSFET linearity will probably give issues before this becomes one anyway.
Since this is its first appearance here, it’s worth spending a few words about the single op-amp LFO. The trade-offs is that now the rate control should be C taper, the triangle wave is made from exponential ramps, and the output isn’t nicely buffered so I had to put some care into not loading the output down and making it asymmetrical. Other than this, it’s functionally equivalent and tied with the two op-amp one for the most popular triangle LFO around.
I’ve tweaked the amplitude and rate to my needs. A smaller amplitude results in a more linear triangle wave, but this wasn’t a choice because of the aforementioned “leverage” and the limit on the smallest resistor I could use on the output (increasing R18 increases the bias servo error if you recall). This is also why I suggested a combination of a 50kΩ pot with a 22uF capacitor, instead of the more common and mostly equivalent 100kΩ and 10u. The former combination has lower impedance and can be loaded down further before you start to see the effects, and this seemed a valid trade-off, since you can also just use a 100kΩ pot with the 22uF capacitor: it will just go slower when set at minimum.
One note about capacitor C2: the triangle signal is fed back into the schmitt trigger with a 1M resistor, which isn’t a significant load on it; this capacitor acts somewhat like an integrator and has the very welcome effect of smoothing the sharp transitions of the schmitt trigger output and in the triangle wave itself, reducing the chances of popping. The side effect is that the LFO amplitude increases slightly at higher rates if this capacitor is made too large, but that can easily be countered by C8.
Here's what it sounds like (trim version):
- The output mixer is still unity gain for the dry signal, but has a gain of 3.3 for the “phase shifted” signal. This is to compensate for the attenuation introduced by U1B. In the end though, the signals still get mixed and cancel as before.
The “polarity” switch allows to have the dry signal in phase (2→3) with the “phase shift”, for a classic phaser, out of phase (2→1) for a phaser that swaps the notches for peaks with notches in between, or no dry signal for a vibrato effect. The “6-4” switch takes the output after 6 or four stages. - U1B’s main purpose is to attenuate the signal going into the all-pass filters a precise amount while keeping it low impedance. This was necessary because the distortion introduced by having six FETs was audible on the louder signals. This small amount of attenuation is enough to fix the problem completely also for consumer line levels.
Since I had to accept this small loss in terms of one extra stage and the noise from the attenuation (small as it is in dB), I made the best I could out of this stage and used it as input for the feedback signal, in a manner similar to the MuTron Phase II. This time, we can also have a pot to control the feedback, down to zero, without the output being affected with this still in the circuit but at zero! - The all-pass filters are pretty much the same, with the same notice that the fixed 10kΩ are according to my personal taste.
- The LFO is the single op-amp one described above, with few value changes regarding the loading, attenuation and C14.
- The linearizing resistors have been scaled up, because once you have this many, you start noticing that they’re acting as a resistor of a value of a third of a single one of them (6 series pairs in parallel) dragging the LFO node down to Vr and not allowing to bias as intended. Scaling up to 2.2M solved this issue.
- Feedback is where it gets fun: going from four to six stages, there are suddenly many more viable options (but still some duds), so many in fact that the ones I went for are only a curated selection within the limits of a two-position “feedback” switch and a two-position center-off DPDT “polarity” switch, of which I used the second pole here to change feedback options depending on the phaser polarity. This allowed me to get my two favorite settings for each mode, but means there’s no feedback in vibrato mode. I consider this a fair trade-off since this mode is more of a free extra than anything. One can always go crazy and have something like a 6-position rotary switch to get access to all the options, viable or not, at all times, or an on-on-on DPDT switch wired as SP3T, but for me this is a more than wide enough selection of weird sounds.
The “feedback” pot is linear with R5 and R1 not tapering it to logarithmic: this is intentional because feedback is very subtle in low amounts, so this gives better control over the useful range. The maximum amount is chosen to be high but safe at all settings by these two resistors, but you’re free to increase it further at your own risk. C1 is a trick I got from MuTron: without it limiting the feedback at high frequencies, it was almost guaranteed to have oscillation, either audible or ruining the sound completely.
Here's how it sounds like in a demonstration of all modes featuring both guitar and E-piano:
Since I've recorded them, here's all the usable feedbacks for both polarities:
Turns out that it works in practice! Since only one stage is variable, to get a good sweep out of it I had to increase the parallel resistor, so that the effective value can vary over a wider range. Sadly, the necessary values are too large for a MOSFET, so no 2N7000 phaser (it’s still a valid idea if you want to match two of them and build a classical 2-stage though): I had to use a JFET, but I think an LDR would work just as well if not better, since it has better linearity than any FET even with the large parallel resistor. Here's how it sounds like:
P.S.: "dylan, that's a lot of pictures for our servers!" Don't worry, they're all resized and the total size is about 1MB only