Forums > MaxMSP

Granular Osc – Rate, Pitch and Phasor~ Woes

February 18, 2014 | 12:50 pm

This has got me stumped. My grain oscillator is suffering from pitch changes when I change the grain rate. I’m using vb.phasor0~ which I thought should not let this happen:

Would be grateful if anyone could take a look. It’s stripped down as much as possible, but happy to explain the relevance of anything.


February 18, 2014 | 1:01 pm

Strange… the forum won’t let me paste the code in the question. Grrr.


February 18, 2014 | 1:10 pm

Here it is the old way:


February 19, 2014 | 11:55 am

Anyone?? Still stick on this!


February 19, 2014 | 12:11 pm

Well, vb.phasor0~ solves it partly. Your copied phasor, which is 50% out of phase causes the pitch changes. This is because the copied phasor goes to its new speed mid-ramp.

You could try one-shot ramps like I proposed in this thread. But most of the time I would just go with the [phasor --> + 0.5 --> % 1] method coupled with a static grain rate. And when you want a variable grain rate you could also try one-shots with a [metro --> line~] triggered grain engine.


February 19, 2014 | 11:18 pm

Thanks for replying, and thanks for replying to the other thread I brought up about this. I’ve just gone through all those – seems like you and Brendan covered this pretty exhaustively. It’s a bit depressing as my granulator was going rather well! I might be able to live with the pitch anomalies on changing the grain rate I suppose.

I’ll think about this and go through the options again. Can’t help but think there must be a way round it. How about a system which uses a variable delay for the second ramp, controlled by sah~ when the first reaches 0. Maybe in gen~?


February 20, 2014 | 11:44 am

Just thought I’d throw this one in for anyone interested, combined vb.phasor0~ and shot~ solution. I’m still getting some pitch issues with it, but not quite as bad. Maybe it just needs tweaking.

<code>

– Pasted Max Patch, click to expand. –

</code>


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