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