Improved Envelope Damping & Pitch Correction, Preset Conversion
OK, I gave the Subscope type velocity one last college try and was somewhat successful, but it needed a lot of gain to get an envelope out of it, and to make that playable it seemed to need a really big volume field - without that it was pretty squirrely as the high gain amplified any and all volume hand movements. Maybe I'm missing something essential, but it doesn't really enthuse me, and isn't a good fit with my knee / envelope generator scheme as it stands.
Instead I took a closer look at envelope damping. For the extra knob spot I coded up variable VLOC damping location, and now the DAMP knob is scaled identically to the FALL knob, with DAMP timing kicking in when the volume hand is past the point set by the VLOC knob (pre knee, so it corresponds to hand location rather than volume level). This is quite versatile and working better than I thought it would, and I'll have to make a video soon showing it off. I did the same volume based rate switching thing for the pitch correction subrate, except in that case I'm using the post knee volume level and a fixed level of -48dB, and that's now working a bit better too. Never know when you'll stumble on a new basic approach that can generally improve things.
I modified the librarian software to translate my preset files to the various new knobs / ranges / topologies / etc. and got that meat grinder working today. Some subtleties here and there get a bit lost in translation, but it's mostly just touch-up work, and it never hurts to revisit those sorts of details.
My accordion patch uses maximum pitch correction ("steppy" pitch quantization, actually) and I noticed it was slightly glitching in between notes due to the SPAN function discontinuities and knob value not quite reaching maximum. It's weird, but even with just 4 hours sleep I was able to analyze it and come up with a better span function in just a few hours (I've previously spent weeks just on this). Here it is:
The pitch axis number is modulo multiplied to give "fractional" single note cycles. The MSb is inverted to shift the phase, with the result viewed as a signed value. This is multiplied by the SPAN value (raised to the 4th power and >> 12, the multiplication is a fixed point operation), saturated, then the MSb is inverted again to make it unsigned. When the fractional note value is subtracted from this we get a variable pitch correction area in the center, with linear transition regions outside of this between the notes. Previously, the transition regions were abrupt drops off of a cliff to zero, and quite audible without some low pass processing action afterward.
This new function alone, dialed back and smeared out somewhat with velocity modulation, can pass as another form of pitch correction, which was a rather unexpected pleasure to find. OK, I'm hitting the hay, night y'all.