plonk (/plɒŋk/) - to play a musical instrument, usually not very well but often loudly

  • Cambride Dictionary

plonky is a keyboard and sequencer. i made it to be able to play mx.samples directly from the grid. the grid layout (and name) is inspired by the plinky synth, i.e. it is a 8x8 layout with notes spaced out between columns by a specified interval (default is C-major scale spaced out by fifths).


  • norns
  • grid (optional)


use the grid to play an engine. by default the engine is “PolyPerc”, but if you install mx.samples you can also play that by switching "PLONKY > engine" via parameters.

each 8x8 section of the grid is a voice (1 voice for 64-grid, 2 voices for 128-grid). you can play notes in that voice by pressing pads. the notes correspond to a C-major scale, where each column is a fifth apart (all adjustable in menu).

arps: you can do arps by turning E2 or E3 to the right. in “arp” mode you can press multiple keys and have them play. in “arp+latch” mode the last keys you pressed will play. change the speed using the “PLONKY > division” parameter in the menu.

patterns: you can record patterns by pressing K1+K2 (for voice 2 press K1+K3). press a note (or multiple) and it will become a new step in the pattern. you can hold out a step by holding the notes and pressing K2 (for voice 2 press K3). you can add a rest by releasing notes and pressing K2 (for voice 2 press K3). when done recording press K1+K2 (for voice 2 press K3). to play a pattern press K2 (for voice 2 press K3).

midi keyboard support: every voice now has a “midi-in” which you can assign to it a midi keyboard for input. the midi-in keyboards only work if the voice is selected (i.e. only two work at a time). note: its important to note that the midi keyboard support is basically allowing to use a midi keyboard as a input into plonky - emphasis on plonky. meaning, plonky doesn’t accept notes from a midi keyboard that aren’t in the plonky grid area (even if there is no grid attached). so if you have a C major scale plugged in, plonky will only respond to the white keys on your keyboard. also, a grid only lets you play two voices at once, so similarly plonky will only respond to two midi keyboards at the same time (you can switch voices to switch which keyboards are used if they are assigned across each voice). I realize these are weird limitations, but its the only way I can see forward to keep the grid-based plonky and the now keyboard-based plonky in unison.


from maiden:


that demo! :heart_eyes: this looks completely awesome, can’t wait to play with it!


so incredible! excited to give this one a shot!

1 Like

soooo sick; is this able to support non-varibright grids?

1 Like

Awesome! MIDI out on the roadmap? loving this

1 Like

thanks @Justmat, @zanderraymond, @888m and @MatthewAshmore !

not totally sure…i think so? the bright/dim lights in this case don’t tell you anything really meaningful other than where you just pressed, they are just there for aestethics. please let me know what happens if you try it!

midi is there now :). next up on the roadmap is adding more than 2 voices (accessible through “paging” or something…).


you are a coding monster!


I can get Plonky to work with midigrid & a LaunchPad mini mk3. It even works with mg_128 which lets me switch between pages/voices with a single 8x8 grid.

But only with PolyPerc. If I try to switch over to the mx.samples engine with ‘midigrid’, Norns gives no sound (I’m sure I’m missing something dumb here). If I switch over to mx.samples with ‘mg_128’ Norns either bogs way down or just locks up hard.


interesting. Im not getting any midi output with this one. its synching to Ableton no problem. working fine with the polyperc engine. I loaded a couple other apps to make sure Norns was firing midi ok.

And hell yes to multiple voices!

1 Like

just a sanity question - you have the midi out set to your midi controller (in PARAMS > PLONKY > midi out)? can you see if any errors are popping out in maiden?

does mx.samples work on its own? do you have any sounds downloaded? can you also check to see if maiden is giving you any errors?

What an amazing demo. Looking forward to trying this out

1 Like

Yes, mx.samples works on its own just fine. I’ve got a few of the sample sets downloaded. No problems there.

I’ve rebooted a couple more times and Norns isn’t locking up anymore (of course). I can switch back and forth between PolyPerc and mx.samples, but no sound coming out from mx.samples.

At this point, I’ve probably just missed something dumb (it’s my M.O. after all).

Edit: Here’s what Matron is showing me. Not sure if this is an error.


lua: /home/we/dust/code/mx.samples/lib/mx.samples.lua:386: attempt to index a nil value (field ‘name’)

stack traceback:

/home/we/dust/code/mx.samples/lib/mx.samples.lua:386: in method ‘off’

/home/we/dust/code/plonky/lib/plonky.lua:624: in method ‘press_note’

/home/we/dust/code/plonky/lib/plonky.lua:579: in method ‘key_press’

/home/we/dust/code/plonky/lib/plonky.lua:327: in method ‘grid_key’

/home/we/dust/code/plonky/lib/plonky.lua:56: in field ‘key’

/home/we/dust/code/midigrid/lib/midigrid.lua:65: in local ‘callback’

/home/we/dust/code/midigrid/lib/vgrid.lua:213: in method ‘key’

/home/we/dust/code/midigrid/lib/vgrid.lua:101: in method ‘_handle_grid_key’

/home/we/dust/code/midigrid/lib/vgrid.lua:87: in field ‘_key_callback’

/home/we/dust/code/midigrid/lib/devices/generic_device.lua:86: in field ‘event’

/home/we/dust/code/midigrid/lib/vgrid.lua:84: in field ‘event’

/home/we/norns/lua/core/midi.lua:403: in function </home/we/norns/lua/core/midi.lua:398>

1 Like

@infinitedigits firstly, what an amazing script!

Secondly, I’m running into the same/simialr issue as @asg with regards to mx.samples not working. I can switch the engine, but getting nothing out. I have no problem loading mx.samples and playing any my downloaded sample packs (yours), but getting nothing from Plonky.

Briefly, during multiple reloads I managed to see the samples and select a sample set, it played on the second voice, briefly, but I couldn’t load it again.

This is what I get back from Maiden on selecting my engine as MxSamples from Parameters / Plonky


/home/we/norns/lua/core/screen.lua:231: bad argument #1 to ‘screen_text_extents’ (string expected, got nil)

stack traceback:

[C]: in field ‘screen_text_extents’

/home/we/norns/lua/core/screen.lua:231: in field ‘screen_text_right’

/home/we/norns/lua/core/screen.lua:166: in function ‘core/screen.text_right’

/home/we/norns/lua/core/menu/params.lua:438: in function ‘core/menu/params.redraw’

/home/we/norns/lua/core/menu/params.lua:614: in field ‘event’

/home/we/norns/lua/core/metro.lua:165: in function </home/we/norns/lua/core/metro.lua:162>

Another abnormality I have discovered is that if you record in a particular scale, say the default C Major, then select an alternative scale after the fact, say changing to C Pent. Minor only the left hand side of the Grid (Voice 1) transposes, the right side (Voice 2) stays in the original key of C Major.

1 Like

@mattallison @asg i’m thinking your issues might be stemming from a missing mx.samples function that returns a list of instruments, it was introduced in mx.samples a few weeks ago. can you update to the latest version of mx.samples and try again (v0.2.1)? you can simply delete the mx.samples folder and re-download it.

I want an album of your demos ahah, thanks for this one!

1 Like

Hi. Same issue here with no sound from mx.samples.
Deleted and reinstalled mx.samples via maiden. No luck.
Latest norns release.
Where we would expect to choose a mx.samples file? Params shows options for both mx.samples and plonky, but no voice chooser.
It may help to know that the params for plonky behave strangely - when engine shows MxSamples, the next few options cannot be scrolled to (voice, midi out …velocity, amp). Pan onwards are selectable.


same here! same weird menu issues too.

1 Like

@Senorakubra (and @asg and @mattallison and @edison) can you download the latest plonky (as of a few minutes ago) and try again?

long story long: I think I found the source of the problem. I had the default mx.samples instrument set to instrument #10, which corresponds to the steinway piano if you have all of them installed. of course, probably you (and everyone else lol) do not have every instrument installed! so now it defaults to instrument #1 which should not give you any error. i think. i hope. lmk if not.

btw, more than 2 voices and crow support incoming soon…

@alexeydemidov too kind! there is definitely something in the works.


Tested with only one downloaded sample set.

Thanks for the quick fix and for all your awesome work here.

…5 mins in…It’s beautiful. Another amazing script. Thanks for sharing.


this is so good! wonderful work. i’ve just spent an hour lost in loops :partying_face:

1 Like