Page 1 of 1

How to modify "tempo" without introducing an echo

Posted: Thu Apr 25, 2013 4:24 pm
by brunp
I have been playing around with some code using the SoundTouch libraries that modify speed, tempo and pitch. When I modify tempo, I notice an echo when it is reduced to about 50%. I have noticed the same results using the tempo control within Audacity. How can you reduce tempo without producing the echo affect??

Re: How to modify "tempo" without introducing an echo

Posted: Thu Apr 25, 2013 4:38 pm
by steve
For percussive sounds it is difficult because SoundTouch uses synchronized overlap-add (SOLA) which is very susceptible to this problem, though the SoundTouch library offers a number of parameters for optimising the method according to the type of audio, which is not available in Audacity (http://www.surina.net/soundtouch/README.html)

Other approaches perform better in this respect, such as Subband Sinusoidal Modeling Synthesis (SBSMS) which is used in the Audacity Sliding Time Scale / Pitch Shift effect, or phase vocoding.

Re: How to modify "tempo" without introducing an echo

Posted: Thu Apr 25, 2013 7:58 pm
by brunp
The idea though is to alter the tempo changes during playback. I am playing with the tuning parameters right now for the Soundtouch engine, but am curious about the SBSMS library. When I try it out in audacity, I do notice that it is a bit slower, but would it too slow for live playback??

Paul

Re: How to modify "tempo" without introducing an echo

Posted: Fri Apr 26, 2013 1:46 am
by steve
brunp wrote:but would it too slow for live playback?
On my machine (a cheap 5 year old laptop), 10 seconds of audio takes about 3 seconds to process, so it should be able to keep up with "real time", though I don't know how much buffering would be required. How about the phase vocoder? I believe that is sometimes used for real time processing.

Re: How to modify "tempo" without introducing an echo

Posted: Tue Apr 30, 2013 7:41 pm
by brunp
Are there any other samples that use SBSMS from a C# class, or perhaps a C# wrapper of sorts? I just want to find out whether or not something already exists which I can use for sending in samples for processing and retrieving them from the SBSMS library, much like the SoundTouch libraries, preferably in C#???

Paul