Granular Osc - Rate, Pitch and Phasor~ Woes
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.
Strange... the forum won't let me paste the code in the question. Grrr.
Anyone?? Still stick on this!
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.
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~?
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.