**One Knob Pitch Correction / Note Quantization**

You look at consumer vocal processors and have to wonder how much flexibility they give up when dumbing-down the user interface. Power users desire access to key feature parameters, but exposing them can confuse casual / low-information users who want the thing to "just work". All users are generally happiest when the most useful functionality is "curated" and presented in the most useful manner (power users pretty much want it to "just work" as well, and only desire the resort to a deep-dive when it doesn't).

I've wondered how they get a single knob for pitch correction, and this morning I've achieved that, with no real loss of functionality or control. Voila:

The 4th order LPF is gone, and the slew limited LPF has been replaced with a simpler slew limiter. Going through the circuit:

The unsigned pitch number is tapped off and multiplied by 12 (B), which gives a [0:1) note fraction. The fraction can be viewed as unsigned or signed, here we treat it as signed. A logical NOT (C) flips the direction, and fractional multiplication gives the quantization strength (D). The result is slew-limited, scaled by multiplication with 1/12, then mixed back in (E).

The graphs at the bottom show the result (E) of partial quantization strength, full strength, and no strength. I've found partial *instantaneous* quantization to be pretty worthless, so I removed the quantization multiplication. The pitch correction subroutine now checks the slew rate for a value of 0 and bypasses all processing in that case. So low and medium slew rate settings do pitch correction, and higher settings do quantization, with *time* doing the quantization smoothing, rather than an explicit *instantaneous* smoothing function (this is key).

It seems to work as well as anything else I've tried, though it can be quite subtle, even with the slew rate cranked up. Vibrato kind of messes with it, though it doesn't seem to mess with vibrato when set for pitch correction. And it's really simple, with one knob giving the full range of both pitch correction and note quantization effects (including bypass).

============

While pondering the above, I thought of a new interesting construct, but it's currently a solution in search of a problem. The construct is a modulo filter or slew limiter. Say the I/O is 3 bit unsigned and it is steady state with an input of 2. If the input suddenly changes to 5 then the output filters / slews over time 2, 3, 4, 5. But steady state from 2 to sudden 7 produces an output of 2, 1, 0, 7. So if the I/O difference is greater than 1/2 full range, then the output filters / slews in the opposite direction. My subconscious is telling my conscious mind that this is applicable to pitch correction, but my conscious mind can't see a way to it.