Granular Clicks

Apr 15, 2009 at 8:30pm

Granular Clicks

Hey this is a very rough begining to a granular synth. I’m using a chaotic algorithm to determine where each grain begins. The problem I’m running into is I cannot get rid of the click at the end of each grain. I used a line segment at the start of the grain but I can’t seem to finish with one. Any help would be appreciated. I’ve never really tried granular synthesis but have always had an interest. Am I goin about it the completely wrong way?
Thanks Kev

– Pasted Max Patch, click to expand. –
Apr 15, 2009 at 9:14pm

Have a look in examples > sampling > granular to see how it makes use of windowing. The “make-grain-envelope” in the rgrano patch will be of interest and you can see how it is utilised using [line~] and [wave~] in the rgrain patch loaded into [poly~].


Apr 16, 2009 at 12:36am

Definitely look into the granular example as stated. It’s very important to understand the basic concept. Also, have a look at examples/sequencing/audio-rate-sequencing-looping/grooveduck.maxpat
for a more basic amp-windowing technique…
following those, you will understand how i came up with this applied to your patch:

– Pasted Max Patch, click to expand. –

from there, you could swap out the grooveduck stuff with this to get a nicer s-curve shape to your amplitude ramp-up/down without having to use an extra buffer~ to store a hanning-window in:

– Pasted Max Patch, click to expand. –

you have the basic idea, but you really want to use the SAME line~ you use to drive playback to drive the amp-window as well so take a look at the first patch i posted(iteration of your original) to see one way to do this(admittedly, this is not the best way because it translates scheduler-ops to signal-rate ops (i’ve also quickly parsed out start and duration in a non-priority-concerned way just to get your patch rolling(see trigger object)), a poly~ can help manage this info. better or else keeping everything in the signal range is best(look into using sah~) …take a look at this thread if you’re interested in full signal-ops:
). eventually(as the granular patch from the Max/examples folder recommended before will also show you) you’ll want to embed what you have within a poly~ to get better voice-management, CPU-usage, etc.

Best of luck, hope it helps, enjoy the journey.


You must be logged in to reply to this topic.