Time stretching from a buffer


#1

Hey, so I've tried searching this forum for answers on this, but I've come up short. Has anyone managed to stretch out audio within a delay buffer without the pitch going up/down?

I found this thread by @jaffasplaffa from 2017 https://sebiik.github.io/community.axoloti.com.backup/t/time-stretching/3621

That patch reads from a table, plus you need to adjust the pitch parameter in tandem with the stretching parameter for the sound to come out alright. Maybe one could use some sort of object for those two parameters to talk to each other so changing the playback speed would automatically adjust the pitch? And then somehow feed that table with the content from a delay buffer? IDK. I feel kind of stuck here and it's really frustrating :joy:

In an ideal world I'd also be able to, say, reverse the playback on the stretch knob by going counter-clockwise from noon...oh boy!

Anyways, if anyone has messed with time stretching in Axo, I'd love to hear from ya!


#2

For time stretch, try the patches from here, called Rockafella.

It's a port of the tutorial for making time stretch in Pure Data,


#4

It's still using a table though, no?


#5

Ahh yes, still using a table, not a delay, sorry.

Making timestretch using a delay I never tried. But probably possible.

You would need to build a fairly precise pitch shifter. The overlap add example patch in Library>Factory>Tutorials> 22_Overlap_Add_Shifter has the basics of making a pitch shifter out of a delay, You still need to do some manual labour to make it into a pitch shifter. Once you have the pitch shifter, then you can start thinking about the speed to pitch conversion.

You can try googling "Pure Data timetretch" and see what comes, I am sure yu can find something useful.

Just out of curiosity, why does it has to be not based on a table?

I am not really sure about the result you will get out of using a pitch shifter. Personally I would just go for table, as thats what most people do.


#6

The only reason is that I've already built a big patch around a delay buffer, so I'm just trying to keep that patch as is and just expand it, but I guess I could look into turning it into a table based delay instead.

Thanks for the thoughtful and quick response!