The Petra library (http://circuitmusiclabs.com/projects/petra-for-max/) is in the Max Package Manager. It’s excellent. You can do quite a bit just using the demo patches as jumping-off points.

3 Likes

Just used your softcut max patches everywhere on a track by the way and it was great. Is softcut suitable for granular synthesis? I seem to remember the granular norns script wasn’t made with softcut but maybe that changed since?

1 Like

I mean, if you set the loop start and end points short and move them around a longer buffer, mess with the fades, then that’s granular, yea ? if there’s live input maybe you’d want to dedicate a separate recording voice. I guess most proper granular relies on having a lot of playback voices, in norns yr limited to four, but in max you can place as many instances as u want. It’s kinda CPU intensive though when you start adding more voices, I seem to remember karma~ being better there. the petra library above looks like it has more options for the windowing/crossfades/envelope which I assume is useful. it’s fixed in softcut~ right now but I think there are some more curves under the hood. and petra is probably much more CPU friendly with hella polyphony.

1 Like

No, and neither is karma which has similar goals

4 Likes

ya I think I’m mainly speaking for like one-voice chunky kind of granular (which I enjoy !) for the polyphonic/very small grains stuff petra library is probably gonna serve ya better

1 Like

yeah, i’m more interested in figuring out the particle/cloud stuff

1 Like

To be clear, softcut loops can be arbitrarily short with subsample accuracy. But they lack many typical parameters for granular synthesis and have orher core features that are expensive and irrelevant

You could put softcut in a poly, disable recording, handle all timing and rate changes in max. But timing would be loose (message queue) and you can do that with other stuff anyway

Weird that max doesn’t have something built in like supercollider BufGrain. Granular engine external seems straightforward

4 Likes

Petra package looks cool. But, already I wish some of the params (pitch) could be more extreme.

Yes. This. I was thinking this early, pondering if I shoudl learn some supercollider just for BufGrain and TGrains. But there’s only so much time in the day…

I’m actually surprised they didn’t make munger~ a standard object one or two versions ago.

I think the petra package is going to do it for me :+1::+1::+1:

3 Likes

Thanks so much for this !!
It’s so straightforward, and seems CPU friendly as well.

2 Likes

Glad I could share it! I’ve been surprised to see that it’s not frequently mentioned, as I think that it’s a spectacular toolset. There are a lot of really great finds in the Max Package Manager. Others to check out:

-MC Movement Studies. This is an inspiring collection of sequencing techniques and more. Dillon Bastan really has my attention lately between this and iota. There’s a really solid Cellular Automata sequencer in here that is fun to pair with microsound stuff.

-karma (by @rodrigo). Most of you know this one already, but it’s nice having it in the Package Manager. Not granular, but covers my sampling needs that petra doesn’t.

-ml.star. Machine Learning objects. There’s a very nice self-organizing map widget. If you build a granular tool, try training this with parameter sets for preset morphs.

-sensel. I’ve been preaching wherever I can about the Sensel Morph. It’s my favorite compact controller as I can carry a small pouch when I travel and have MPE, drum pads, etc. This allows you to tap directly into the sensor data, making it a great choice when building granular tools.

-smFilterPack. Really good sounding filters to add to your microsound explorations.

-ACToolkit. If you need a good granular noise source, the jeynoise~ object is very flexible. The built-in examples include a really unusual random VOSIM patch.

11 Likes

For some reason, when I search the package manager for “granular” only the LowKeyNW and MuBu packages show up. :thinking:

I also really like the easing package.

1 Like

Finally got round to looking at Petra on the back of this - really nice!

A nice easy addition for variable density clouds at signal rate (what I currently need):

This is interesting:

: )

4 Likes

Has anyone spotted any real-time granular effects (ie like MI Clouds) made completely in Max, no externals?

Just trying to work out how to do that. Currently a poly~ based record then playback thing, where latency is record time. It at least works in my head…

The Beap Granular Oscillator is really nice! Controll it both with Cv and pattrforward :slight_smile:

Edit it, add an output that outputs the name of the buffer so that you can easily record into it etc.

2 Likes

Not sure if this is an answer to me or not… but I’m specifically wanting to create a stream of grains on input (as an effect) rather than write into the buffer of a granular synth.

I’d assumed it can’t be achieved with a single buffer, but perhaps a circular one would work? Can’t see how the playheads and record head can avoid each other though.

@_mark Sounds like this might be an interesting patch to explore? It’s free too : )

2 Likes

I’ve never been able to build a good one without externals (or at least one that sounds close to as good as [munger~]). I got close trying to hack a Max version of the granular-delay module in Automationism/PD, but it didn’t work perfectly cause [tapout~] doesn’t work the same way as [delread4~]/[vd~]…

1 Like

Thanks, that was. It is essentially a delay with random fluctuations in the feedback path - hence granular modulated delay/reverberator:

@analogue01 I didn’t know munger~ was a thing! That’s good to know.

In the mirror maze above they interestingly use delay~ instead of tapout~.

Beginners mind just sent me down the route of using a buffer~ to do this instead of a delay. It means a grain is always going to be delayed by the grain length, but would also let me do things like modulate grain playback heavily. Might just embrace the latency as I want to use it on a track as an effect, but not actually in a live way…

3 Likes

So, with a fair amount of noodling around I’ve put together this somewhat unusual real-time effect. I think it exists somewhere between delay and granulator - as it is designed to be clocked to tempo, but is really very granular at its core.

The idea is this:

Instead of spraying random grains around at random pitches, capture a grain then loop it to make a steady grain stream. Put an envelope on the stream and trigger those instead. For now, I’m calling these fragments, to separate them from the grain controls in the patch.

Within each fragment, there are actually three streams, and these can be different pitches (chords!). There’s a button to reverse the streams and a pitch multiplier that’s nicely playable. And I stuck a crude wow & flutter emulation on the input.

Have a go. You need to press play, and there are some presets:

Live Stream Frag Granulator.zip (23.1 KB)

I think this there are a number of possible directions for this, into more of an instrument. Does anyone have any cool ideas for it? I don’t have a grid, but I think the number of controls and liveness would lend well…

14 Likes