Maybe I don’t understand the linear part of the shifting, but Bootyshifter ads/subtracts X-hz to/from the original signal like the Ableton shifter ( add an LFO to the CV and you’re almost there except the ringmod) :