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

I cant seem to find the filter’s parameters exposed for midi mapping. Is there something i am missing?

not there yet, it’s in the coming update :slight_smile:
just finished the last touches on the macros

did everything work out with the clocking? also, if you can share additional details about the latency question, i can try to provide guidance :gem:


I already have a grid, arc, and midifighter twister, but seeing this makes me want to get a tablet!


Haha I guess me trying to overcome not having any of that has turned the tables huh?

It’s nice each interface designed for CC has its role and do something that does better than the others. There’s definitely overlap, but much less than one would expect.


Thanks so much for this! ALT + auto-chop is great, altho reading the manual it’s not clear to me how it’s different from “1/16 length pads (bpm-synced)”?

Re: auto-advancement, the arp approach is way better imo than the euclid one. It allows quick swapping between auto-advancement and live re-working, all via the grid. Super fun!

This would still be great to hear, if you have the time! Right now I can get the arp “play heads” to align, but it takes a lot of tricky timing. A guaranteed way to do that quickly would be great.

The related bigger issue for me now is if I want to record e.g. rhodes into live buffer 1 (mapped to pad bank 1), bass into live buffer 2 (mapped to pad bank 2), and guitar into live buffer 3 (mapped to pad bank 3), then even if i get the arps to line up with some tricky timing, the record head and “play head” (aka arp position) aren’t lined up at all, so the instruments’ downbeats aren’t at all aligned. Like, I’ve done a live rhodes take to fill up buffer 1, and now I’m switched over to recording into buffer 2 while listening to the rhodes play back, it’s playing buffer 1 pad 1, so I hear that downbeat and play the bass that goes along with it, but unbeknownst to me the active record head for buffer 2 is like already 2 seconds into the buffer (more or less pad 3 or 4), so when bank 2 pad 1 comes back around it’s a total mess. How would I align the arp position with the record head?


@21echoes are you using the 1-shot record option, or the loop record option? 1-shot will only record a section of the live buffer, synced to bpm. And when it reaches the end of that section, it stops recording. So you can pre define a 1 bar, or 2 bar section of the live buffer to fill.

I was practicing with this last night. Get the live buffer set to the proper length for source material in 1-shot record mode, getting the source material in the buffer with the correct timing, Alt + the zilchmo gesture for auto-chop start/end, then Alt + the zilchmo gesture to chop to 16ths.

I like to set my first pad in each bank to just play the loop, then I mangle the rest.


I love the idea of auto-chopping everything, but leaving the first pad as the whole loop! That probably simplifies a lot of things, at the cost of not being able to play “just” the first beat. Set the first pad to “loop” playback too, so it just… is the sound on sound looper, and the other pads are there to chop & screw.

I must not be explaining the record head vs arp position issue well, though, because one shot vs loop record doesn’t make a difference. I already manually toggle on / off recording as needed, but those settings don’t guarantee that the “play head” and record head are on the same beat at the same time.


@Clashley1 + @21echoes, great info, thank you for the additional insight!

i wrote much of this before your posts, but it sat drafted, so apologies if anything doubles-back.

auto-chop: dependent on the audio clip length, automatically distributes the slices/pads evenly across the total time (when used with ALT+, otherwise just distributes that one pad at its x/16 division). affects start + end point position.

1/16th length: dependent on the system clock, automatically shortens the slices/pads to a 1/16th note’s length. affects end point position. i often use this before auto-chop, and then use the zilchmos gestures for doubling a loop length to get 1/8ths, 1/4ths, etc.

the arp function is just a way to play back your pads/slices, so it’s entirely dependent on the pad/slice positions. if those aren’t all aligned with the material, then the arps won’t be aligned.

if i’m still misunderstanding the issue here, let’s hop on a call – hmu! :slight_smile:

those extra performance details help – just to make sure i’ve got it:

  • you’re pointing each bank to each live buffer segment (bank a to segment 1, bank b to 2, 3 to 3)
  • you’re setting pad 1 of each bank to the full length of the incoming recorded audio
  • you play some audio in
  • pad 1 begins playing back the audio you recorded and you begin playing to it (after switching to a new live segment)
  • since the playhead of pad (which gives you a definite sense of location) and the record head are not locked to each other, you end up in a zone where you’re committing new audio that’s totally independent from the previously recorded segment

ultimately (and most critically for the situation), the three playheads and the single record head are decoupled in cheat codes by design. the only time when any play/record heads are linked is in [delay]. if it helps to share: the personal musical goal of the live recording components was to feed material on-demand as a reaction to needing new content to be pulled apart, rather than looping that material’s original performance.

i originally thought you were using the script in a cascading sort of situation, where the three banks are pointed to the same live buffer segment. this is how @zanderraymond seems to most often uses cheat codes – pad 1 of bank a will be playing back at 1x, pad 1 of bank b will be playing back at -0.5x, pad 1 of bank c will be playing back at 2x, all playing back the same live-recorded material with different rates + auralization :sparkles:

the basics of what you’re describing is what one-shot record mode was made to facilitate – it has three launch modes: next beat, next bar, and free. but it doesn’t loop. so perhaps it’d help to have launch modes for the looping recording, so that you can cue up a new looping recording and the record head will start in an expected place? and then you can simultaneously press pad 1 (which will have the long loop) to make sure that it’s playhead starts at the same time as the record head – lmk if this feels like it’d be a good solution?

in the coming update, i’ll also expose the # section of the [loops] page, where you can watch the playheads for all three banks + the live recording segment in one place.


just thought of that yesterday! Very nice to have those visualized in one place


I’m kinda using it as a live looper. Like what re:mix offers, but on norns. I like the first pad playing my whole live loop so that I can get my hands away from the guitar and onto the grid without dropping a beat. I can then overdub, or fill the next live segment, or start mangling to create new auditory content. I love how versatile cheat codes 2 is. It can be a mega delay, it can be a harmonizer, it’s an arpegiator, it’s a live looper, load prepped clips in and it’s your entire dj set. It’s magical.

So If I’m in 1-shot recording mode, I can’t ‘punch in’ and ‘punch out’ like I can in loop record mode? I assumed that’s what free was. But free was referring to the quantization of record head starting.

Oh, I had a random idea of cheat codes last night. What if Alt + alt + a zilchmo affected every bank at the same time? Probably more useful to me as a 64 user. But it would be cool to suddenly reverse everything and then reverse it back. Or mute everything at once

Here’s a beat … https://drive.google.com/file/d/1e_KyN-VCv12jSi8HaMJCbyHB0xZSBuHy/view?usp=drivesdk


totally – this is one of my favorite workflows with cc. recently, i’ve extended the cascading methodology to organizing the note to pad feature with jf in regards to the octaves. i typically will set bank a to be -2, b to -1, and c to middle! this sort of dual cascading format acts as a framing device for what intend each banks “job” to be so i can shift my focus to the improvising!

also, it has been a dang joy to break out a few modules into a smaller case to use this method with, here is what i got going on right now :slight_smile:


This is exactly how I like to set up my banks for JF too. I really like having each bank set to octaves too, as I use my grid in Landscape orientation it helps to keep it feeling like a more traditional keyboard layout. The pad to note orientation can be weird with grid like this but I find it can lead to some really nice musical patterns. Although it would be nice to have an option to rotate the pads.
Btw, that micro system looks fantastic!


This place is so cool! Reading the latest discussions on techniques got me inspired to try some new stuff with CC.

This recording was done in one take (+some simple notes on top afterwards) using Less Concepts in Ableton playing notes from a rack with an Operator → Cheat Codes, synced with Link and recording set to loop + random recording at 50% iirc. All 3 banks use the recorded material in different ways.

Was very pleased with the filtered stuff going on in bank C (sounds almost like water). The source material is the same as everything else, with these RND and filter settings:




some cheat codes adventuring from last night -

(banks 1 and 2 are processing a frozen buffer 1 of electric piano(reface cp), bank 3 is processing live buffer 2 input from Plumbutter with rec probability around 50%. Lots of euclid + rnd rate modulation + slow looping envelopes, some delay page stuff in 2nd half)

Exploring cheat codes the past few days has been so much fun + the docs are superb in helping dive in despite the depths. Tytyty for all the amazing work on this @dan_derks !


The midi clock drop out seems unrelated to the syncing issue and doesn’t appear to be a problem with the other hard ware. I have done some testing and it appears that messages from the faderbank cause the midi clock to stop. I am not sure of much else beyond this sorry, but it would be good if there was a way just to restart the clock in this situation. At the moment I am relaunching the preset to restart the clock (although I believe that I have just changed the midi channel settings and changed them back and it started again but I need to confirm this).
I had a session without the faderbank connected and had no clock dropouts.
I am still testing the sync/latency issue I reported but I suspect this is a problem with my implementation and not the script. Thanks again Dan

Edit to say that it’s the mapping of Bank a’s volume specifically that is causing the clock to stop
And bank b volume mapping

Actually all bank parameters I am checking seem to cause a clock drop out

Further edit to state that only relaunching the preset will restart the clock

@Placebo92 , what an awesome capture, thank you for sharing it! your use of the envelopes is really staggering – there’s so much life in this recording!!

@yoyosandshoes , i’m sorry to hear about these troubles – since MIDI mapping is handled by the norns system, you should be able to repro the issue by simply adjusting the same parameter by hand in the PARAMETERS menu. i’ve also not run into this issue using a 16n faderbank, so a few q’s:

  • do you see this trouble with manual manipulation?
  • either way, what prints to maiden as the issue occurs?
  • when you say you’re launching a preset, do you mean a collection? or a norns system PSET? i ask because cheat codes 2 doesn’t use the PSET system (there are just too many variables floating around), so if a PSET is being recalled it might be creating issues.
  • this is a 16n faderbank?

I will try the manual parameter changes next time I’m with Norns but i imagine this problem would have already been reported by others if it occurred more generally which makes me ponder the broader setup I have.
Yes I mean the Collections and not PSET sorry for confusion.
I am using a 16n faderbank that a friend built for me recently.

1 Like

Slightly off topic: I sometimes think in addition to the GAS haiku thread we could use a FRS thread :wink: (feature request syndrome).

Although English is not my mother tongue I dare to create the first one and dedicate this poor attempt of mine to @dan_derks because he always welcomes feature requests with an admirable openness and enthusiasm:

You built so much.
Yet I am longing for more.
May I request?


there are some features
I fear I will never know
the complete depth of


Thank you for the video about live sampling! Helps a lot :smiley: