Versos – Multi-track Looper / Sampler for Grid 64

Hey everybody, I’ve just released a new Max-based looper called Versos. It is a multi-track looper and sampler that I’ve created to use specifically with my Monome 40h (although it should work with more modern versions as well).

I created this looper for my own personal use but a couple asked me to share it so here it is. Please keep in mind that it does have some bugs here and there so consider this a work in progress.



Versos is a multi-track looper / sampler designed to work with Monome Grid (more specifically the 64). It contains 6 standard tracks that can be used for recording external signals, a resampling track (#7) and a global track (#8).

All tracks use Monome’s softcut engine (the MaxMSP port by @andrew) for recording and playback.

Each track has a 32-second buffer (which can be exported as a wave file) and independent controls for transport, playback level, overdub level, loop state, rate and quantizer state.

Track #7 (“♺”) can be used for resampling the output of tracks 1-6.
Track #8 (“ALL”) can be used for controling tracks 1-7 simultaniouly.

Recording and playback messages can be quantized to a BPM (on quarter notes) to make it easy to sync multiple tracks.

Looping can also be disabled so tracks can be used a one-shot samplers.



  • Monome Grid
  • Max 8
  • macOS High Sierra (or newer)



Yay! More 64 apps!
Very excited to try this out on the weekend.

(Tested) on mac High Sierra, Max8.1.1, with 64 walnut I’m getting LED feedback and audio passes through, but my buffers won’t fill and play back.

softcut~: unable to load object bundle executable
2020-04-17 22:06:02.369 Max[1732:20496] Cannot find executable for CFBundle 0x7fee9add13f0 </Applications/> (not loaded)

I thought I had softcut~ where it belongs… ah, you have included a version of softcut~, so it is probably getting confused about which one to use.

I actually went ahead and tried this on my windows as well. The buffers filled, but I couldn’t get synced up with the click. Other random bugs on windows, but it actually looped.


do I need to have softcut installed into my max library prior to making this work?

1 Like

@McNUG Hmm interesting. I’ll look into it to see if I can figure out what might be going on.
Im actually using a slightly modified version of softcut~ to enable a data output so I can read the play position of the softcut buffer.
I’ve included the compiled binary for mac (64 bits) in the project which is working on my mac (also running High Sierra). What version of Max are you on?
It looks like maybe Max is not using the included mxo but instead trying to find one in your externals folder.
It definitely won’t work on windows because I’ve only compiled the mac version of the modified softcut~ so far.

@Prnts The compiled version of softcut~ should be included in the project’s folder.

One possible alternative might be to replace the softcut mxo with the one compiled by @andrew but it won’t provide visual feedback for buffer position

I’ve also added a MXF version to the repo. The MXF should bundle all the necessary files and use everything in a more self-contained way. Could you guys give it a try?

1 Like

The mxf file fixed it for me thanks!

m4l is weird about including externals in frozen devices. I’ve got a really grumpy response at the bottom of this thread that might help demystify, it tripped me up for a while. this applies to externals, .js, .lua, gen code, maybe abstractions too

I should make a tutorial here about it

Updated my os, and max. The MXF opened smoothly!

Great to hear that the MXF worked! The MXF should always use the bundled files so it should be less prone to issues in general.

So…just how complicated would it be to modify this to work with Push 2 (being 64pad)? Also possibly within Ableton Live?

1 Like

Porting it to Max for Live would be the easiest part and wouldn’t be a lot of work but adding support for Push 2 would take a bit more time.
I might look into this whenever I have some spare time. My AP2JS script should make it a bit easier to add support for the Push 2.

1 Like

A max for live version would be amazing. I know this an old thread… is there any hope of something like that surfacing one day? I’m just starting to learn max and if knew it better I’d take a crack at it and may eventually to get some practice as this is almost the exact kind of thing I had hoped to make in max. Same thing goes for working with the push 2. I’m currently gridless but hope to get a 128 again soon and would love to use that or the push with this script.

Once I’m further along in my max journey I’m looking forward to unpacking this to get some inspiration/a better understanding of how to do something similar. So… thanks for sharing <3