Forums > MaxMSP

Granular at audio-rate

Jun 23 2011 | 2:17 pm

I’ve been trying to change the grain duration at audio-rate, but can’t figure out how to do it.
I walk through the grains with a phasor and I want to be able to change the speed of the phasor only at the end/start of a cycle.

In the patch below you can see what I’ve tried so far.
Now I know this won’t work, because it’s a feedback loop.
But I don’t want to have the delay of one vector size either.

I’ve also tried to use two phasors, firing one after the other has finished a cycle,
but I can’t figure out how to do this right as well.

Any help?

-- Pasted Max Patch, click to expand. --

Jun 23 2011 | 4:20 pm

i am no expert. i muddle along with all this stuff and get reasonable results. you need to introduce the secret MSP 1 vector delay:

-- Pasted Max Patch, click to expand. --

you should search this forum as there are many excellent patch examples of exactly this sort of thing, going back many years. basically, sah~ is your friend, small use of vector delay is your friend, and you will be interested in the awesome volker bohm external [vb.phasor0~] and the andrew benson signal externals, especially [wait~].

good luck.

Jun 23 2011 | 4:23 pm

p.s. – you only want 1 phasor~ for EVERYTHING. use the rate~ object lots to split up your syncs and timings. also, forgot to mention:

-- Pasted Max Patch, click to expand. --


Jun 23 2011 | 4:25 pm

oops! that first exaample should have been audio rate send/receives of course!

-- Pasted Max Patch, click to expand. --

Jun 23 2011 | 9:22 pm

Thanks for the advice.
But all your examples use a delay of 1 signal vector.
Maybe this isn’t that bad.
But actually I’d rather have my patch to be absolutely sample-accurate.

So I wondered if there was any other way to do this.
Maybe some construction which doesn’t involve feedback.
Then you wouldn’t need the vector delay.

Jun 23 2011 | 10:09 pm

I wouldn’t call myself a digital-audio/DSP guru, but I’ve been researching this exact topic for several months and all the above comments and recommendations hold true in my own implementation of a granulator in Max.

There are numerous threads here, going back several years recommending different approaches and the ‘central’ [phasor~] to [play~] plus [sah~] algorithm works best (for me);

+1 for vbphasor~; it does exactly what is expected – I just built my own though, for more specific control.

This related thread may take you someplace helpful…


Jun 24 2011 | 9:47 am


But this actually doesn’t work.
I’ve tried both the tapin~ tapout~ and the send~ receive~.

-- Pasted Max Patch, click to expand. --

Jun 24 2011 | 9:54 am


now it works:

— Pasted Max Patch, click to expand. —

Later this weekend I will be posting a detailed video description of one approach to audio rate granulation, on my blog if you wish to see it:


Jun 24 2011 | 1:33 pm

I’ll use this then for now.
I’ll check out your video, maybe it’ll help me with some other difficulties.

Jun 24 2011 | 7:54 pm

-- Pasted Max Patch, click to expand. --

Jun 25 2011 | 9:29 am

oops, sorry:

-- Pasted Max Patch, click to expand. --

Viewing 11 posts - 1 through 11 (of 11 total)

Forums > MaxMSP