Ok thanks everyone for the info. and thanks RJ for the Rubber Band tech notes 
page, which states:

"Rubber Band implements pitch-shifting using the standard technique of 
resampling…
This method has the advantage of making the amount of pitch adjustment 
extremely accurate and stable, even for small changes.”

(This certainly is not the case with that shifting algorithm I was using from 
that Bernsee blog - even small adjustments created undesirable artifacts, 
And I hear what you are saying about the the post, looking at the code was 
easier for me: http://blogs.zynaptiq.com/bernsee/repo/smbPitchShift.cpp)

It seems that the freq-domain solutions people mentioned here are also 
stretch+resampling. I would be interested to know exactly how Melodyne does it!

I wish these sites had sound examples of just simple tones, it’s kind of hard 
to hear for artifacts with full-spectrum music examples..

Fyi - someone was wondering what exactly I was after. 
Basically, i have a bunch of streams in the frequency domain and wanted to 
independently manipulate
their pitch without having to go back into time domain for each.

Thanks,
Matt


> On May 21, 2018, at 6:46 AM, Chris Cannam <can...@all-day-breakfast.com> 
> wrote:
> 
> 
> On Sat, 19 May 2018, at 21:34, RJ Skerry-Ryan wrote:
>> It may not be the state of the art, but RubberBand
>> <https://breakfastquay.com/rubberband/> is, I believe, the best open source
>> pitch shift / time stretch library out there at the moment, and can run in
>> realtime on modern CPUs.
> 
> See here for a page very briefly summarising how Rubber Band works:
> https://breakfastquay.com/rubberband/technical.html
> In short, it's a phase vocoder that uses a handful of the available tricks to 
> try to reduce phasiness, without doing any very expensive analysis such as 
> sinusoidal modelling.
> 
> There is actually a fine sinusoidal-modelling time stretcher hiding in 
> Audacity, using the SBSMS library by Clayton Otey. This isn't a real-time 
> method as far as I can see, and is slow to run, but it's worth checking out 
> -- you activate it by selecting the Change Tempo or Change Pitch effect and 
> checking the option labelled "Use high quality stretching". Code at 
> https://github.com/audacity/audacity/tree/master/lib-src/sbsms.
> 
> Stephan Bernsee's old post is a bit of a puzzle, since it contains quite a 
> lot about analysis/resynthesis but very little about actual pitch shifting.
> 
> 
> Chris
> _______________________________________________
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
> 

_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to