Drum Room

Drum Room

MIDI-controlled drum kits for norns.

Video on Instagram

Simple functionality with Scott Pilgrim inspired visuals. I was just after a convenient way of using norns as a drum module with an external sequencer or drum pads.

  • Use the built-in kits or create your own based on the templates in lib.
  • Each sound has tune, decay, pan and amp/overdrive parameters.
  • Global sample length, filter, drive, compressor and (very) low-fi mode.


Timber engine beta 7
MIDI note input (eg, drum pad or sequencer)


E1 : Page

K2 : Kit
K3 : Quality
E2 : Length
E3 : Filter

Global FX:
E2 : Drive
E3 : Compression

K2 : Focus
K3 : Mute
K1+K3 : Trigger
E2/3 : Params

Note: The compression parameter is controlling the system compressor effect. If you turn it up then your settings in System>Audio won’t match what you’re really getting (the script takes over) until you manually adjust the settings in System.


Drum Room v1.1.1



Just tried this out today with a Boppad and it’s fantastic! The visuals are a real joy :smiley:

One feature request would be a parameter to change the note each sound is mapped to as tweaking on the norns would be significantly easier than remapping the pad. Actually, in looking into how to do this, I now see it’s just defined in the config for each kit!

1 Like

Yes I thought about making it settable in UI but it actually seemed like config files might be more efficient, glad you’re liking it!

1 Like

v1.0.1 is up now to support the latest updates to Timber. Also allows more precise tuning.


Looking forward to trying this out with the octatrack for drum duties on the midi side of things

this is perfect for an idea/project I’ve had for a while. added LinnDrum and a few other kits very quickly (can share once they’re tightened up). thanks so much for this!


Version 1.1 is up, requires norns 200106

  • Room screen now adjusts sample lengths with E2
  • New Global FX screen with additional drive and compressor (used to be on Room screen).
  • Small tweaks and fixes.

Pushed a tiny update to work with Timber engine beta 7.

Hey Mark,

So I absolutely love this drum machine, it is my primary drum machine in my setup. I’d like to help implement an addition that will allow someone to modify kits from norns rather than having to edit the lua scripts manually.

My thinking on this is when the script loads, and a kit is selected, each of the drum voice pages also shows the filename of the sample being used at the top of the screen, this can be selected and a list of the samples can be scrolled through and selected replacing the sample in that slot.

Then the other item would be a page added at the bottom of the list to load/save the kit.

I haven’t done any coding with lua or for norns so this seems like a good way to learn! Let me know what you think.

Totally doable of course. Right now the kit scripts also define MIDI mapping and choke groups so that’s something to consider. For reference (or maybe it’d suit your workflow better?) Timber Player has similar functionality.

Yeah awesome - I really like how drum room organizes the sounds though as opposed to timber which I haven’t played with a whole lot. I was thinking that it would be much better to have a folder full of favorite samples organized into each of the categories (kick, snare, hh, etc). Then while playing you can scroll through the samples and find one that fits best and adjust the other parameters as well.

My workflow has the samples triggered externally using a drum sequencer, so the same key mappings and choke groups mostly apply across the kits.

Then the kit management can be a collection of the selected samples in sets that you can name/save/export, etc.

1 Like

Just installed this on my Norns and it’s absolutely amazing. This, plus sending assigned CCs with my Pyramid, feels a lot like the way folks have talked about Digitakt’s sequencer!


Hi all! I’ve used this in the past and it’s absolutely wonderful, but I tried it again recently and I’m having some problems:
On script startup, everything works find across the CR-78 kit. When I try to change the kit only the Kick sound is working for all the kits. If I then get back to CR-78 all sounds are gone except for the Kick.

Looking at maiden REPL I can see this:

/home/we/norns/lua/core/paramset.lua:122: paramset.add() error: id 'tune_0' is already used by another parameter
stack traceback:
	[C]: in function 'error'
	/home/we/norns/lua/core/paramset.lua:122: in function 'core/paramset.add'
	/home/we/dust/code/drum_room/drum_room.lua:140: in upvalue 'set_kit'
	/home/we/dust/code/drum_room/drum_room.lua:958: in field 'action'
	/home/we/norns/lua/core/params/option.lua:52: in function 'core/params/option.bang'
	/home/we/norns/lua/core/params/option.lua:37: in function 'core/params/option.set'
	(...tail calls...)
	/home/we/dust/code/drum_room/drum_room.lua:471: in method 'key'
	/home/we/dust/code/drum_room/drum_room.lua:332: in function 'key'
	/home/we/norns/lua/core/menu.lua:143: in function </home/we/norns/lua/core/menu.lua:120>
/home/we/norns/lua/core/paramset.lua:270: attempt to index a nil value (local 'param')
stack traceback:
	/home/we/norns/lua/core/paramset.lua:270: in function 'core/paramset.get'
	/home/we/dust/code/drum_room/drum_room.lua:204: in upvalue 'sample_loaded'
	/home/we/dust/code/drum_room/drum_room.lua:349: in function 'core/osc.event'
	/home/we/norns/lua/core/osc.lua:102: in function </home/we/norns/lua/core/osc.lua:100>

I’m not sure but maybe this was caused by an update? I think this just started happening recently.

Great script - enjoying it very much.

A note for any future person having problems - drum room would not respond to midi after installing until I restarted norns. This is of course what is instructed but for most scripts I never do it. Not sure if this was the true cause of my problem but I thought this might help someone.

Yes, looks like a norns update changed some things with the param system. I’ve put up an updated Drum Room now.