roman, sorry i use gmail, which has a nice threaded view for mail.  i forgot that not everyone gets this function.



derek wrote:

"Time stretching is usually done one of two ways, both of which involve a
kind of "windowing" of the array: you can use an FFT analysis (of which
there are examples which come with PD), or you can use granulation.

In general, FFT is more accurate, but more expensive. Granulation is
used to squeeze the samples in Ableton Live into the BPMs/divisions that
one wants. It can also be fairly accurate, the smaller the grains, the
more grains are used and the the more overlaps the grains have.

Check my ParticleChamber abstraction for a use of windowed array
granulation for time domain manipulation independent of pitch.

http://www.puredata.org/Members/derek/Particlechamber.zip/
http://www.puredata.info/Members/derek/screenshot.png



and then i wrote:

"i'd love it if someone would actually explain the ableton process fully or code it in pd.  everyone always just says 'they do it like this, it's easy'....but no-one actually makes it as far as a patch."



to which derek replied:

"ParticleChamber does it. The only thing missing is an adjustment to the
pointer to make the sample loop, and maybe some math to calculate
divisions of BPM. It's easy ;-)"


and then i enthusiastically said:

"cool!!! Can you post a simple patch that does abelton-esue time-stretching on a loop?"






derek came and dashed all of my hopes with:


"Not right now, but if you look at the subpatch connected to the [grid]
object in ParticleChamber, you can probably work it out yourself.

Of course, beat-analysis not included, it's just the raw timestretching."