[sdiy] dsPIC pitch shifter
rburnett at richieburnett.co.uk
Sat Jun 18 22:43:39 CEST 2016
Been getting a few questions about this off-list. Mostly in two areas...
Q: How well does the pitch-shifter work on sounds other than vocals, eg,
synth, guitar, bass, etc.
A: It gives a clean result provided that the signal is strictly monophonic,
and the frequency is greater than 93Hz. If the signal becomes polyphonic or
has a lot of background noise, then the output starts to sounds "choppy"
because the autocorrelation struggles to find matches in the waveform that
yield clean splices. Power-chords have a definite period of repetition, so
they don't get smashed anywhere near as badly. The 93Hz limit was a design
decision to limit latency, but obviously excludes use with bass instruments
at the moment. At present, the further the input signal drops below this
frequency the more you start to hear artefacts that can best be described as
sounding like unwanted ring modulation.
I will try to put up some examples of it shifting some synth lines when I
Q: Are you going to make this into a product ? / will you license the
A: The software really is just a proof of concept demo at the moment, which
still has several areas for significant improvement before I would consider
it a product. If the remaining issues can be resolved, and there is a
demand for it, it could be released either as a stand alone dual CV
controlled pitch-shifter. Or as a pitch-shifter with delay and feedback so
it can be used to produce rising pitched echoes, etc.
I actually started out looking at pitch *detection* because I wanted to add
pitch-tracking to a dsPIC Vocoder project that I had did a long time ago.
Pitch detection is also the key to high-quality monophonic pitch shifting.
But it turns out that true robust real-time pitch tracking is incredibly
challenging to do. I managed to come up with something that's good enough
for pitch-shifting, but currently not robust enough for
pitch-detection/tracking at the moment. This currently rules out its use
for things like "Autotune", Lent's algorithm, or intelligent harmony
generation that stays in key.
More information about the Synth-diy