[cheat codes 2] (rev 230105: LTS10.2 - arp + pattern recall improvements)

Returning to CC2 after a break, and can’t remember how to switch between recording with Livebuffer 1,2,3 :stuck_out_tongue_winking_eye: I can chose livebuffer number at bank a,b.c but can’t see the livebuffer changed at the Loops recording page. Any hints ?

welcome back :slight_smile:

this topic is in the air!

2 Likes

Ahhh dang !!! I use to do it the Grid way, super simple - how could i forget :grinning: Thanks Dan :sun_with_face:

1 Like

Hi fellow cheaters,
after a summer of playing with CC2 and my 2 Launchpad mini mk3s in a 128 config and things being rock solid, I turned norns on again after a few weeks and for some reason CC2 doesn’t see the launchpads at all. I have tried the troubleshooting basics such as enabling / disabling midigrid, ensuring the Launchpad is not in the MIDI devices list, checking my OS, Midigrid and CC2 are up to date in Maiden etc. Trying another app, such as Awake seems to handle the same h/w set up fine as a 128 grid, so I’m pretty sure it’s s/w related.

Looking at the code, I noticed that the lines related to grid might have changed since my post way back. This is what I had when trying today:

midigrid_present = util.file_exists(_path.code.."midigrid") and grid.vports[1].name ~= "none"

local grid = midigrid_present and include "midigrid/lib/midigrid/mg_128" or grid

Whereas what I had before looked like:

local grid = util.file_exists(_path.code.."midigrid") and include "midigrid/lib/mg_128" or grid

Also, an observation that I tried to reset the code line I had tweaked for 128 grid support so that it is what is in the repo:

local grid = midigrid_present and include "midigrid/lib/midigrid" or grid

and plugged in just one Launchpad, which weirdly also now doesn’t work in CC2 :frowning:
could someone advise on:

  • how to get CC2 to see any Launchpads via Midigrid
  • how to tweak the code line above to get my 128 / dual Launchpad set up going again?

Thanks in advance!

2 Likes

LTS 9 - more important fixes!

as with the previous update, requires norns 220802 or later.

new (ty @PeterBark for these suggestions!)

  • delay input levels as macro destinations (fun w/ macro LFO!)
  • delay output levels as macro destinations (also fun w/ macro LFO!)

fixed

  • rely on system PMAPs instead of a naive hand-rolled version from a few years back, so MIDI mappings from any of the 16 device slots now recall correctly for each collection (tyty @innaspace for the patient, detailed help identifying this issue!!)
  • midigrid automap now works for 128 or 64 without code changes (tyty @mk23 for surfacing this!!)
    • as long as midigrid is installed and there is no monome grid listed in slot 1 of SYSTEM > DEVICES > GRID, then midigrid should allow smooth switching between 128 and 64 sizes after GRID/ARC > midigrid? is flipped to yes.

hope everyone’s well + jamming smooth <3

21 Likes

this is so exciting! Can’t wait to try out the new macro destinations :smiley:

2 Likes

Hello good lords :slight_smile: done some clean-up on my Norns, and reinstalled a bunch of script, including Cheat_codes 2…
Problem, I experimenting some “init error” at script’s startup… Done some uninstall, reinstall magic, but still… any clue if what is going on? I need my cheat_codes 2!! :slight_smile: :sob:

hihi! hope all’s well otherwise :slight_smile:

cheat codes requires norns: update 220802 — if hitting K2 on the SELECT/SYSTEM/SLEEP screen doesn’t show 220802 in the middle of the right side of the screen, then an update should get cc2 running again.

otherwise, please feel free to download and share your logs (maiden | monome/docs) for further troubleshooting!

oh yes, it makes sense… seems like i’ve skiped many updates, and despite the fact that I updated my norns twice this week end, it does not update directly to the up-to date-version…
Updated cheat codes 2 as well… but apparently i was one version under 220802… So it makes sense that it does not load properly…
Updating at the moment…
Again, and as usual… sorry for bothering :confused:

so…
seems like it failed again to load

# script clear
cleaning up
### cleanup failed with error: /home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:6658: attempt to concatenate a nil value (local 'coll')
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
# script load: /home/we/dust/code/cheat_codes_2/cheat_codes_2.lua
pset last used: 1
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
including /home/we/dust/code/cheat_codes_2/lib/macros.lua
including /home/we/dust/code/cheat_codes_2/lib/transport.lua
including /home/we/dust/code/cheat_codes_2/lib/speed_dial.lua
including /home/we/dust/code/cheat_codes_2/lib/lfos.lua
# script run
loading engine: PolyPerc
>> reading PMAP /home/we/dust/data/cheat_codes_2/cheat_codes_2.pmap
lua: /home/we/norns/lua/core/clock.lua:59: bad argument #1 to 'resume' (thread expected)
stack traceback:
	[C]: in function 'coroutine.resume'
	/home/we/norns/lua/core/clock.lua:59: in function 'core/clock.resume'
Engine.register_commands; count: 7
___ engine commands ___
amp	 	f
cutoff	 	f
gain	 	f
hz	 	f
pan	 	f
pw	 	f
release	 	f
___ 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
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
ERROR: paramset cannot nest GROUPs
### SCRIPT ERROR: init
/home/we/norns/lua/core/paramset.lua:333: table index is nil
stack traceback:
	/home/we/norns/lua/core/norns.lua:145: in metamethod '__newindex'
	/home/we/norns/lua/core/paramset.lua:333: in function 'core/paramset.hide'
	/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:1169: in global 'init'
	/home/we/norns/lua/core/script.lua:126: in function 'core/script.init'
	[C]: in function 'xpcall'
	/home/we/norns/lua/core/norns.lua:146: in field 'try'
	/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89

editing this once again… seems like that the update is not applied. i mean, it offers me to download the last update, it installs it seemingsly…but on next boot up, i am stll on the previous version of the firmware… strange. the norns fail to update, without telling me so…
wanna investigate it further. it presumably have nothing to do with cheat codes 2

last editing… i need to reflash :wink:

2 Likes

ayy sorry, was away from keyboard — but, yes! a reflash is needed if you are running anything before 220306.

please let us know if you have any further trouble!

2 Likes


Everything went flawlessly :slight_smile: all good!!

4 Likes

just to bump, i’ve added a check into the script which will provide more fail state info onto the device’s screen if the norns core system version is older than the currently-required version.

so, anyone who pulls the most recent version of cc2 onto a unit not running 220802 will see this on their screen at load:

cc2 requires norns 220802+
perform SYSTEM > UPDATE

and any anyone running without the required 220306 fresh flash will see:

cc2 requires norns 220802+
you must flash norns
with new image 220306

hopefully this’ll help clarify speedbumps along the way! <33

11 Likes

Oh dan, this is great stuff. You mind if I snag the lines of code and add this to mlre and any future scripts?

6 Likes

Thanks so much @dan_derks for taking the time to fix. I’m travelling without Launchpads for the next few days. Will try the new version soon though!

Another album coming soon (November 1), another shout out to the endless inspiration machine that is Cheat Codes 2!

The heart of this track is a simple guitar riff

that I chopped up across the 16 pads, randomized the panning and transposition, and layered on some nice delay. Then I’d “roll” a new tempo-synced random pattern in each bank until I found one I liked. Finally, for the verses and outro, I turned on arp and played some “solos” :metal: Hope y’all like it!

25 Likes

I am having a weird problem recording patterns on Fates but not on Norns, same grid. if I set rec mode to “loose” it’s as if the auto sense never picks up my key presses and it never starts recording. if I switch to “bars:2” it does seem to enter recording mode after the countdown but my key presses don’t seem to register. all this works just fine on Norns. totally possible I have this in some strange mode I can’t find. I have tried uninstalling and reinstalling CC2 to no avail and all other grid functions seem to work as expected. thanks for any help!

1 Like

hihi! hope all’s well!

huh, super weird! two bits of troubleshooting:

  • any messages print to maiden while all this is happening? you can also export logs if you can’t catch it all from maiden
  • you can add a debug print to check if grid press messages are making it to the pattern recorder alright. add the following to the end of this function:
    print('recording an event from '..self.name..' at pattern step '..self.count)
    

happy to help with any further info :revolving_hearts: !

1 Like

wuuuuuuuuuut this is incredible!!! what a fantastic flip, omg! such a brilliant coalescing of Reel Two and Side Two!

can’t wait for this record, thank you for sharing the process + including cheat codes in it <3

2 Likes

thanks dan, I knew better than to step to you without logs.

norns output
NORNS:

# script clear

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

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

including /home/we/dust/code/cheat_codes_2/lib/macros.lua

including /home/we/dust/code/cheat_codes_2/lib/transport.lua

including /home/we/dust/code/cheat_codes_2/lib/speed_dial.lua

including /home/we/dust/code/cheat_codes_2/lib/lfos.lua

# script run

loading engine: PolyPerc

>> 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, using defaults.

lua: /home/we/norns/lua/core/clock.lua:58: bad argument #1 to 'resume' (thread expected)
stack traceback:
[C]: in function 'coroutine.resume'
/home/we/norns/lua/core/clock.lua:58: in function 'core/clock.resume'

Engine.register_commands; count: 7

___ engine commands ___
amp f
cutoff f
gain f
hz f
pan f
pw f
release f

___ 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.

initializing wsyn

output[1] initialized

output[2] initialized
output[3] initialized
output[4] initialized

~~~~~> no user defaults defined: save a collection as DEFAULT to establish <~~~~~

restoring persistent state data

starting transport...

pattern rec start 322.184375

starting transport 0.00079166666660058

count 18

????
starting a pattern2

pattern rec start 114.492625

count 21
????
starting a pattern2

pattern rec start 180.8205

count 23

????

starting a pattern2
fates output
# script clear
calling: toolkit post clean
post cleanup

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

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

including /home/we/dust/code/cheat_codes_2/lib/macros.lua

including /home/we/dust/code/cheat_codes_2/lib/transport.lua

including /home/we/dust/code/cheat_codes_2/lib/speed_dial.lua

including /home/we/dust/code/cheat_codes_2/lib/lfos.lua

calling: toolkit pre init
pre-init

calling: broadcast mod init
calling: my init hacks

radio station mod available

# script run
loading engine: PolyPerc

>> reading PMAP /home/we/dust/data/cheat_codes_2/cheat_codes_2.pmap

Engine.register_commands; count: 7

___ engine commands ___

amp f

cutoff f
gain f
hz f

pan f
pw f
release f

___ 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
about to init

pset >> read: /home/we/dust/data/cheat_codes_2/cheat_codes_2-01.pset

initializing wsyn

output[1] initialized

output[2] initialized

output[3] initialized
output[4] initialized

~~~~~> no user defaults defined: save a collection as DEFAULT to establish <~~~~~
post init

pset >> read: /home/we/dust/data/cheat_codes_2/cheat_codes_2-01.pset

Starting

restoring persistent state data

debounced

mpv: no process found

starting transport...

ignoring external MIDI transport on message
pattern rec start 424.23266666667

count 35

starting transport...

ignoring external MIDI transport on message

starting transport...

ignoring external MIDI transport on message

starting transport...

ignoring external MIDI transport on message

starting transport...

ignoring external MIDI transport on message

the “starting transport” msgs at the bottom of the fates log are me pressing the button and not having any sequence start. it looks like key presses are happening enough to get tallied in that “count 35” message but I will try the debug print next.

edit: I inserted the line you suggested and it confirmed my key presses during the recording process. I then deleted the cheat codes data directory entirely thinking something must be persistent but same behavior on reinstall. also, arps don’t seem to be working, it’s like my transport isn’t engaging even though I can see the transport messages in maiden.

1 Like

thanks for these + for testing further!

huh! sorry to hear about the continued trouble. a few more q’s:

  • if you hold K2 on the main screen, does the instruction show K3: stop or K3: play?
  • does the beat counter in the top right of this transport screen progress in either state?
  • what is your clock source? if not internal, does the issue persist using internal?
  • under PARAMS > meta / transport settings, are any of your connected USB devices enabled as a way for cheat codes to receive MIDI transport?
1 Like