Recreating that Paulstretch/Timefreezer sound

commathe's icon

I've been trying to solve this problem for ages, but I just can't get there. I tried a bunch of granular solutions, but none of them really worked out or sounded anything like what I wanted to achieve.

I'm pretty sure what I want to do is take a single, really long FFT window, and then hold that spectral envelope. I'm lost at sea when it comes to fft though. Is there some way to trigger a "recording" of a single window with a bang, then taking that list and just holding it as is?

Basically, I want to take some audio in (of any kind) then hit a button and just make the sound "stop" and stay as it is.

big_pause's icon

take a look at this from Jean-François Charles

There's a bunch of patches that you can download by him as well including various freezes (link on the blog, but they're here anyway https://cycling74.com/share.html)

commathe's icon

Huzzah! Thanks!

Dave Mollen's icon

There are different ways to achieve a freeze effect.
A granular freeze can work really well in my opinion.
A fft freeze is also an option. You might want to look into this tutorial too: https://cycling74.com/2006/11/02/the-phase-vocoder-–-part-i/
But there's also the option of a reverb freeze,
or a delay freeze, which is just a bank of delays with infinite feedback.
I think the last one is most CPU friendly, but it gives you less parameters to control.

commathe's icon

Hmm, I hadn't thought about a delay freeze to be honest... can't believe I hadn't. Granular stuff always ended up sounding really machine like, just sort of like gears grinding. That can obviously be a lot of fun, and useful but not for what I mainly have in mind.

Thanks for the input! I might give the freeverb + freeze a go too, but I think I'm liking the idea of a spectral freeze the most cause it means I can get right in there and tweak the amplitude on the frequency bands.

Dave Mollen's icon

I always get this machine-like sound with spectral techniques.
But actually with all of them. It's just a matter of taste and it depends on what you want I guess.
You can look at my attempt at a granular freeze effect.
This version is just monophonic, but I usually make it polyphonic.

(Btw. that Paulstretch plug-in is badass.)

Dave Mollen's icon

Here it is.

3484.grainfreeze.zip
zip
volker böhm's icon

if you're looking for an alternate freeze that sounds a bit more like what paulsstretch is doing, than you can check out vb.freezer~ (osx), which you can find here:
http://www.esbasel.ch/Downloads/MaxMSP-Objects.htm

some time ago i've also done an emulation of the stretching engine of paulsstretch as a max external, plus a few additional features.
if there is interest, i can put it online.
vb

Roman Thilenius's icon
Dan Nigrin's icon

I would be interested in that external Volker!

MuShoo's icon

I would also be interested in that, Volker!

Nau's icon
hans w. koch's icon

volker, me too :-)
paul stretches max...that would be sweet.

jirko's icon

+1 paul stretches external

Wetterberg's icon

grain.freeze by monolake does a great granular freeze of realtime audio that lets you scrub about in it, and it's easily hackable for external control.

And I prefer using the M4L.vdelay~ abstraction that comes with the m4l install to do freeze things, since you can glitch in it at will. It's handy, and sounds good with crossfades and such.

mudang's icon

The "core" of paulstretch is actually pretty simple. It's just a (big) FFT with the phase spectrum replaced by random values.

At least that was the case with the first release. I haven't checked out the latest release yet...

volker böhm's icon

ok, you can find the external (osx) here:
http://www.esbasel.ch/Downloads/vb.stretch~.zip

please note, it's based on the same idea as paulstretch but it's not the same source code, so it doesn't sound exactly the same (but pretty similar), and has a different feature set.

let me know if you run into problems, it's not heavily tested.
vb

Dan Nigrin's icon

Thanks Volker!!

Dave Mollen's icon

Sounds great Volker!

hans w. koch's icon

vielen dank volker, sounds really nice and has its own character.

commathe's icon

mudang! Big thanks, I knew there was something more than just holding a spectral window going on. I tried just adding some chorus to fatten up my results bit didn't really work out like expected.

Miriam Adefris's icon

Hi, does anybody know if the Spectral Stretch by Jean-Francois Charles also work with the new Mac M1 chip?
I was so happy to have found an alternative for Paul Stretch that works on Max, but I just bought and downloaded the patches and unfortunately Max keeps crashing.

I'm relatively new with Max, does anybody perhaps know of a solution for this? I tried to contact Jean-Francois Charles directly but couldn't find an email address online.

MMa's icon

I think yes

florian1947's icon

Try to run Max under Rosetta

M K's icon

I came across the collection of vb.x~ objects and have been messing around with vb.stretch~ in MAX8.

However, I cannot seem to adjust the FFT size argument for vb.stretch~ beyond 32768 (2^15). Any power of 2 higher than this that I try using causes my stretch playback to drop out and produce an audible clicking as the buffer scrubs through the input sample. This issue I'm describing similarly occurs when trying to change the FFT size argument in the help example associated with the vb.stretch~ object.

Has anyone had luck with implementing vb.stretch~ to run at higher FFT sizes?
Is there an implicit sampling size limitation for the DFT scheme?
Am I perhaps configuring something incorrectly (regarding playback) in MAX8 which is somehow interfering with vb.stretch~ functionality?

Additionally, does anyone here happen to have the .c source code file for vb.stretch~?
Almost all of the vb.x~ objects have a project folder and corresponding source code file included in the vb.x~ github repository, but I can't seem to find one for vb.stretch~.
Any help would be greatly appreciated.