I’m new at the forum, so maybe I’m posting this at the wrong place(sorry!)
So, I’m graduating in Electriica Eng. and my professor from DSP(Digital Signal Processing), asked me to do a simulation of an effect that exists in the Audacity. Is the one that can speed up or slow down an audio track but with no changings on the frequency of that track, but only the speed that it is reproduced(I think the effect is “time”).
So, I gotta try this on MatLab that is similar to C++. So I was wondering if someone has a code that I could take a look or an Idea of how to do that. I dunno if the code from Audacity is free and if it uses C or Java or something, but I guess it’s not that hard. I’m pretty good at programing so you can use terms for it =)
The “Change Tempo” effect in Audacity uses SoundTouch Audio Processing Library.
The SoundTouch code in Audacity can be found in /lib-src/soundtouch/ (which I believe is implemented in C+, but I’m not a programmer).
The simplest form of “time stretching” is to split the audio into a series of overlapping windows, adjust the positions of those windows, then cross-fade from one to another. There are several more complex and better methods. More about time stretching here: http://en.wikipedia.org/wiki/Audio_timescale-pitch_modification
So… I was looking at the source code, but I couldn’t understand it… Almost nothing =/
So I was looking at the Idea that ou gave to me - “he simplest form of “time stretching” is to split the audio into a series of overlapping windows, adjust the positions of those windows, then cross-fade from one to another.”
I didn’t really understand what you mean with “overlaping windows” and “cross-fade” but I took a time to read the links that you sent but all it says is like: “One way of stretching the length of a signal without affecting the pitch is to build a phase vocoder after Flanagan, Golden, and Portnoff.”