[cheat codes]: v1.2

cheat codes

a sample playground for norns


a massive improvement on timing.

nb. this is a deceptively huge update. I have tested restoring pre-1.2 collections a ton, but if you have a bunch of collections saved, I recommend backing up we > dust > data > cheat_codes with your preferred norns file management tool before updating. you won’t need to do anything with them after that, but it’d be good to have on hand.

[timing] tutorial:

thanks to @edison’s absolutely insane good vibes, I completely rewrote all the old linearization/quantization/snap-to-blah-blah stuff and arrived at four clean modes of nudging your Patterns in and out of time.

thanks to @ypxkap’s clear-eyed and -hearted thoughts, we’ve got focus mode for grid, which lets you latch a single pad for editing while your Patterns play. oh, also, grid-ALT + the third key in Zilchmo row 4 will make the duration of every pad in the bank 1/16th at the current BPM.

thanks to @deru’s energy + patience, we’ve got streamlined Live buffer save + restore and all the delays should be sending the right wet/dry levels when enveloped.

thanks to @swhic’s wisdom, we’ve got some Pattern randomizing! shuffle an existing Pattern or build a sequence on-demand!

a summary of changes:

  • complete rewrite of [timing] modes, including massive clocking improvements for tempo-synced Pattern recording (got rid of all that vague linearization and snap stuff)
  • MIDI clock out, MIDI clock in, and crow handling are all greatly improved
  • Pattern shuffle: cut up and jumble your current grid Pattern
  • random Pattern generation: create a grid Pattern in the current [timing] mode, on-demand
  • focus mode, which allows a single pad to remain in editing focus while grid or arc Patterns play
  • copy/paste now lives in focus mode
  • arc recording completely re-written – now, arc is aware of what pad received which adjustments and playback will only affect that pad
  • live buffer save/restore no longer requires extra steps! all taken care of with the save Live buffers? param
  • added a reset/clear crow param function, in case crow stuff gets wonky
  • crow input 1 toggles Live recording on/off
  • fixed some residual delay-centric [level] issues
  • fixed PARAMS: delay send , which now moves in 0.1 chunks (rather than binary on/off)
  • changed K1 long press on [loops] page to a toggle, instead of needing to hold
  • probably a ton of small things, all in the manual!


  • norns (200218 or later)
  • grid strongly encouraged, not required
  • arc strongly encouraged, not required


200318-cheatcodesmanual.pdf (9.4 MB)


In the maiden package manager as cheat_codes (commit fcae3a7 ).
Don’t see it? Please refresh using the refresh button next to the community header.


Lol, this all sounds so good. Could we eventually just have a Cheat Codes Playlist on Soundcloud or something?


Thank you @dan_derks! :facepunch:


this is a serious upgrade @dan_derks !
thanks for taking suggestions bro…
and thanks for creating this noise playground…

1 Like

just in time as i’m finishing up editing down my meandering 38 minute v1.1.1.1etc magnum opus to a marginally less meandering 16 minute magnum opus.

although i just realized that i still have not touched the meta sequencer at all so actually moving toooo fast!

video is really cool. can’t place the effect. is it stills combined or a random frame/stutter effect? or is the html5 player just freaking out on my laptop?


What is an opus without being magnum! I’m really excited to hear some serious Cheat Codes tracks.

1 Like

also, @dan_derks super dope video jam man!!! hell yes!

1 Like

This is amazing! Thank you so much for your time, vision, and generosity. :black_heart:


thanks for the good vibes y’all — excited to see what you make with it.

will be doing some talking tutorials, plz lmk if i can help with anything. also, hope everyone is safe and feeling as well as they can right now


dan, you’re amazing. thanks to you & all the contributors for this unbelievable instrument. :heart:


Thanks again Dan! this update feels really complete. Its such a fun instrument.
One q/comment - If I have an entire bank pointing to a clip, and then clear/delete the corresponding live buffer, it seems to clear the clip. Further, I cannot then load the same clip into that clip slot but I can load a different sample into that clip slot.

1 Like

hey ya @dan_derks!

thanks a million for the update!

running into a weird one…
when adjusting the 4th knob on the ARC for the delay…it’s moving the loop area of Buffer A and also ARC knob 1 at the top.
it also doesn’t move the pointer LED on itself.
it stays locked in place.

holding Alt doesn’t make a difference either.

it looks like the bottom ARC knob is just locked to the top knob.
it even makes changes to knob one when i change knob one to control filter.

1 Like

Amazing stuff! Appreciated @dan_derks !

1 Like

thankyou! awesome update

1 Like

This is incredible Dan. Thank you so so so much to all the folks that put so much effort into CC. :blue_heart:

1 Like

Had issues switching from Cheat Codes v1.2 to Islands. When I loaded Islands I got this error:


matron REPL

# script load: /home/we/dust/code/islands/islands.lua

# cleanup

# script clear

pset >> write: /home/we/dust/data/system.pset

# script run

loading engine: MT7


/home/we/dust/code/cheat_codes/cheat_codes.lua:1331: attempt to call a nil value (global ‘grid_redraw’)

stack traceback:

/home/we/dust/code/cheat_codes/cheat_codes.lua:1331: in field ‘event’

/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>


/home/we/dust/code/cheat_codes/cheat_codes.lua:1331: attempt to call a nil value (global ‘grid_redraw’)

stack traceback:

/home/we/dust/code/cheat_codes/cheat_codes.lua:1331: in field ‘event’

/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
1 Like

this seems like an issue with metros not getting cleaned up. (cheatcodes uses a lot of metros.)

system is supposed to get this done automatically on script cleanup, but i guess possible race condition (metro callback events are already in main event queue)

opened issue with notes


it is really wild how many great ideas folks have contributed just by asking if a thing is possible. i appreciate the patience and willingness to go back and forth with me to negotiate how I can best implement them (and in some cases, why I’m unsure). it truly feels so humbling to have folks connect with the script’s point of view. thank you for the energy :revolving_hearts:

lol, apologies! easy fix, will have it pushed today :slight_smile:

ah, tracked this down, bad softcut call on my end. but it led to a quick thing for @zebra: I remember buffer_clear_region_channel(ch, start, dur) got fixed in 200218, but it’s still not working as expected for me. it just doesn’t clear the specified area, but weaver looks good. :confused:


I really really needed to print this.


I truly do not understand why I didn’t think of doing this. Hahaha.