Yes, this makes total sense. It’s more MPC-style sample cutting than MLR-style sample cutting. Thank you!

1 Like

the length of the 16th note division provided by Zilchmo row 4 [ ] [ ] [x] [ ] totally changes.

but the first-load default config of 16 0.5 second slices is solely just to get 16 even slices of the 8 second buffer. in many ways, it was one of the earliest non-UI design decisions – I wanted folks to be able to see a clear relationship between the 8 second buffer and the 16 pads.

(an aside: cheat codes was first conceptualized to live sample only – I guess I originally just wanted a super playable freeze pedal, lol)

while this default isn’t bpm cognizant, I just figured knowing what the default state was equal to in bpm would help with loop pre-making :slight_smile:

right – the pad’s durations don’t change if the bpm changes. in fact, the bpm at first load is 110, so those pads really don’t care :upside_down_face:

generally, I didn’t want to impose bpm-centricity as the primary mode – I like that cheat codes supports a weird, un-clocked, wandering style of exploration.

but I also wanted to stretch its capabilities in clocked contexts…and that really came together in this last update. so…

bpm adjustments influence:

  • distro, quant and quant+trim Pattern rec modes (how are notes distributed across the Pattern, since they aren’t loose)
  • the rate that a quant or quant+trim Pattern plays back at (so like, if you record a q or q+t Pattern at 90 bpm and then increase the bpm when the Pattern plays back, the Pattern will speed up to match! the video was long enough so i didn’t mention this there, but it’s in the manual)
  • the slice length that Zilchmo 4th row [ ] [ ] [x] [ ] gives (1/16th of the current bpm)
  • the delay time factor
  • pace of external clock signal

so, generally, when I change the bpm during a cheat codes session that has quant'd or quant+trim'd Patterns playing, I also do a quick ALT + Zilchmo row 4 [ ] [ ] [x] [ ] so that my loop windows adjust (then maybe I use the new focus hold function and Zilchmo row 4 [ ] [x] [ ] [x] to 2x a few of the loops). having this gesture be an easy-to-execute choice made sense for the most expressivity.

hope this helps clarify? lmk if you have any other q’s :revolving_hearts:

6 Likes

I saw someone on Instagram describe cheat codes as something along the lines of an elektron style p-lockable loop mangler. Anyways I was deeep in a session last night and that popped in my head, then that led me to the thought of being able to set delay sends per pad. It would get weird and groovy and so so cool. But it’s already so so so cool and we really don’t deserve all the hard work you’ve put in to this wild script. But… maybe… :sunglasses:

Thank you Dan, you’re the best. Maybe I’ll share some sounds soon. They’re piling up

1 Like

ah! the infrastructure for this is already in place! there are actually separate variables for left_delay_level and right_delay_level per pad. I just put the breakout on the backburner. [delay] in general needs a little love.

when I can, these will get exposed, thank you for reminding me (and for your very kind words – share those sounds, please!!)

2 Likes

Is there a way to connect TouchOSC in this as a Grid, Arc or just convert it to MIDI over wifi?
MIDI mapping doesn’t seem to work over TouchOSC.

1 Like

this might be of interest (if you haven’t seen it yet): TouchOSC templates for Grid and Arc

fwiw, i’m currently rewriting MIDI interactions for cheat codes – not as a replacement for grid or arc, but as a separate performance modality. trying to identify + celebrate the idiosyncrasies of each control paradigm feels like a more holistic approach and i’m excited by how using only a faderbank and the on-screen controls completely changes the way I play.

there will be an accompanying “gridless” video once it’s all wrapped :slight_smile:

edit: @CarlosUnch, this convo led to a series of TouchOSC template experiments. I was able to replicate the essential grid gestures (pad selection, pad loop on/off, rate/direction, levels) on an iPad. I’ll be cleaning it up this weekend to include loop points + loop windowing, but was really encouraged by the experience (tbh, I was dreading midi faders / no-feedback-knobs when it came to a lot of these parameters). it won’t replace formal grid interactions + there won’t be a zilchmo panel, but it should get folks a lot further than the current gridless workflow

5 Likes

I could see the trusty nanoKontrol2 being pretty nifty in this situation as well! excited to dive in to 1.2… I have a lot to catch up on.

Hi, there is something I don’t get with the alt+f key + screen functionality. Usually it takes me to the filters screen. I’d like to have access to pad rate screen. What do I miss? Thanks

this screen?

image

it’s (only) accessible with a norns K1 hold when you’re in [loops]
(fwiw, it’s a screen primarily designed for gridless play, so it felt right to have it be norns-hardware accessible screen rather than thru grid. though, lots of fun stuff to be done here while also using grid!)

does that help? just lmk :slight_smile:

2 Likes

That’s amazing news for me! It’s definitely what I’m looking after with CC. Currently I’m using the faders of my Akai mini since I’m missing parts on my faderbank to finish the build; set to levels, pan and rate playback of each loop. I’m not using pattern recording, timing or anything to do with pads (just set to a1 b1 c1, each one nicely tuned though), yet it’s an incredibly rewarding instrument.

In my experience, since to me CC is more based on feeding different sounds to it and looping them, I’d love to have MIDI control over:

  1. Record ON and OFF for each Live buffer separately. This way I could toggle record on more than one buffer at the same time. Just a fader (per buffer) going over 50% would be fine to toggle record ON.

  2. Map 6 faders to the starting and end point of each loop. I play a lot with this to create polyrhythms and would be amazing to have direct control of the three loops at the same time (I’m seeing myself using faderbank vertically alla Grid). Visual feedback from the screen would be enough to know if you are reaching the end point with the starting point.

I also thought that could be cool to have a crossfader to swipe across the three loops, like a master level blender.

Pad selection with a regular MIDI grid would be nice to have some instant preset pitch and pan shifting (with the faders you may end up tuning a very high pitch sound, or make it disappear if you are not careful), but we are entering in the wide realm of what CC is meant for. It is control I don’t currently need.

I’m really exited about what you are cooking here Dan. I hope I can give you some useful feedback.

3 Likes

Ah, would be also great to have a bunch of LFOs assignable to everywhere and having “depth” control MIDI mappable as attenuation. That would be THE thing.

Granular style for example, randomise the position of the playheads.

Maybe that’s easy to add just copying the code from scripts that have assignable LFOs. I have no clue :slight_smile:

Edit: yes, I see there’s a randomise position of playhead command by using Grid, I have no idea if you can automate that though.

Wanna compare notes on this? I should revisit those grid/arc templates. :slight_smile:

3 Likes

Quick Audio routing question; while not distincly Cheat Codes related, it really becomes the biggest issue WITH Cheat Codes:

I want to be able to use my OP-1, Ableton AND VCV Rack as potential live inputs to my Norns/cheat codes, but I also want to bring Cheat Codes BACK in to my computer…

Some of the ways I’ve tried to do this is using my audio interface and routing audio in either VCV or Ableton, to little success (spoiler alert, FEEDBACK).

What I have as a dream setup is: OP-1 in to audio interface/computer so I can add filters and effects (either in VCV or in Ableton). Then, have Ableton (with the OP-1) and VCV in to one of the two norns input ports, with potentially my rack in to the other and have the norns input monitoring be Mono.

I would then like to be able to, say, play/generate a drum pattern or sounds in Ableton that does NOT go to the norns (rather, runs parallel), yet have things like soft synth or other audio tracks that DO go in to the norns in that chain.

Now, this is totally possible thus far. Basically turn monitoring in Ableton on or off, or just connect a ‘cable’ in VCV to the right output…

The problem occurs when I want to bring Cheat Codes BACK in to my computer. Basically, ableton won’t let me route the audio (to my knowledge) without the monitor being on… Am I wrong about this?

I would like to be able to then record my Cheat Codes session ALONGSIDE the beat/drums/whatever else I want running parallel to Cheat Codes.

Does this make sense? Does anybody have success of running audio from the laptop without a monitor, to the norns to be used in a program like Cheat Codes and then the Norns/Cheat Codes audio being monitored and recorded?

Odd wording, I know…

hey hey!

this signal path you’re describing doesn’t sound different from integrating an external FX pedal with Live – but maybe i’m missing something? thankfully Ableton has this covered with their Ext. Audio Effect guide. let me know how it goes!

edit: ah! just saw you cross-posted in the Ableton Live thread! Ext. Audio Effect should totally work :slight_smile:

4 Likes

so this video is easily top 3 momome related learning resources to me. i have adhd (not super bad, but bad enough to have been aware of and intending to read the adhd thread on here since it started and never quite getting around to it…), and while manuals or videos with text on screen work in a pinch, something about the human voice allows me to connect with and internalize information so much more easily. so thank you for not only taking the time to film and edit it, but also being willing to include actual human noises in it!

since you asked what else you want covered, i would love for the metasequencing page to get the same treatment… :raised_hands:

8 Likes

Hey @dan_derks is it possible to add a random record feature? So the buffer(s) start/stop recording randomly in a probably defined time space? Thank you as always.

happy they’re helping :slight_smile: thank you for the kind words + feedback :revolving_hearts:

will add to the video queue!

I actually added record toggling to crow to help make this a possibility with an external random source – crow input 1 will turn recording on/off for the currently selected buffer.

if you’d rather have it baked into the script, this is a fantastic thing to roll into your local copy. buff_freeze() is the function that needs to be called randomly. so, you could totally just throw this into the beginning of the script:

random_record = metro.init()
random_record.time = 0.5
random_record.count = -1
random_record.comparator = 99
random_record.probability = 50
random_record.event = function()
  random_record.comparator = math.random(0,100)
  if random_record.comparator < random_record.probability then
    buff_freeze()
  end
end
random_record:start()

and you can just reassign random_record.probability on the fly (lower values = lower likelihood of a toggle event). random_record.time could also be changed if you want the toggle dice to roll less/more often than every half second. you can also make these parameters, if you want. depending on how folks respond to it, i’d be happy to throw it in down the road :slight_smile:

lemme know how it goes!

7 Likes

hey ya @dan_derks!
had a glitch happen last night during last night’s broadcast…
not sure if this has been addressed.
:stuck_out_tongue:
i had all three sequences running playing samples with ARC recorded movements as well.
all three banks had short envelopes.

when stopping a sequence on bank B and C…it would get stuck looping a sound.
to get it to stop i would have to trigger another pad in the bank.

it wasn’t consistently occurring.

v1.2.1 (requires norns update 2000328)

improved:

  • params menu overhaul. cleaner, better flow!
  • arc now has two pattern playback modes – passive and active (@laborcamp)
    • passive: recorded gestures won’t affect currently selected pad unless the currently selected pad is the pad that was selected during gesture recording
    • active: recorded gestures will change currently selected pad to whichever pad was selected during gesture recording
  • MIDI can now control pad selection, rate, panning, level, start point and end point

added:

  • tons of hooks for bi-directional OSC, which led to a TouchOSC iPad interface to control cheat codes! opens up a ton of new possibilities for when you don’t have grid or arc handy.

fixed:

  • LED turn-off timer for one-shot recording mode

nb: if you’ve previously installed any experimental oscgrid files, please remove them.
cheat codes manual - osc supplement.pdf (598.8 KB)
cheat_codes.touchosc (3.5 KB)

26 Likes

hey hey!

this falls within tolerance

the envelopes (and filter slewing) are actually just data being manipulated with very fast metros vs using functions that are baked into softcut. the difference is efficiency – computing short envelopes that are being retriggered through Pattern playback and applying 100’s of micro-adjustments to softcut through the lua layer is just not ideal. but it’s generally very workable, so I went with it.

the softcut rewrite will bake these in (and tons more), so this won’t be a forever problem :slight_smile:

fwiw, a looping pad that has an envelope applied to it is still a looping pad – ideally, its level gets brought down to 0 through the envelope function, but if something interrupts the metro and the envelope function isn’t able to complete, then the loop’s level just remains at its value.

if you are running a particularly resource-heavy session (multiple grid + arc patterns playing back with envelopes and filter manipulation and live recording and reverb/compression) and you want to use short snappy envelopes (< 0.5 sec), the best way to avoid the “forever loop” is to just make your pads one-shots instead of loops. you’ll still get the nice curve of the envelope on the level as the one-shot plays, but you won’t run into a looping pad if the envelope function isn’t able to complete for some reason. it’ll just play the one-shot and stop.

hope this helps! :slight_smile:

1 Like