is a weird cat sequencer thing.

many cats can exist in a two dimensional space.

cats spit furballs at rhythmic intervals.

the furballs can bounce and collide with each other.

different types of physics events can trigger different types of bangs.

play, explore, meow.


new grid update!



  • 128 grid - very highly recommended
  • external midi devices - expand your sound pool!


  • a unique physics based sequencer
  • 7 different cats
  • 4 internal synths
  • 7 different synth engines provided by the bangs engine
  • time synced delay

grid features

  • use the toolbar in collumn 16 to change between grid pages
  • move around your cats or enjoy a lightshow in the “Petting zoo” page
  • sequence bounces with an awake style sequencer in the “Meowquencer” page
  • change bang sound sources for “launch”, “bounce”, and “collision” physics events, launch probability, and launch sync rates in the “Cat Config” page
  • adjust every parameter of the synths using grid faders in the “Synths” page
    • click a key on a fader to jump to a value, hold a key to smoothly fade to a value
  • quickly save and load projects on the “File IO” page
  • every grid action shows an on-screen message so it’s easy to figure out

norns doc

  • key 1 shift

  • hold key 1, press key 2 toggles playback

  • hold key 1, press key 3 randomizes everything

  • hold key 1, enc 1 rotate cat

  • hold key 1, enc 2 adjust auto rotation speed

  • enc 1 select cat

  • enc 2, enc 2 move cat

  • key 2 toggle cat on or off

  • key3 edit params for selected cat

  • params here you can save / load your project, and change settings for the 4 internal synths, the delay and the 16 midi outs.

grid doc

  • playback [x: 16, y: 1] - toggle playback
  • cat selection [x: 8-15, y: 1] - found in a couple pages. click to select a cat, double click to turn a cat on or off, hold for more settings
  • petting zoo [x: 16, y: 2] - cats are bright. click to select, click elsewhere to move.
  • meowquencer [x: 16, y: 3] - awake style sequencer on the left half.
    • x: 9, y: 8 - randomize the pattern
    • x: 10, y: 8 - shuffle the notes in the pattern
    • x: 9-15, y: 7 - change the octave
  • cat config [x: 16, y: 4]
    • x: 1 - 3, y: 1 - change between settings for “launch”, “bounce”, and “collision” physics events.
    • x: 1, y: 3 - disable synth bangs for current mode
    • x: 1 - 4, y: 3 - synth selection for current mode
    • x: 1, y: 4 - disable midi bangs for current mode
    • x: 1 - 8, y: 4 - 5 - midi selection for current mode
    • right side, x: 9 - 15, y: 2 - 7 - change launch sync rate for every cat
    • bottom, x: 1 - 15, y: 8 - change the launch probability for currently selected cat
  • synths [x: 16, y: 5]
    • x: 1 - 4, y: 1 - select which synth to edit
    • x: 6 - 13, y: 1 - change the synth algorithm
    • each row, y : 2 - 8 is a fader. click fader key to jump to a value, hold key to smoothly fade to a value
    • row 2 - amp
    • row 3 - pan
    • row 4 - mod1
    • row 5 - mod2
    • row 6 - cuttoff
    • row 7 - attack
    • row 8 - release
  • randomize [x: 16, y: 7] - use to randomize the current page. double click to randomize the selected cat or synth, long hold to randomize all cats or synths.
  • file io [x: 16 y: 8] - use the two keys in the top left to change between save and load mode. press the other grid keys to save or load. this can be done during playback for fun & profit.

cat personalities

each cat can have a different personality:

  • lively - constantly spits furballs are a rhythmic rate
  • bipolar - toggles on or off when hit by a furball. if on, spits furballs at a rhythmic rate, if off, does nothing
  • sleepy - only spits furballs when hit by one, spends the rest of the time sleeping. when activated he/she meows loudly by spitting out 4 furballs in cardinal directions


on maiden:


on norns:
system > reset then launch groovecats



  • I like making sequencers and I like cats.

will there be grid 64 support?

  • maybe basic support for the petting zoo.

version notes


  • Added autoshuffle feature that automatically shuffles notes when the playhead is 1 on a launch event.
  • Added new cat personality, Ninja, that does not launch furballs, but still sends launch events.


  • added randomization features. shift[key 1] + key 2 to randomize all. grid[x: 16, y: 7] to randomize page. see updated documentation for details.


  • bug fix, app would crash if velMin was greater than velMax


  • added further grid support with ability to change synth params and cat params from the grid.
  • added the ability to save and load projects.
  • updated the UI a bit.


  • added more support for the grid. Use the grid to select cats, toggle them on and off, move them, and view a lightshow.


  • initial release

view on
view on github


Right on :3

One doesn’t find this kinds of stuff in other synthworlds except the one we have here on llllllines and monome &c. Purring along…


Monome is the best synthworld and my cat Wednesday loves the grid.


Awwwww :3 Glad to see Wednesday in the sequencer.

The barfing stops if Vel Max < Vel Min

lua: /home/we/norns/lua/core/clock.lua:77: /home/we/dust/code/groovecats/groovecats.lua:715: bad argument #1 to 'random' (interval is empty)

or LSpeedMax < LSpeedMin

/home/we/norns/lua/core/clock.lua:77: /home/we/dust/code/groovecats/lib/grooveCat.lua:237: bad argument #1 to 'random' (interval is empty)
stack traceback:
            [C]: in function 'error'
            /home/we/norns/lua/core/clock.lua:77: in function 'core/clock.resume'

Maybe a little bit of math.min(params:get('midiVelMin_1'), params:get('midiVelMax_1)) logic in around that random?


Good catch! I hadn’t touched the midi settings in a while. Thanks for testing.


Pushed a new update, the barfing shouldn’t stop now.


Haha love the cat personalities :smiley:

What do you think about adding randomizing function? to see what kind of crazy parameter combination will do =]

1 Like

Thanks! A randomize function would be fun. I’ll look into adding this.


I’ve pushed a new update which adds a lot of randomization options!


WHOA! thanks, checking

hahah holy shit at some iteration everything is exploding the cats are going crazy

i also got some nice ambient tones


1 Like

Exploded as in the script crashed or exploded as in the cats are hyped up on catnip and making quite the ruckus?

I’m finding that randomizing pages using the grid works best. Especially on the synth page and the Meowquencer page


exploding in a good way, lots of cats, lots of collision =] I should better start recording coz it generates some amazing stuff


This is instantly so musical and fun just on Norns. Can’t wait to get my Grid involved.

Awesome work!

1 Like

i am personally not a fan of cats in any way shape or form…but this is a REALLY awesome script!
really amazing design!
Grid control is awesome!
i drove an Access Virus B with it for last night’s noiz session!
also in the mix is OOOOOO and Cheat Codes 2.
other noiz weapons in use…Pulsar-23, Sidrax, 208c Command Module and some other drum synth things.

would adding other animals be possible?
like dogs that randomly appear (or triggered) and chase off one or some of the cats…or maybe some mice run through that cause the near by cat to rotate a bit or move position slightly?
:smile: :boom:


That noiz session sounds really good!

Adding more animals for more randomness is a great idea. Gotta think of the best way to do it. A dog could chase around a cat and possibly scare it off. A bird could cause the cat to jump at it then the bird flies to a new position. A mouse would cause the cat to chase it and stop when it eats it. Likely I’d make this completely random and add in chance values to cause the other animals to spawn.


:bomb: The ability to switch to the rings engine would be lovely. And then randomize its parameters. Just dropping an idea because it generates great sequences :heart_eyes_cat:

1 Like

Those of us who do or have lived with cats might find it quite strange that things are not quite random. I could imagine a cat-themed script to disobey the settings any human tries to make, and also go absolutely berkers at 2am.


@Quixotic7 thanks for this script, it’s been a purrfect accompaniment to the morning.
really like how everything is laid out, the randomization in the sequencer is a nice touch as is the synth section where you can adjust things on the fly quite easily. having the parameters pop up on the display when you make adjustments makes so much sense, it makes things more understandable and cohesive. getting into some nice harrold budd territory:)

1 Like


i can’t wait to see how the script evolves!

1 Like