[cheat codes 2] (rev 220524: LTS6.2)

No worries, thanks for that!! You’re right, the connector is on the Fates board and not on the Pi. Will check out that thread for more info. Thanks again!

1 Like

Thanks so much - works like a charm now! :heart_eyes:

1 Like

by all that is evil…THANK YOU!!!

the Live Rec triggering with MIDI is almost what i have been asking for!
i have all three banks switching randomly and recording bits and pieces across all three.

it’s kinda weird the way it works…but it works!
sending CC value of 1 and then CC value of 1 again or a value of 2 turns it ON and then OFF if it was ON.

would it be easier if it just had a threshold of an ON state and an OFF state?
(sorry if i am being confusing)
if CC value < or = 63 its OFF
if CC value > or = 64 its ON

still hope there’s a chance for a Random Bank Rec setting feature but i am EXTREMELY happy with this!!!

THANK YOU!!! :stuck_out_tongue:


First attempt with cheat codes 2, such a massive learning curve. pressed the bottom right button on the grid and found 2 more interfaces :crazy_face:
need to get to grips with the RND features which seem to work well with the ARP. any tips!


Hey @JD800 stoked you’re enjoying Cheat Codes.

I can definitely recommend @dan_derks 's workshops Cheat Codes 2 Basics and Going further He goes really in-depth, shows some great concepts, and best of all it’s only like 8 bucks.

I got a lot out of it, hope you do too.

EDIT: that sound clip is so good!!! I reckon you’re the one that should be slinging tips around.


Thanks Reinert

Ive already bought the first CC2 workshop, which was really helpful. Suspect i need to get the second course.

The Monome Norns world is a real pandora’s box of digital alchemy, some fantastic scripts. Currently learning both CC2 and MLR. So of the people on this forum have loaded up some great sounds examples, i think mine was maybe beginners luck , as i’m not really sure what parts of the grids where doing.

I have noticed that loops with more transients seem to work best i.e. Piano, guitar, electric piano etc and pads no so much. But maybe thats just my lack of knowledge.

1 Like

@JD800 @Reinert_Wasserman in addition, @DuellingAnts has some excellent youtube videos with in depth guides to different aspects of the script. worth a watch for sure


Forgot to share this exploration I did with CC and my acoustic box (kalimba springs rods cowbell) a year ago. The rack is just decorative :stuck_out_tongue:

1 Like

mother 32 and cheat codes :heart:


first up, just wanted to say that CC2 has been a pleasure to learn so far, and I’ve barely used any other scripts on my Norns shield for the 2+ months that I’ve had it. I also really appreciated the musichackspace course and recommend others buy it to support your great work :slight_smile:

However, I seem to have hit an issue and I’m not sure how to proceed. My set up is:
Norns shield running latest norns s/w
CC2 latest version
Launchpad mini mk3 x2

and I was hoping to use the Midigrid stuff built into CC2 with the Launchpads working as a 128 button grid. The GRID> options in CC2 seem to suggest this will work (i.e. one can set 128 or 64 grid, Midigrid etc). But I hit the following issues:

  • in the GRID menu, selecting a 64 or 128 grid seems to have the values reversed. By which I mean that to increase from 64 to 128 I have to scroll encoder opposite way to that which I would expect.

  • whenever I set the GRID>midigrid option to “Yes” it forces the other menu settings to 64 button and varibright.

On occasions I have gotten both Launchpads to be recognised, but they seem to duplicate what is shown. I don’t get a 128 button grid, rather 2x 64 grids that display the same stuff. For example pressing pad A2 on the first grid shows the same change being made on the second Launchpad.

But when I run in the 64 mode, then I can control the brightness i.e. changing from varibright to 4-step makes visible change on the Launchpads. The change is made on both grids.

From my limited troubleshooting I noticed this happen in maiden when I try to set CC2 to use the 128 grid:

/home/we/dust/code/midigrid/lib/vgrid.lua:147: attempt to index a nil value (field '?')
stack traceback:
	/home/we/dust/code/midigrid/lib/vgrid.lua:147: in method '_set'
	/home/we/dust/code/midigrid/lib/vgrid.lua:173: in method '_relative_set'
	/home/we/dust/code/midigrid/lib/vgrid.lua:98: in function </home/we/dust/code/midigrid/lib/vgrid.lua:95>
	(...tail calls...)
	/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:4366: in global 'grid_redraw'
	/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:1374: in global 'draw_grid'
	/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:1935: in field 'event'
	/home/we/norns/lua/core/metro.lua:164: in function </home/we/norns/lua/core/metro.lua:160>

Was just wondering if 128 Midigrid support is working for anyone else?


Just to briefly say I’m having the same experience, though both my mk2 launchpad minis do light up consistently, they’re always duplicates of one another. Changing over the 64/128 setting in GRID parameters doesn’t change that behaviour. (Shield here, too) I do think CC2 is brilliant, many many thanks.

1 Like

hi @mk23 + @Andrew_Eason – thank you for the kind words! super glad you’re enjoying the script :slight_smile:

cheat codes supports midigrid as 64 / single launchpad by default because the 128 layout for the script requires an unbroken distribution of pads in order to feel performant – upthread there are a few folks who’ve mentioned that the physical separation between the two launchpads just makes things feel wonkier than working with the 64 mode. so, i hardcoded the settings to reinforce the 64 as the ‘supported’ recommendation.

however, if you want to dig into the 128 config:

  • unplug the launchpads from norns
  • load the script and make sure PARAMETERS > GRID > grid size is set to 128 and midigrid? is set to no
  • edit this line to read:
    local grid = util.file_exists(_path.code.."midigrid") and include "midigrid/lib/mg_128" or grid
  • reboot the script, connect your launchpads, get 'em into the correct programmer modes and you should be good (you’ll likely need to turn the launchpads to orient correctly)!

i’ve only got a single launchpad, but it’s definitely reflecting the top half of the 128 layout after following those steps. lmk if you run into any other trouble!


Thank you! It’s not unlikely that I too will succumb to it feeling wonky, but now I can give it a whirl :slightly_smiling_face:

1 Like

Hey quick question. It feels like the pattern record button triggers on release. Where in the script can I have a gander to change it so it acts more like the rest of the pads and triggers as soon as I press the button?

I find it takes a lot of effort to get a smooth loop if I already have a rhythm going on the grid that I’m pressing down on the beat and then have to time my record to release on the beat, which usually leaves me with a little hiccup.

I know I can set up a count in for auto record and have also have it automatically stop recording once I’ve hit two bars but, there are still a lot of times I prefer recording in “loose” mode.

i actually forgot that patterns were set to activate on release – i’ll definitely explore changing this permanently (or surfacing a param), but in the meantime i think you can should just be able to change this line:


if z == 1 and x == (k+1)+(5*(i-1)) and y<=k then

if there’s anything else you’d think could help better facilitate your style of play, please lmk!


Thanks @dan_derks. I do think that this is more a feature than a bug as I also recognize some performance benefits to it being on release.

I think if you were going to include some params being able to set a behaviour per state would be quite useful.

I think there are currently three states it could be in (“Arm Recording”, “Stop Recording” and “Play Pattern”)

I’d say the most useful params would be to toggle “play Pattern” to be “On Button Press” if you want to trigger patterns while you’re in a groove or “On Button Release” if you’re planning on queuing up to start a pattern at just the right moment.

A Param for “Stop Recording” would essentially just help whoever is already used to the current flow to not be thrown a curveball.

The “Arm Recording” state is perfectly fine and I assume most users prefer it to stay as is, as it gives you all the time in the world to psych yourself up to start playing the pattern. But for the sake of bringing this thought experiment home to be able to toggle it to start recording as soon as that button is pressed could be an option.

Again, Thanks for all your time, love, and support for this community.

Great stuff! BTW, did you figure out a way to rotate the pad banks 90 degrees, or have you just adjusted your brain to use the pad banks sideways?

1 Like

Yooo @dan_derks when is CC3 coming out? :smiley: Can’t wait for the new version :metal: :bomb:


I can’t find this in the docs: is there a way to undo zilchmo gestures? Either an “undo last” or “reset to default” gesture could be useful.

my studio is very tight so i have a hard time rotating the grid, so i taught myself to see it sideways haha.