Re: [linux-audio-dev] ableton live

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] ableton live
From: Cournapeau David (david.cournapeau_AT_elec.qmul.ac.uk)
Date: Sat Jul 05 2003 - 18:12:21 EEST


Frank Barknecht wrote:

>Hallo,
>Adrian Gschwend hat gesagt: // Adrian Gschwend wrote:
>
>
>
>>But as far as I know timestreching algorithms are 1. not easy to
>>implement and 2. not open source if they sound good :)
>>
>>
>
>I'm quite sure, that Live uses a granular approach. If you timestretch
>far away from the original, it gets obvious. There are several open
>source granular synths. For incorporating into another software, I
>would recommend SndObj which I use in the syncgrain~ external for Pd.
>
>SndObj lives at: http://www.may.ie/academic/music/musictec/SndObj/main.html
>
>
>ciao
>
>
I have already tried several basic algorithms for time stretching. You
can basically split all the schemes into 2 different methods : the time
domain
and the spectral domain ( using a phase vocoder ).

In time domain, there are several algorithms :
 - the OLA method, which is straight forward, and is just to move blocks
of memory into buffer. Sounds really bad.
 - SOLA method : use correlation to connect different frames ( grains is
not accurate, I think, as grains are normally blocks of a few ms, and the
frames used in time domain technique have typically 2048 samples_AT_44.1khz )
 - WSOLA method : quite the same, but more efficient.

A good reference is "Time scale Modification algorithm based on the
subband Time domain techniques for broad band signal Applications", from
Roland K.C. Tan and Amerson H.J.Lin , int J Audio Eng Sic, vol48, number
5 5000 May.

Phase vocoder :
- the basic approach ( see http://www.musicdsp.org : I posted a matlab
script. As the script only uses FFT, it must be easy to port it to
scilab or octave of you don't have access to matlab ).
 - all the different approaches are derived from the basic one. The main
problem is that a phase vocoder has to make a compromise between
frequency resolution and time resolution. The idea is basically to
adapat the frame size to the "harmonic vs transient" content ( a bit
like in MP3, for exemple, where the frame size of MDCT is adapted ).

The fundation article is this one : "time-scale modifications of speech
based on short time Fourier analysis" IEEE Trans Acoust, Speech, Signal
Processing vol 29(3), pp 374-390, 1981. From R. Portnoff

More recent techniques ( with improvements in efficiency and quality ) :

J Laroche and Mark Dolson "New Phase Vocoder Techniques for Real Time
Pitch Shifting, chorusing..." in JAES, vol47, No11, 1999. It describes
the phase locking scheme.

I may be give you even more recent articles, as one of my collegue did
his thesis about it. I just have to find out if it has already been
published.

P.S : the time stretching in the new Windows Media Player is really
good. I don't know which technique it uses.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sat Jul 05 2003 - 18:31:21 EEST