Help with granular playback engine.

jonnyfive's icon

Hi folks,

I am working on a granular playback engine for an installation that has to be driven a certain way, so the control mechanisms may look a little wonky, but whatever. My problem is thus:

I cant figure out a way to only update the grainsize at the beginning of each grain without creating a feedback loop. As of now when modulating the grainsize pitch shifting takes place which i want to eliminate.

I know there are other tools for this, but I want certain features, and also the DSP exercise.

Max Patch
Copy patch and select New From Clipboard in Max.

Thanks for the help
j5

jonnyfive's icon

I know this is prolly hard to read through, but I would really appreciate someone giving this a look, even a "dude, yer doin' it wrong" would be helpful if constructive.

So again I'm looking for any suggestions on how I might update the grainsize at only the beginning of each 'grainWindowPhasor' period.

Thanks again,
jonnyfive

Anthony Palomba's icon

Hey Jon, I have been studying you patch. It is a complex patch!
I think the problem you are running into is similar to trying to
create a variable length delay line. As you change the position
of the read head, you effect the rate that it reads at.

One suggestion I would offer is that you only read grain size changes
when the grain phasor is at the end of its cycle. Maybe use [sah~ 1.0]
to gate user input.

I will keep studying things a let you know if I discover anything.
This is a very good path. Knowing how to do granular synthesis from
scratch is a always enlightening.

jonnyfive's icon

Thanks for taking a look anthony!

Yeah, thats the problem i have been running into is that i want to take the control input for the sah~ off the output of the windowPhasor, but that patch calculates its output signal based on the grainsize...

I have been letting this rest, but i think i have an idea for for a work around with another control phasor~ + rate~, well see...

anyway thanks for looking at it :)

-j5