gridkeys mod (now w/ q7 layout, crow & jf outs)


mod for monome norns, use grid as midi keyboard anywhere.

UPDATE: now support for scrollable chromatic & in-scale layouts from gridstep

to get to know how to activate a mod, read this.

can send midi notes towards currently running script (in), external hadware (out) or both at the same time (in+out).

additionally, can now output on crow 1+2 CV ports and towards just friends through ii.

midi out is on by default when no script is loaded.

midi in mode uses the virtual midi device which you’d need to bind in the SYSTEM > DEVICES > MIDI menu.
it is ideal for synth scripts such as:

  • icarus
  • mx.samples
  • mx.synths
  • drum_room
  • lissadron *
  • sines *

*: those script only listen for the first midi device, so you’d have to have virtual in first position in your global midi config.

automagically detects if a script uses grid (at script load time) and will not activate in this case. can sill be toggled on/off from the params menu (will take over / release grid ownership).

credits go to @Quixotic7 for initial mod idea and isomorphic keyboard code (q7 mode) & @dan_derks for take over feature suggestion.


norns w/ at least update 210927, grid (any size)



from maiden type:



amazing work!

thankyou @eigen


Great!! Would work with Midigrid???

1 Like

Yes! I’ve been waiting for something like this for exactly your example scripts! Time to go give it a try.

EDIT: @eigen shouldn’t the install directions read “;install” ?


I suspect not yet as it will load before any midigrid includes. I’ll try remember to look at this when I create the midigrid mod. :slightly_smiling_face:


Yes yes yes! Awesome work.

1 Like

@coreyr well spotted, thanks.

@Klinik & @JaggedNZ yes, you’re right.
i assume it should be trivial to add a conditional import of current midigrid to the mod, right?

yessss I needed this, for I have no midi, only a 64 grid.
I’ve been able to use plonky pretty well with mx.samples, but this is what I really wanted. Curious how it fares with scripts like drum room. Excited to get into a bunch of midi scripts and sounds that I’ve been missing out on. Mods seem fun and exciting :smiley:

Edit: works well enough with drum room :heart:

1 Like


This is amazing, thanks so much!

1 Like

Yes, a conditional import should work, midi grid loads as a singleton so multi includes of midigrid should hopefully not do any to unexpected.


alright, I’ve just pushed a new commit that embeds midigrid.

would gladly appreciate if someone could test.


another update which fixes detection of usage of grid by script .

basically, had to take into account some edge cases:

  • scripts that do a params:bang() when they load
  • script that register g = grid.connect(1) + set g.key before they even init().

sadly, re-enabling gridkeys after a manual stop (e.g. K1 + K3 in global menu) is now broken.
one would have to go to the params menu and disable/enable it back for it to start working again while no scripts are yet loaded.

this regression is due to how closely interleaved the start script and stop script transitions are. i’m sure there’s some clever way to handle this but can’t figure it out w/ the few remaining stamina i had for the day.


this is awesome! i was always a little upset at the scripts that didn’t let me use the grid as a keyboard but was always too lazy to open a PR to fix it.

one kinda left field feature request: is there a world where this could send cc messages instead of note (& pitch) on/off messages? lotsa scripts respond to CC messages as well as midi note data


ah! we were debating about this on the study group (discord) just earlier. @Clashley1’s idea was to have a bunch of quantized faders (each having 8 possible values).

i would rather focus on stealing the keyboard from gridstep first (scrolable w/ chromatic/in-scale modes), wich i really enjoy.

also, i’m unsure about putting too much intelligence in this single mod. @Clashley1’s idea original idea was it to be another mod altogether (gridfaders).

i haven’t really made up my mind yet :confused:


solved. It was my bad. Thanks for the script!


Oh, gridstep style keyboard would be great! I was actually just going to request an earthsea style scale mode or even a highlight on just the C’s in a chromatic scale.

This mod is great, I’m one of those weirdos who owns a grid, and some cv sequencers but no midi keys so I was missing out on some really great synths. I’ve also been too lazy/ don’t know where to start with adding grid support to those scripts. Thank you!


Unfortunately I don’t see any traces of gridkeys at all. I don’t see an entry


If I start sines and configure the virtual midi device also no sign of gridkeys. There is also no midi output in case no script is loaded (as I understand out mode should then be activated).

I have a Fates and system version is 210706 (is there perhaps an update I missed?). So currently I am clueless of how to activate and use gridkeys. Any hint on what I have missed or doing wrong much appreciated.

Otherwise: Great idea and what I was hoping for!

you need to activate the mod first.

i guess it’s not yet documented on the main monome documentation site.

take a look at this §: GitHub - monome/norns-example-mod: example mod for matron


It took me longer than I care to admit last night to figure out that E3 enables the mod (instead of the expected K3).

thanks for this mod!


Ok, this is new information. Thanks.

But: I don’t see an entry SYSTEM > MODS.

I double checked that I have it installed (assuming that the entry appear if you have at least installed one mod):

install failed: project gridkeys already exists in /home/we/dust/code

My SYSTEM menu contains: devices, wifi, restart, reset, update… and that’s it.