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