Speed up audio code

Hi!

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 =)

Well, thank you guys for the support!

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).

All of the code in Audacity is open source. Audacity is licensed under GPL v2
The source code for Audacity is available here: http://audacityteam.org/download/source

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.”

Flanagan!? Golden what!?? Portnoff!!?!

.<

Someone help me! =(

How SoundTouch works see Time and pitch scaling in audio processing
Synchronized Overlap-Add (SOLA) see SOLAFS in Matlab
Flanagan, Golden, and Portnoff see Phase Vocoder in Matlab