Oopsy Granular?

Hi!

I’ve dig into some example for making granular synthesis in gen~ but I’ve just founds example that use buffer and data obj as file reader. I would like instead to have a direct input to granulaizer, sorry but i’m quite noob to gen~ and haven’t use max for a while…

(Sorry didn’t see this sooner – I usually just check the Oopsy section of the forum)

One way to adapt those is to replace the [buffer] with a [data] object, and have something write to the [data] in a continuous loop.

e.g. for a 20 second buffer at 48kHz you can have [data buf 960000]. Daisy has tons of memory so you can make the data quite large if you want. I ran an example using about 3 minutes of 48kHz memory with 32x readers, it worked fine. Maybe start with a small one just to test though, and then scale up later if it makes sense.

To continuously fill the buffer, use a [counter] with the length (3rd input) set by the data length (data’s 1st outlet) to get the write index. Route that to a [poke buf]'s 2nd input. Route an [in 1] to the poke’s 1st input as the source.

Now anything that would granulate a buffer can now granulate live audio input. You can also set up a “freeze”/“hold” mode by setting the poke’s input index to -1 while hold is enabled.

If you want something like Clouds’ position input, just subtract from the current write index (from the counter) and make sure to use @boundmode wrap on your readers (peek/sample/etc.).

Basically, it’s totally feasible to build a Clouds/Beads type of patch.

5 Likes

I have been looking at max gen → examples → ola granular and followed the above guidance
how to replace the buffer with a data object and write to it in a loop with the counter.
And it now works for live input.

But I cant`t get my head around what this means „You can also set up a “freeze”/“hold” mode by setting the poke’s input index to -1 while hold is enabled.“

I tried a lot and read the peek/ poke / data/ reference but still „poke’s input index to -1“ gives me no clue how to freeze.

@grrrwaaa could you give me a hint, or of course anyone else who understands this.

I know this is an old thread, but I thought I ask directly here instead of opening a new one.

I`d be really thankful for any guidance.

this is how my data/ poke and counter look.
Bildschirmfoto 2024-06-21 um 14.54.58

Hey!

How did you get this project to work in the end? I’m trying to make a simular build, but I’m unsure of what to do with the win buffer that’s in the ola example. Thanks in advance!

hey, did you get this to work? or maybe @grrrwaaa has a solution for this?
I know that’s quite an old thread, but I’m trying to achieve the same thing.

you mean the freeze of buffer?
yes. if freeze is enabled you set it to write to -1, so your before filled buffer stays the same.

1 Like