Here’s a tiny exploration of textures I made this afternoon with Cheat Codes and Barcode. After a month of learning things are finally coming together for me.

25 Likes

This is just stunningly gorgeous.

5 Likes

damn, @sophie, that is bonkers incredible. thank you so so much for sharing it and for the energy you’ve put into working with cheat codes :revolving_hearts:

a quick note for the MIDI-centric folks that each bank currently needs its own channel — i’m working on a workaround this week, but just a heads up :slight_smile:

6 Likes

Thanks! It works now.
One thing that was not apparent is that when i have OP-Z sequencer running and press zilchmo key it performs zilchmo if there are steps in sequencer :slight_smile: This might be worth mentioning in the manual.

1 Like

Found some interesting stuff; setting RND rate min and max to the same number while adjusting clock to taste. Very cool with ARP and some RND filter :ok_hand:t2:

8 Likes

i might have just missed this in the docs, but is there a way to record arp inputs with the pattern recorder? i’ve been enjoying some of the results i’ve been getting from holding single pads in arp mode/pressing and releasing a second or third pad. just wondering if that can be automated or not.

not yet, soon tho! up/down state is crucial to arps, which the pattern recorders don’t currently track. yesterday, I started rewriting pattern recording to add up/down awareness (sidenote: this will also allow gated pads [eg. pad plays/loops/voices only when held] as a performance option :slight_smile: )

one of my favorite gestures, as well :sparkling_heart:

yessss! it’s perhaps undocumented, but the rnd rates also flip direction – so when they’re set to the same value, you get a nice “what you just heard but backwards” effect :arrow_forward: :arrow_backward:

ah, dang, yes – cheat codes doesn’t have a way to differentiate that the OP-Z’s notes are sequencer vs. hand-played, so any zilchmo key presses will affect any notes coming from that channel of the zed. i’m realizing that perhaps the zilchmo key isn’t as effective for OP-Z – maybe it should just be the next octave page that zilches, so you can selectively sequence zilchmos or pads (as i don’t think you can stack notes on all of the zed’s sequencers, right?)…

5 Likes

Hey hey heeeeeey. This is the week that I dive into the CC2 waters. Excited.

Getting an error: init when trying to launch. I’ll paste the maiden readout below. I am sleepy, and this is almost certainly user error :grinning:.

Running 201115 on factory norns.

Location of Buried Treasure

script load: /home/we/dust/code/cheat_codes_2/cheat_codes_2.lua

cleanup

script clear

including /home/we/dust/code/cheat_codes_2/lib/cc_pattern_time.lua
including /home/we/dust/code/cheat_codes_2/lib/main_menu.lua
including /home/we/dust/code/cheat_codes_2/lib/encoder_actions.lua
including /home/we/dust/code/cheat_codes_2/lib/arc_actions.lua
including /home/we/dust/code/cheat_codes_2/lib/zilchmos.lua
including /home/we/dust/code/cheat_codes_2/lib/start_up.lua
including /home/we/dust/code/cheat_codes_2/lib/grid_actions.lua
including /home/we/dust/code/cheat_codes_2/lib/easing.lua
including /home/we/dust/code/cheat_codes_2/lib/arp_actions.lua
including /home/we/dust/code/cheat_codes_2/lib/rnd_actions.lua
including /home/we/dust/code/cheat_codes_2/lib/cc_musicutil.lua
including /home/we/dust/code/cheat_codes_2/lib/delay.lua
including /home/we/dust/code/cheat_codes_2/lib/euclid.lua
including /home/we/dust/code/cheat_codes_2/lib/midicheat.lua

script run

reading PMAP /home/we/dust/data/cheat_codes_2/cheat_codes_2.pmap
m.read: /home/we/dust/data/cheat_codes_2/cheat_codes_2.pmap not read.
Engine.register_commands; count: 0
___ engine commands ___
___ polls ___
amp_in_l
amp_in_r
amp_out_l
amp_out_r
cpu_avg
cpu_peak
pitch_in_l
pitch_in_r

script init

pset >> read: /home/we/dust/data/cheat_codes_2/cheat_codes_2-01.pset
pset :: /home/we/dust/data/cheat_codes_2/cheat_codes_2-01.pset not read.
output[1] initialized
output[2] initialized
output[3] initialized
output[4] initialized

SCRIPT ERROR: init

/home/we/norns/lua/core/params/option.lua:34: bad argument #1 to ‘floor’ (number expected, got nil)
stack traceback:
/home/we/norns/lua/core/norns.lua:138: in function </home/we/norns/lua/core/norns.lua:138>
[C]: in function ‘math.floor’
/home/we/norns/lua/core/params/option.lua:34: in function ‘core/params/option.set’
(…tail calls…)
/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:1618: in global ‘ping_midi_devices’
/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:1246: in global ‘init’
/home/we/norns/lua/core/script.lua:105: in function ‘core/script.init’
[C]: in function ‘xpcall’
/home/we/norns/lua/core/norns.lua:139: in field ‘try’
/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89>

1 Like

weiiiiird. seems like you’re using a Midi Fighter Twister (that’s the only time you’d get that deep in the ping_midi_devices bit of the code), which should just load.

it’s funny, that section of the code is essentially:

  • is there a midi device connected?
  • is that midi device named “Midi Fighter Twister”?
  • no? cool, forget it, let’s move on. yes? awesome, let’s use it. address it by its port number.

curious what happens after checking your SYSTEM > DEVICES > MIDI for dupes or weird names and a restart?

otherwise, any detail about the devices plugged in + repro steps would be :100:

edit:

ah, got it! I think that there’s a chance your SYSTEM > DEVICES > MIDI list was already full of devices, so when you plugged in the MFT it didn’t surface as a connected device, even though it is connected to the system.

dang. wild. this didn’t come up as a test case because i only have three MIDI devices lol.

tl;dr: as long as the MFT is listed in SYSTEM > DEVICES > MIDI, it won’t be a problem. i’ll also put a failsafe in the next update, so the script loads, but ultimately the MFT wouldn’t be usable if it’s not in the DEVICES > MIDI list…

not-script-level-thought: it might be dope to expand the DEVICES > MIDI list to report 8 ports…

I wasn’t expecting it but as i knew what was happening was not a problem for me. Might even be a cool performance aspect. I’m not sure if grid allows you to sequence zilches :slight_smile:

1 Like

That would be very handy. I’ve tried using Norns with a usb hub and not had much luck so far, though it was more of a cursory attempt, so I should try again.

Is Cheat Codes 2 supposed to recognise a plugged-in Launchpad (Mini Mk 3 in my case) rather than having to emulate a Grid via midigrid? I’ve not been able to see any grid function when using mg_128 and two Launchpad so far.

CC2 looks so amazing that I’d love to get it working this way if at all possible.

1 Like

Hey Dan just had maximum fun with CC2 and hope to share some sketches soon. I’m having a couple of issues or gaps in understanding if you could point my reading to the right spot.
The global set up for live recording - I set one- shot recording, next bar, encoder resolution 1 bar and set 4 bars in the Live buffer. I record into Live Segment 1 and get the expected results. I then switch to Live Segment 2 and cant get anything to record into the buffer (or alternativel cant find whats on the buffer on bank 2 having assign bank to to Live Segment 2). If I go back to the global buffer settings and reset to one shot, next bar etc etc it seems to get me where I expect to get. Basically it seems the global live buffer set up is not working right… but i might be wrong. What I would expect is that Live Segment 2 would be setup the same as 1 and ready to go if a bank is pointed to it. Although the issue may be the setup of the bank and pads which is the next point.
Auto chop of pads in a bank. I point a bank to a live segment using ALT L 2 for example, then press ALT auto chop. I expected this would auto slice the live recording of 4 bars (in this example) across the 16 pads with the start at pad one and the end at pad 16. Im sure this worked in the beta as we discussed at some point but I seem to have to auto chop each pad to get this to work. I tried alt auto chop too.
It could be that I’m getting lost in the in the pads and banks and the live buffers or need to unlearn some habits from v1.

Anyway, its still too much fun, thank you

edited to say that I was clocking with Link if that is useful info for you

1 Like

a great reason to pursue it! :slight_smile:


from a quick dive into Launchpad docs, your Launchpad Mini Mk3 (or Launchpad X) just needs to be set up for spittin’ out regular ole midi notes. nb. currently, each cheat codes bank needs its own midi channel in order to parse incoming midi note messages, but by using Novation’s Components site, you can easily build a template for cheat codes!

i don’t have a Launchpad myself, but this should be a workable starting point: cc2-test.syx (553 Bytes)

basically i chose:

  • 3 banks of drum pads (a=top left, b=bottom left, c=bottom right) set to 3 different MIDI channels (a=ch1, b=ch2, c=ch3)
  • a starting note (i chose C3 for all which means in the MIDI note/OP-Z setup parameters for cheat codes, you’ll want to experiment with adjusting the note = pad 1 setting until the bottom left key of each drum pad bank corresponds to pad 1 of the cheat codes bank)
  • a zilchmo key for each bank (i plopped three in the top right corner, which are each 23 MIDI notes up from the starting note on the correct bank-corresponding channels)

if this doesn’t work, some combination of things will. cheat codes just assigns 16 chromatic pitches from the specified midi base to the 16 pads, so we should be able to brute force our way there :slight_smile:


yessssssss :fire:

i’m 99% sure these got fixed in the 201128 patch – but i definitely should start putting the latest patch number in the topic line. can you confirm that you’ve updated cheat codes to the latest (201129)? you can confirm the patch number in the initial script SELECT screen, or you should also see that each of the Live segments has their own rec behavior parameter :slight_smile:

5 Likes

Bingooooo! MFT was connected, but for whatever reason norns had an iconnect midi device in slot one (which was not even connected). So it wasn’t so much that the slots were full as much as that the system was confused about what was in slot 1. As soon as I reassigned, boom! Everything worked.

I should have check that first. But hey, it was late, and this kept me from staying up all night playing with norns! So I think it was a blessing in disguise.

Hey Dan couple of quick questions after a really fun cc2 session last evening… When I set the random recording probability to a higher percentage should you still be able to engage/disengage recording with a button press on the grid? I think when I hit the button to record into Bank A it would still be randomly recording into the buffer even after I hit the button again to stop recording. The only way to get it to stop recording into the buffer was to decreases the random percentage amount to 0.

Continuing with the random theme last evening… I was also playing around with the random value generators section and had a question about filter tilt. What settings would give me the slowest random filter movements? I messed around adjusting the clock settings but could really get the filter sweeps slower.

Thank you!

1 Like

excellent to hear!!

i didn’t really plan for this case, so i’ll take a look, thank you for the note!

this is controlled by the [filters] page – there’s a s setting which describes the filter slewing. if you crank this value up a bit, you should get some nice sweeps :slight_smile:

2 Likes

Hi, I can’t find the individual pad semitone change settings…

hold K2 on the local/pad-level view of [loops] (you toggle between global and local by pressing K3). you’ll see shft in the bottom right, which is controlled by E3 :slight_smile:

just a quick note: there’s a very small bug where rnd rates don’t currently take pad offset into account. it’ll be an easy fix, but one i haven’t had time to implement just yet. other than that, i really love having three copies of the same loop playing spread across the stereo field but with small offsets from each other :sparkles:

2 Likes

Dan you are correct I was running the earlier version. Apologies, I have not completely kept up on this thread. I’ll report back if Im still having issues

1 Like

One last small question that is left, how do I change the live buffers? I found the ability to change the duration, but can’t find the ability to switch to L2 or L3 to record (not assign to a bank).