[sdiy] dsPIC pitch shifter
Richie Burnett
rburnett at richieburnett.co.uk
Wed Jun 15 18:26:08 CEST 2016
Thanks for the comments. Some responses inline below...
Peter Ullrich wrote:
> I love voice "transforming" tools, I have the Digital Vocalist II, Korg ih
> and the Boss Voice Transformer VT-1...
> I think that your results are already in the same quality level as these
> tools!
I'm very flattered, the PSOLA technology is similar to what is used in those
products, but IVL have taken it further to preserve/manipulate formants in
the Digitech and Korg products.
> Your software solution combined with potentiometer for parameter changing
> on the fly like in the Boss VT-1 would lead to a very cool gadget!
This currently just has two CV pots that vary the pitch shift amount for
each output from -12 and +12 semitones. I might add push-switches for
common musical intervals though. You can get some nice close-in harmonies,
but this is a chromatic pitch shifter, so unless you ride the pitch controls
it will eventually stray out of key. You can get a nice imitation of the
classic dual H910 harmonizer trick to thicken up a lead vocal with 1% or
less detuning +/- on each channel panned left and right.
Eric Brombaugh wrote:
> I've done 2-pointer pitch shifters in just about every CPU
> architecture that I've ever used but the AM effects from simple
> cross-fading make them sound pretty awful.
The autocorrelation really is key to reducing the artefacts on monophonic
material. Of course it sounds absolutely awful on polyphonic material!
Chris McDowell wrote:
> ...Are you using a codec for audio in and out?
I used a 16-bit CS4270 CODEC for some of those examples, and others used the
12-bit built-in ADC and 16-bit audio DAC. Sampling rate is 48kHz. The
"single_harm" example was definitely using the internal ADC and DAC.
Original audio input for comparison is here: (whoops, should have given
credit!):
https://youtu.be/MmKGLYZ4zWs?t=15s
Jim Credland wrote:
> That's impressive to get running on a dspic ... how big is your
> autocorrelation window?
The two pitch shifters take up about 50% of the maximum available MIPS. The
autocorrelation size is 8ms and the search range is 5.3ms to 10.7ms. It
currently won't track anything below 93Hz!
The 1984 Agnello (Eventide) de-glitching patent is a good place to start
reading if interested in this stuff. Hildebrandt's Autotune patent is also
worth a read to get an idea of the sort of ways the autocorrelation can be
optimised for better efficiency.
Best regards,
-Richie,
More information about the Synth-diy
mailing list