Mello
1309
I love experimenting with my Norns Shield and all the amazing scripts. I don’t know the first thing about coding or even how any of this works but I love making sounds through this wonder box.
Regrettably my cheat codes 2 when I select the script comes up ‘error: init’. After some time I have worked out how to capture the following in Maiden:-
script load: /home/we/dust/code/cheat_codes_2/cheat_codes_2.lua
including /home/we/dust/code/passthrough/lib/passthrough.lua
including /home/we/dust/code/midigrid/lib/midigrid.lua
including /home/we/dust/code/midigrid/lib/vgrid.lua
including /home/we/dust/code/midigrid/lib/supported_devices.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
Default 64 layout init
vgrid init with layout: 64
1 core midi devices
Scanning for supported midigrid devices:
virtual – Not supported
mounted_devices
No supported device found0
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
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.
SCRIPT ERROR: init
/home/we/norns/lua/core/paramset.lua:122: paramset.add() error: id ‘midi_panic’ is already used by another parameter
stack traceback:
/home/we/norns/lua/core/norns.lua:145: in function </home/we/norns/lua/core/norns.lua:145>
[C]: in function ‘error’
/home/we/norns/lua/core/paramset.lua:122: in function ‘core/paramset.add’
/home/we/dust/code/cheat_codes_2/lib/midicheat.lua:395: in field ‘pad_to_note_params’
/home/we/dust/code/cheat_codes_2/cheat_codes_2.lua:1511: 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>
I usually have an OPZ attached using the Connect-OPZ script (Not sure if this information is needed). My Norns Shield and scripts are also fully updated (again not sure if this info is needed).
Can anyone help me with what I need to do to get cheat codes 2 working again? If you could write in really simple terms and steps for me that would be great.
Your help would be really appreciated. Many thanks in advance.
hi hi! hope all’s well otherwise 
super weird to see this error, as nobody else has reported running into it, but it’s due to a safety net introduced in a previous norns update.
if you’re from the future, this has been solved in current norns images. no need to do anything but update!
please lmk if you run into any additional trouble!
3 Likes
Mello
1311
Hi Dan,
Thank you for the prompt answer and writing it so easily to understand. Really appreciated buddy.
I will give this a go. Glad to hear you are on the mend by the way. Wishing you well and sending you good karma. 
3 Likes
oh friggin’, ALSO:
these are super compelling!! what gorgeous shifting landscapes. wild to know that both rich + deep modes of musicality came from the same artist, wiiiild. thank you for integrating cc2 into your arsenal and sharing these lovely captures <333
2 Likes
FLORINS
1313
Thanks so much for this script @dani_derks and the courses/docs!
I wonder if I’m missing something workflow wise with Timing>Pattern Sets BPM function. I have a Pattern set to Loose and to set BPM. The Transport seems to track the correct tempo of the Pattern I’ve played but when I reset the transport (stop and then play) the Pattern that has been used to set the tempo will slowly drift out of time.
Part of what makes me wonder if I’m approaching it wrong is that the transport plays when I press record (Zilchmo 1) so it is now running at whatever tempo is present but I assume the clocking of the pattern doesn’t start until I hit the first Pad in my pattern…
apologies for the delay!
loose vs bars describes the type of syncing the pattern will adhere to. loose is ‘the time from first press to the time the recording button is disengaged’, which is helpful for async play as well as for this ‘sets bpm’ behavior, but it’ll definitely drift as it loops because it isn’t a perfect loop at that bpm.
the way i use ‘sets bpm’ is to key in a feel to get arps/euclid/external gear synced up, then if i want perfect loops i flip the rec mode from loose to bars and hold K1 to dial in the number of bars my pattern should represent at this derived bpm – that’ll ensure that the pattern restarts after x bars, rather than using my loose timing.
another workaround is to use the metasequencer to retrigger the loose pattern on the derived clock, but i like leaving the metasequencer open for ‘song mode’ duties.
i’ll probably refine this a bit for cheat codes yellow, but hopefully this workflow outline helps clarify intent – i’d love to learn more about the way you’d like to engage with it, though, if you find this isn’t the performance mode you were seeking 
3 Likes
FLORINS
1315
@dani_derks thanks so much for your thoughtful response.
Interestingly, after some experimentation I came around to the meta sequencer solution - using it to retrig my pattern. But I will try ur first approach as well and get my “accompaniment” going with euclid and arps after establishing the tempo in Loose and then moving over to Bars for Pattern creation.
Looking forward to Cheat Codes Yellow too!
2 Likes
dwtong
1316
Heya, thanks @dani_derks for this fantastic script, it’s been a go-to since picking up a shield last year.
I’m looking to use either a MFT or a faderfox EC4, and am wondering whether the recording of arc gestures (from the bottom of the grid performance page) works with either of these? Thanks
thank you for engaging with the script!
gesture recording is currently grid + arc only, but i’ll take a peek at bringing the MFT/EC4 gestures into that stream 
2 Likes
Any idea why I can’t map MIDI notes in MIDI learn mode? Only CC? Does not compute… or is my MIDI device not working – only learns by using my OhmRGB’s faders.
hi hi! hope all’s well 
norns doesn’t support mapping MIDI notes to parameters via the MAP function – only CC’s.
i’m happy to add MIDI note mapping to this norns system feature request PARAMETERS: mapping enhancement springboards · Issue #1248 · monome/norns · GitHub if you can share a bit more detail about what device you’re using and how you want things to respond – eg. if you map a filter cutoff to a MIDI key, how do you want to access values between extremes of on/off?
3 Likes
Hey Dan!
Ah hm … so there a tons of things everywhere in the Norns then that only accept CCs?
Like Reverb on / off e.g. – I have never seen an implementation outside of this Norns universe where I only could map CC to this kind of stuff. A whole knob with 127 possibles values for on / off seems kinda wasteful. Best of course would be an implementation like Ableton Live has where you could set min / max for every mapping.
So in general I’d like/hope/expect(ed) to see MIDI notes possible everywhere kinda (even for stuff where it would make more sense to use a knob / fader). Even when the button then only changed the value from 0 to 127 (which can also be a nice effect). The more control the better.
Cheers!
1 Like
gotcha, will add it to that feature request!
just to confirm, this is already possible for CC’s – just hit K3 on any parameter in MAP mode and you’ll get to set this range for both incoming and outgoing data:
1 Like
Maybe another thing … MIDI feedback would of course then be quite interesting for buttons with LEDs to tell whether the value is 0 or 1 / on or off.
1 Like
I would like a feature to use MIDI-Notes (f.e. a keyboard) to play the 3x16 pads, not only the grid.
Much enthusiasm for opening up params to midi note mapping! Could this be implemented norns-wide or are we talking cc2 specific? Sooo many scripts would be made all the more wonderful with this addition! healing love to you dan, hope your body and soul are knitting up beautifully!
Question: in locval view of buffer c there is locker, how can I get rid of it?
agreed + in the norns system feature request i linked as midi + OSC callback 
this is currently possible! just connect a MIDI source, boot the script, and head to PARAMS > MIDI note/OP-Z setup. you’ll have options to enable MIDI control, to select a controller device, to set different channels for different banks, and to set the base note to start trigger pads 1 to 16. start with midi zilchmo toggled off for easiest orientation – the PDF docs covers that feature, though:
the lock indicates either that you’re in pad focus mode (ALT/alt + the rightmost top key in any bank’s area), or there is an automated process is also iterating, like arps or euclid, and you need to enter pad focus mode to cycle through pads in the UI. normally, the pad displayed changes with pad presses – but since these iterators can change pads rapidly, it seemed best to offer a ‘locked’ view alongside the iteration 
thank you thank you 
i’ve honestly been struggling with depersonalization + a lot of weird internal vibes, but it’s also been a very nice opportunity to re-heal some things that i missed the first time around. overall, v thankful and trending positive!

6 Likes
jimi23
1328
I’m considering investing in a Midi Fighter Twister as a Norns companion.
Just wondering on the mechanism by which the LED feedback for Cheat Codes works? Does CC2 echo MIDI CCs that the MFT are mapped to on PAD changes so the LEDs update? And are the encoders relative so there’s no jumping when moving between pads?
Also is this type of MFT integration generalised at Norns system level where I can map parameters in other scripts to CCs, and have that echo back to the MFT LED rings? Or is this a specific implementation to pair the MFT in the Cheat Codes 2 script?
Sorry for the basic questions, I can’t open the MFT template to dig about it seems without one attached!
Thanks 
Jonny
1329
This appears to be the Lua lib file that shows how the midi CC is sent back to the device. In the main script, you’ll see a lot of mc.mft_redraw usage to update the controller. My guess is that the template on the MFT is set up for the specific CC’s and encoder styles. Looking it over, I don’t see why you couldn’t use this code in another script with a little bit of effort, but I’ll defer that answer to Dan or somebody else who might know for sure. It seems flexible enough since it also applies to a faderfox.