[sdiy] dsPIC pitch shifter
rburnett at richieburnett.co.uk
Wed Jun 15 18:47:25 CEST 2016
Neat, I would never have thought of that!
From: Olivier Gillet
Sent: Wednesday, June 15, 2016 5:40 PM
To: Richie Burnett
Cc: synth-diy DIY
Subject: Re: [sdiy] dsPIC pitch shifter
Here's a little trick that can make autocorrelation feasible on
low-performance CPUs (or on higher-end platforms with little CPU
- Quantize the input sample to 1-bit (ie, keep the sign bit)
- Store each group of 32 (or 16) consecutive samples as a memory word
- The cross-correlation between two blocks of N samples can thus be
computed by N/32 XNOR operations between a word and a shifted word,
plus some bit counting.
On some platforms, it turns out to be more efficient than evaluating
the cross-correlation with two FFT and one inverse FFT (or naively),
and surprisingly the ridiculous clipping doesn't impair detection.
On Wed, Jun 15, 2016 at 6:26 PM, Richie Burnett
<rburnett at richieburnett.co.uk> wrote:
> Thanks for the comments. Some responses inline below...
> Peter Ullrich wrote:
>> I love voice "transforming" tools, I have the Digital Vocalist II, Korg
>> and the Boss Voice Transformer VT-1...
>> I think that your results are already in the same quality level as these
> I'm very flattered, the PSOLA technology is similar to what is used in
> 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
> but this is a chromatic pitch shifter, so unless you ride the pitch
> 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
> 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
> 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.
> 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
> worth a read to get an idea of the sort of ways the autocorrelation can be
> optimised for better efficiency.
> Best regards,
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2016.0.7640 / Virus Database: 4604/12424 - Release Date: 06/15/16
More information about the Synth-diy