Grainshifter v1.0 ~ granular looping M4L device


a granular looper for timestretching and pitch shifting pre-recorded clips or live input


Grainshifter is the culmination of about a month’s worth of granular studies with gen~ and Max 8’s mc. This device is itself a long-winded spinoff of a standalone Max patch I was working on, but as someone who uses Max patches as performance tools and Max for Live devices as compositional tools within Ableton Live, it seemed well worth the personal time investment to refine the granular engine, add in some Live API tricks, and craft a device that might appeal to a variety of musicians and composers.

I originally sketched this out as a way to entice myself to use more rhythmic elements in my music. When time stretching is presented in an interactive way like this, it becomes super easy and compelling to explore variations of a simple drum loop, with a much different result than if you had simply composed the same rhythms with MIDI notes or a sequencer before sound generation. Having said that, melodic or chordal elements are also really fun with Grainshifter. Live input recording leads you towards rhythmic granular and pitch-shifted delay territory.


Max 8, Live 10

instructions copied from the GitHub read-me

Grainshifter divides audio clips into 16 segments, each with their own shift and warp settings. Shift allows for re-ordering of segments, leading to rhythmic sub-loops and creative rearrangement of pre-recorded audio. Warp is the playback speed of that segment, allowing you to speed up or slow down the audio by 2 or 4 times, without affecting the pitch.

The track and clip menus provide access to all tracks and clips shown in session view, allowing you to pull a clip from anywhere in your Live Set. These menus will auto populate when you first add the device, but later changes to the number of clips and tracks will need a manual refresh, which can be done by clicking the track and clip labels.

Sync locks playback to Live’s transport. Various settings of warp easily allow for clips to become longer than the original audio file, but synced playback will keep things in time with the rest of your live set. Or leave things unsynced for explorations in phasing rhythms and melodies.

Pitch is a transposition control for the processed audio. Clicking the pitch label will switch between absolute pitch and semitone adjustments. Note that the internal granular engine of Grainshifter works best with un-warped audio or warped clips created in your Live Set at the current tempo. Clips from other projects modified by Live’s warp engine and loaded into Grainshifter can lead to strange pitch results, but an easy workaround is to resample clips warped by Live, and to then load the resampled clip into Grainshifter.

Selecting “~ live input ~” in the clips menu will reveal 3 additional controls. Input is a gain control for boosting or reducing levels recorded into Grainshifter’s internal buffer. Overdub determines how much of the previous audio remains on the next write cycle. Hi pass is a subtle high pass filter for reducing low-end frequency content up to 1000 Hz, useful for pitch shifting live input without muddying the sound.

Clicking the sequencer button will open a secondary window, revealing four sets of shift and warp control sections, each representing a step in a four stage sequencer. The shift and warp can sequences can have independent lengths assigned to them, allowing for a 3-step shift sequence over a 4-step warp sequence, for example.

Download v1.0 (40.2 KB)


Thanks so much, Jacob! This is what I was talking about seeing on your Instagram :slight_smile:

Can’t wait to try it out…

1 Like



saving up for a max upgrade so i can try it out
just want to say, again, this is a powerful app to foster creativity

thanks for building it!

1 Like

are you on live 10 @glia ? don’t think max version matters there

1 Like

@glia ah right, i think @andrew is correct. you should just be able to download the most recent version of max 8, and then within live’s preferences you can choose to run an external max application instead of the one bundled in live 10. as long as you have live 10 suite or a max for live license, it shouldn’t matter if you have a standalone max 8 license or not.

could be wrong tho, i’ve had both live and max licenses for quite awhile now

1 Like

rad i’ll try tonight!

thanks for the tips yall

ohh weird does this app not work with bundled m4l inside 10 ?

^ says there bundled == max 8 ?

i think j was on live 9, which prompted the q.

fwiw, bundled max is a different build that doesn’t always stay in lockstep with the point updates. whenever folks experience weirdness with m4l, installing standalone max and pointing to it often helps because there might be bug fixes from cycling that Live hasn’t ingested yet. currently, Max 8.1.3 is bundled with Live 10.1.13, though :slight_smile:


thanks for the specifics about versioning, that’s good to know going forward as I get questions from people interested in the device

this is true! but building off of what dan said about live’s versions, a bit after @glia’s first post i got a dm from someone on my instagram who was using live 10 suite with a bundled version of max. however, they sent me a screenshot of the max console throwing a whole lot of errors along the lines of newobj - mc.unpack~: no such object for all the mc objects, even though i could tell in the screenshot it was max 8.

i recall when live 10 came out some months before the release of max 8, there was an intermediary version of 8 bundled in with live, but this was still (I’m assuming) before many of the additions in max 8 were finalized and released to the public, so that version didn’t have mc support

dunno - seems like bundled is workin for me, maybe that person just hadn’t updated ableton ?

but more importantly, this thing sounds great. downloaded just to test and like 3 minutes of running a file on my desktop thru three of these + prosody fx led to this:

( summoning @matthewdavid to check out this granular bliss device )


oop yeah, meant to include the fact that i figured they prob didn’t update ableton but alas

but hey yeah, sounds from this device are what matter most. glad you’re enjoying it and thanks very much for sharing a clip of some sounds.

my fav part of this device being out in the open is hearing the things people make ~~~


Playing around with the ~ live input ~ (starting at 8s) for a quasi-S&H filter effect.