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

If you have a grid, using the arp function is a quick way to get to a 3/4 or 6/8 feel. Hold down 3 pads and you’re arpegiating in 3/4 hold down six pads and your in 6/8. When you engage the arp is important to the feel. Everything is kinda relative accept for beat 1. Once you have an interesting pocket set up, it is important to note where 1 falls so that if you want to record a new pattern you know when that pattern will begin recording. It is fun to do different signatures per bank and letting the clock line things up for you, works just like euclides.

Can you change the division of an arp? Like if I wanted to arp 32notes or 8th notes instead of 16ths? There are work arounds to accomplish this result, but I was wondering if I missed an arp param or somethin.


Wow, such a bunch of different approaches… Thanks! That’s a prove of the script’s richness.

I have to try this arp technique one of these days…

Today I have tried with euclidean rhythms:


dove into the MIDI use of Cheat Codes 2 for last night’s noiz session. :stuck_out_tongue:

it’s driving three different voices on an Access Virus B.
simultaneously it’s randomly grabbing bits of audio from a pair of Aux Sends.
(oh yeah…thank you @dan_derks for those added probability rec percentages for each bank!)

other noiz support from Dronecaster, Arcologies (driving a Monologue), Wing Pinger and a horde of Ciat-Lonbarde noiz weaponry. :smiling_imp:


@SMesquida, wonderful demonstration! you also showcase a favorite of mine – toggling an arp while euclid is running :slight_smile:

if i’m understanding correctly, yes! you can adjust those on the [arp] page. E3 while the 1/16 is highlighted will travel from 1/32 → 1 with triplets.

if you hold k1, it’ll toggle pad-specific arp rates, which are funky. in this mode, arps sync to clock at the nearest 1/x. hard to explain in words, but definitely worth trying out for unique rhythms.

@SPIKE , these visuals and sounds are out of control cool – feels like a perfect soundtrack to walking through alleys in a dystopian city. thank you so much for including cc2 in the late night noizes!!!

@edison , totally lovely pockets, especially around the 2 minute marker. wowowow :revolving_hearts:


Hey Carlos, out of curiosity, how are you making out with your TouchOsc template? Thank you :hugs:


@dan_derks i am experiencing midi clock dropping out after a while in a live looper jam situation. It has happened a few times. I am clocking via MI cv pal into a double knot. The cv pal light signals the clock while it’s working and then for no apparent reason will stop. I have a faderbank connected too.
Is it possible that if you have more than one bank’s pad to clock config (newest menu that I have forgotten what it’s called and I’m away from Norns just now) set to the same midi channel, it clashes or something?

Another query? Do you expect that there needs to be a latency offset when clocking and using live buffers? I see the one shot latency option. I’m having trouble working out why sometimes I can’t get things syncing like I want but it could be a number of things and/or the complexity (to my ear) of what I am trying to do . Again I am clocking via cv pal into the double knot

Edit to say that it might be a usb cable issue that might be causing dropouts in the clock which may answer both queries. I will check and report back over the next couple of days

1 Like

Apologies if I’m missing something from the docs, but: how would I set up the live recording in loop mode to loop exactly every N beats (or bars) based on the global clock system? The docs say I can set 8s, 16s, 32s loop duration, but… that only helps of I’m at a nice even 120bpm or some other integer-ish division of that.

in params, under loops… you can set the recording cursor to move in time divisions of the tempo. it defaults to .1 but it’ll goto .01 then 1/16 , 1/8 etc… you can work it out from there.


Awesome! And then how do I:

  1. Split the pads evenly amongst the loop length (I see a way to turn a pad’s dur into the bpm, but not a way to go the other direction)
  2. Default the pads to playing back sequentially, synced to the beat (The best way I can find to do this is to go params > patterns > rand pat X style > horizontal, then go to timing and make a random pattern in each bank, but… they’re not at all matched to the actual beats)

The goal would be that by default, the pads are a clock-synced sound-on-sound looper.

1 Like
  1. press alt and 3rd zilchmo for each voice. (gridless i’m not sure if you can??)

  2. you’re correct with the patterns, but make sure you’re setting up your timing in the timing menu first. for instance set timing on each voice to “distro 4”… then make yourself some rando patterns

after all that, make sure you save a collection with this setup. i THINK each time you change your tempo, you need to reset the pad chops, to catch up with the tempo changes.

should do it yo

1 Like

Awesome thanks! I think I’ve got #1 down. However, I think I didn’t explain number 2 quite right: all the patterns are playing back correctly and looping the way i expect, but they’re not in sync with each other (and not in sync with the “1.3”, “1.4”, “2.1” etc in the top right on the “timing” page). I’d expect e.g. a1, b1, and c1 to all start together on “1.1”, then move to a2, b2, and c2 together on the next beat, etc.

A bit unrelated, but: the playback also isn’t “smooth”: there’s a slight volume dip as it transitions from one pad to the next, sounding a bit like a time-synced tremolo. I don’t have any envelopes on my pad’s levels or anything

hi @dan_derks I was dreaming of a Cellular Automata based pattern or any other evolving pattern…


ah yes, timing is synced to the 1/4 notes only, (far as i can tell). so when you make a random pattern, it’ll start in the next beat or two… dan has done amazing things to get it super tight and keep it simple. after making patterns i usually stop the pattern and restart. but this is part of the amazingness of cheat codes. you can get all patterns to start and sync solidly if you want to… but you can experiment in between the spaces too. offsetting things with each other, while still be time accurate… or not synced at all. it rules. i think there are plenty of things out there to loop and chop on beat… but to me cheat codes is an experimental beast… not just a 3 voice loop chopper. if you can make it do that… get it… but it might be a workaround type of thing?

1 Like

Hey hey,

I’ve been busy for a while but it is almost done. I’ll try to check today that everything is working as I want. There’s three encoder that controls the filter cutoff per bank that will work once Dan releases the new update, so I’ll keep it there anyway.


woahhh lots of new energy!! thanks for keeping the place warm overnight :slight_smile:

just to circle back on some of these great q’s:

on grid, ALT + the second pad of zilchmo row 4 will auto-chop

  • if a pad is pointed to a prerecorded clip or a Live segment at the full range (so, the start and end points of the Live recording are set to full duration): cheat codes will distribute all 16 pads to an even sixteen-part split of the source audio
    • so, any pads pointed to the full-8-second Live segment will autoslice to 0.5s slices (8 / 16)
  • if a pad is pointed to a Live segment with a truncated range (so, your segment’s start and end points are not the full duration available, but an N-beat division or something): cheat codes will distribute all 16 pads to an even sixteen-part split of the range of the Live segment
    • so, if I have a Live segment whose PARAMS > loops + buffers > rec loop enc resolution is set to 1 bar at 91bpm:
      • the Live segment will be 2.637s in duration
      • any pads pointed to this Live segment will auto-chop to multiples of 0.1648s (2.637 / 16)

two ways to do this that don’t involve co-opting random patterns at all:


  • for the bank which you want to auto-advance pads, set k and n equal to each other (try 16 for this experiment)
  • then hold K1 and use encoder 2 to change the mode from single to span
    • this will auto-advance the pads, 1 to 16, in a clocked loop
  • expanding from this: if you set k and n to not-16, like 7, press K3 to swing over to the r and +/- options
  • as you change +/-, the “start point” of the auto-advancement will increase or decrease, which is a great way to get windowed clock-synced loops of pad sequences
    • if you hold K1 when you’re on the +/- side of the screen, you can also set an auto-offset! this way, you can have the “start point” also auto-advance :slight_smile:


  • for the bank which you want to auto-advance pads, navigate to PARAMS > patterns + arps > arp x hold style and change it to additive
  • set the rate of the arp to 1/4 (use K3 on the arps page’s first setting, which is rate)
  • turn on the arp (from grid, it’s the first pad to the left of zilchmo 2, or to the right of the “pad loop” toggle)
  • hold pad 1 and press the arp button again to latch the arp in “hold” mode
  • release pad 1 + every subsequent pad press will be sequentially added to the pattern. try adding all 16 pads, just by tapping each one sequentially.
    • use E2 on the [arp] screen to navigate down to s and e and you can use K3 to adjust the start and end points of this arp
    • this is a really fun way to sequence pad advancement on the fly!

i’ll follow up with a quick overview of why your patterns weren’t starting at the same time (and how to get them to), but since these two features of cheat codes were built for exactly the purpose you’re describing (auto-advancing pads), i think they’re a better fit for your use case :sparkles:


Yeah, just better do it now.

Despite being a product developer, I made this layout thinking of what I’d like to use personally. To change things around to fit your performance and level of control desired is encouraged.

Unless I get more time in the future, I won’t update the iPhone layout for now. You may use this layout as guide for OSC messages and inspiration.

A few notes on PADS page:

  • Pattern recording Start and Stop doesn’t work through OSC. I’ll be probably implemented later on so I leave it as placeholder.
  • Filter cutoff will be supported with the next CC2 update. It works as an encoder and it’s pretty neat!
  • Random Pattern does work, to erase it press ALT + Stop.
  • ALT + Loop toggles loop on/off for all the pads in the bank.
  • ALT + Rate sets the rate for all the pads in the bank.
  • ALT + Pan sets the pan for all pads in the bank.
  • ALT + Level sets the level for all pards in the bank.
  • Push rec# records the buffer while is pressed, while L# toggles recording it on/off.
  • ALT + L# or push rec# erases the buffer
  • CHOP splits the pads evenly amongst the loop length

On DELAY page:

  • Reverb settings are Norns global parameters. Reverb being input softcut (sample engine) level (it doesn’t affect monitor in) and Reverb Time being mids time.
  • Note that the filter cutoff of LP and HP share control, you set their level independently.
  • Jump under OUT levels sets the level to 0 while pressed.
  • Jump under feedback sets the feedback to 0 while pressed (this is killer). It always returns to 100 after release, not the previous value.
  • The rate fader next to it has a continuous change from 0 to ½.
  • There’s no current way to address clocked and free time by OSC. It may change in the future with an interesting approach.

I’ll post any updates I make from now on, there’s still some space on Delay page.
Again, feel free to tweak things around.

Here’s the thing. Enjoy!

CC2_Tablet_1.0.touchosc (6.0 KB)


fantastic work, wow can’t wait to try


incredible work @CarlosUnch ! look forward to giving this a try this evening


This is pure gold!! Thanks for your passion, you saved me years of life <3


doh! sorry about the zilchmo misinformation! was definitely a “my kid won’t let us sleep, so i’ll do something” post haha. @CarlosUnch this template is beautiful.