Joining the pile-on to say that I love this script.


I did some experimentation tonight, and I don’t have a clean solution but here is what I learned:

  • Matrix interposes on paramset loading, and can cause the first/default paramset that you load to load twice, the second time “silently”
  • I don’t understand the debouncing code, exactly, but it does some kind of time-based loading of files after they’re set by the param set.
  • I suspect the way matrix is interposing on load is causing a race condition with the debouncing
  • A judicious params:bang() after everything has settled seems to make everything right with the world again, but that’s a little messy.

Anyway if your files don’t load, you can try a params:bang() from Maiden as a workaround.


Just to clarify, I should use params:bang() each time I load a preset through matton or should I embed it in the .lua file?

From maiden repl; was my suggestion. I think adding a pset read action that defers a bang might work, but I didn’t implement it because @infinitedigits might have more insight and a better solution.

Just chiming in to add to the list of praise. Sometimes granular devices suffer from sounding similar to each other - this one immediately has its own sound


IMHO, this is like saying that samplers (sample playback) sound similar to each other. Well, granular is a specific use case for sampling but it’s still just sample playback, so most engines that present you with a similar set of parameters and similar init patch will sound the same too.

Of course the exposed parameters and its ranges are what defines the engines and their sound possibilities, but Graintopia is an already highly curated (very tasteful) patch, not a vastly open engine, so as much as I like this script, I think the comparison is unfair to other engines that are way deeper. @infinitedigits did the heavy lifting here for us, in other engines you have to be the sculptor or you will end up in the same sonic range.

With this I’m trying to say that you can achieve the same sound (if modulation allows on the platform) with other engines.

Norns is a platform that allows this type of curated engines which I think is fantastic and quite unique. Most other platforms usually imposes the feature and openness creep that it’s cool and needed too, but it demands way more time and a steeper learning curve that we are not always willing to give away.


Thanks for graintopia and your work, i love it.
Like in Barcode, reverse option should be very nice.
In line 79, I’m not sure to understand what value needs to be changed to remove the reverse.


Love graintopia. Thanks so much.