[sdiy] dsPIC pitch shifter

Richie Burnett 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 
get chance.

Q: Are you going to make this into a product ? / will you license the 
software... ?

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 mailing list