First, I've built this part as in the original and did some measurements with ARTA and Soundcard Scope. Here's frequency response. These are a bit noisy because I've used a very small input to avoid clipping, although I then tried overdriving it and it led to the same exact results (clipped white noise is still white noise). Here's both the VMT and the B3K in all three modes: These measurements mostly agree with simulations. As you can see the notch is much more narrower and shallower than if driven by an ideal source. Probing in simulation shows that's because the such loaded mu amp output peaks right next to the notch. Just as interesting, the gain potential of the mu amp is completely gone, and the output is at unity at about 1kHz (red line shows bypass).
I've struggled for a long time to reach a similar response without the mu amp, with bridged T, hall notch, increasing the source impedance, the loading, adding frequency dependent gain, but I couldn't get a notch that was as narrow or as shallow as the original, although I got close, without being overly complex. Then I took a step back and thought “is a notch this narrow even audible or desirable?”. If you account for the encompassing high-pass, the Q of the notch ends up being about 4.5 or more. That's a very narrow notch, a third of an octave bandwidth, way narrower than what's normally used in audio, which can cause inconsistencies in the response (think of some notes sounding differently than the ones next to them!). But is it audible? I've made a similar filter in DAW and tried both clean and before distortion and if it was doing anything, the effect was drowned out when I switched on the highpass too.
So, I've decided to focus on the highpass response! From the measurements for the VMT, the -3dB point seems to be at about 1.3kHz and the slope is a mere 3dB/octave. Making such a gentle filter is actually more challenging than it seems, but I managed to make a good piecewise response with C6...R11. The B3K was a bit more challenging, because of the switch. Its response, ignoring an even narrower notch, can be summarized by a 8dB/oct lowpass with a cutoff around 250Hz and a treble response that goes between two different lowpass cutoffs and an high shelf. At this point translating this into a circuit that gets close became easy enough. The error is mostly collected below 100hz because of the less steep slope. That's it for the frequency response, but we're all but done here. As seen from the measurements, the gain is actually not much at all, being unity at 1k (since I've made the response to be the same otherwise, one point is all we need to consider). Since this network has to be before the gain stages, this led me to a couple of interesting choices, the first being of having the filter after just a buffer, which is the same buffer that splits off the clean signal (previously the buffer was in parallel to an op amp amplifier driving this filter for noise reasons). This put me at just -6dB at 1k, and that's why to compensate for this, the gain of the op-amp stage following it has been doubled in gain, while keeping the same frequency response at all gain settings.
The second curious choice is of course D1. The last thing I checked with the mu amp was headroom: it started to show clipping with positive input peaks over 200-300mV, while negative peaks remained clean. No big deal right? Well, for one thing that means I can't get any gain into it because that's already the forward voltage of a schottky and it doesn't go lower than that. The second thing is that the input headroom remained about the same at different frequencies, even if the output amplitude was different because of the filtering. This meant that the diode had to go before the filter, or clipping would be much lower at lower frequencies.
I've checked THD in ARTA on the clean output to be sure the diode load doesn't add undue distortion to that, and the results were indistinguishable from the unloaded output. It sure sounds clean . The 1k resistor has been chosen because it doesn't cause frequency response errors in the filter whether the diode is conducting or not.
But first I had to set myself a goal, so I breadboarded the CD4049 amplifier with the same values as the original, calibrated the software Soundcard Scope with my multimeter, and used the XY mode to get some sort of transfer curve. This was done with inputs up to 2V peak, with larger capacitors to flatten the frequency response even though the test signal was well in the pass band anyway and this didn't make much of a difference. This confirmed the well known fact that the 4049 has an asymmetrical output swing, with the NMOS pulling down harder and off-center bias. This is a very interesting curve, with asymmetrical hard clipping on the negative half and soft clipping on the positive. I've repeated this with both high and low impedance load and it didn't change, confirming that the inverter has good output impedance. I've also repeated the test with different sections.
In addition to this, I've scoped the output and reference waveforms with different inputs from 10 to 400 mV to get the small signal gain (16) and at the same time checked THD to confirm the onset of clipping, which agrees with the picture in being about 200mV peak either way. Also, I've checked the frequency response of the stage in ARTA for both versions: You might ask why the cutoffs don't correspond with those calculated from basic op-amp theory. You might also ask why this stage has the same gain in both versions. The reason for both has to do with open-loop gain. We're very far from the ideal infinite gain, in fact it's between 30, the most quoted figure, and 25 which is about what I've calculated from the measured closed loop gain of -16 and the values used. For the first question this means that the input impedance isn't zero, so the cutoffs will be affected. For the second it means that we're operating very close to the open loop gain, with diminishing returns the more we try to increase it. This meant the b3k version, which you might expect to have a gain of -23, instead had about -18. I did measure both and you can see the slope is slightly different for small signals, but they're so close that for the purposes of my approximation they're basically the same, and that's why the resulting stage is the same in both except for frequency response.
To craft this stage I had to give myself some rules in what I was allowed to do with the graphical plots, otherwise I might end up trying everything to line up two very different curves and fool myself into thinking I had reached my goal. They go like this:
-the measured curve evidently has some DC offset due to the asymmetrical waveform. To account for this, I've measured the DC bias to be about 3V. The NMOS can pull down very close to this, but surely not below the negative rail as the -3.5V lower limit can make you think! This means the zero y coordinate is y:-0.5V. The zero x coordinate will be whatever the intersection with the curve is, in this case a bit more than x:-0,5V
-I'm interested in input headroom, since the same input signal has to result in the same clipping, not in the output amplitude, which will just mean the output is just louder or quieter. This means I'm not allowed to scale the x axis (input signal has to be the same), but I'm allowed to scale the y axis, because I'm not interested in the absolute output amplitude, just that the transfer curve changes it proportionally once it starts clipping. I'm also allowed to invert the output, as long a certain input results in a certain amount of clipping and a positive input clips hard while a negative one clips soft.
-this means I can start by setting a threshold for hard clipping, which will be lower than the actual zero by its amount, scale the output by the ratio of this threshold to the original's 3V and the soft clipping region will be scaled by the same amount. The actual value for the threshold isn't important, as long as hard clipping happens with positive input peaks above 200mV (the difference between the zero x coordinate and the hard clipping knee), so that if the curves overlap and the positive input swing from zero is the same, the negative one has to be too (this means the zero point doesn't lie in a different place in both curves); also, once scaled to the same output, the slope for small signal gain has to be the same in both, so that the ratio between clean and clipped gain is preserved.
Even knowing this, the job wasn't easy. I've tried many combinations of hard and soft clipping diodes, resistors and diode ladders, every time scaling them and checking against the original curve, before settling on a rather simple configuration that gave the best results.
The 2.2k output resistor and the chain of two 4148 and a schottky set the hard clipping threshold for positive input peaks. In the simulated XY curve for the whole op amp stage and for a simple configuration of resistor and diodes this ended up being 1.6V which is about what you'd expect from the sum of the forward voltages. This allowed me to account for eventual DC offsets.
The soft clipping wasn't as easy. Feedback diode clipping worked well to approximate most of the curve, as long as I chose the appropriate threshold and gain (this whole exercise turned out being to juggle the hard clipping threshold coordinates against the soft clipping ones, while keeping the small signal gain the same once scaled to the original output), done by D4 in the Mk2 schematic, but wasn't enough by itself, since after clipping gain continued being unity (or actually 1*the scaling factor) forever. In simulation, the op amp eventually running out of output swing provided a good second hard limit, but this wasn't enough in practice, so that's what D8 and D9 are doing a great job at. This leaves out D3, whose job is just to prevent the op amp output to clip on positive peaks. It seems a small thing, since the diode chain is already clipping that, but removing it changed the measured curve drastically, altering both thresholds and making the clipping harder. Here's the result, with inverter in yellow and surrogate in red, scaled by about 2 times following the rules I've listed, and inverted since my amplifier is non-inverting (polarity of the clipping threshold is respected, since they're referred to the input: positive peaks hard clip, negative ones soft clip). The slightly quieter input isn't an issue when seen in dB, there's still plenty of output and the volume I ended up setting was still about halfway on the knob.
There's one last thing to get out of the way for the Bk3: since the gain is low, changing the cutoff with the grunt switch in the feedback path leads to premature shelving with a non-inverting amplifier. That's why this has been done at the input instead.
I'm very happy with this result and while this is a specific case, you can apply this method to get inverter-like clipping in other applications too, just by tweaking the gain and the frequency response.