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

Wow, this OSC supplement is really cool! Is this more meant to be a full control method? Or a bit extra on the side of running CC in the original norns/grid setup?

resolved error

This update killed CC in my Norns shield.
error: init on screen.
Slept through it and the same thing :confused:

resolution: needed to update shield to 200328

Just finished the update and everything is running smooth. Collections saved :relieved:, just reverb and comp settings reset.
Thanks a lot for the update! Fun times ahead.

oh, good q, thanks Kassel!

the TouchOSC layout is meant to be a full standalone alternative.
it’s got some nice shortcuts + unique gestures, designed to give expressive control over cheat codes to those who do not have access to grid or arc.

the TouchOSC interface became a priority when I was testing the MIDI control points:

  • the core “thing” about cheat codes is pretty much quickly creating and recalling micro-presets of a bunch of different parameters. that’s what the banks of pads are, you know?
  • but once you change “pads” with a MIDI slider, none of your other sliders represent the new parameters.

while controlling loop points with MIDI can definitely lead to fun situations, the full performance experience doesn’t have parity with using grid or arc. so, I wanted to build an entry point for folks who don’t have those tools, but maybe have an iPad handy (TouchOSC runs on iOS 5.1.1+, so you could use any generation iPad).

for now, I’ve built in barriers so you can’t use the TouchOSC layout and a grid at the same time – the redraw rates are too high and performance bogs down.

5 Likes

Thanks for the clarification, and its really cool of you to build a template that gives non-grid folks a chance to get at this script!

One thing that would be cool, would be a touchOSC template for only SOME of the things going on with Cheat Codes (maybe mainly just the arc controls since thats all that’s missing). I wish I had the chops to assist @okyeron on his grid/arc OSC implementation he’s been working on.

But hey, I’ve always wanted an arc and hope for work to be at the point to provide such prosperity to make it a reality, who knows!

Thanks again though, @dan_derks, amazing and inspiring work as always!

1 Like

just connected TouchOSC and it’s AMAZING. Congrats! Is there a tip jar somewhere?
Personally this is saving me a lot of work I was planning to do since I’m basing my performance around CC (did one yesterday on Instagram :slight_smile: ).

In the params, I feel OSC IP or OSC port are ambiguous - as they are the destination or outgoing addresses.

This also feels like a weird default to me - esp since my local network is 10.0.x.x
params:add_text("osc_IP", "OSC IP", "192.168.")

Works like magic tho! :pray:

1 Like

lol, yeah, i’ll clean up some of the residual code, but once you configure the TouchOSC settings on the iPad and send an OSC message to norns, those params will just auto populate. they’re pretty much there to help folks troubleshoot – if the params don’t reflect the numbers on TouchOSC, then that’s a clue that things need reconfigured in the app

1 Like

i feel you on this – the trouble isn’t in controlling parameters, but the redrawing and re-syncing when three grid Patterns are running. I was getting dropped grid packets and major slowdowns running Patterns, because the core cheat function was also trying to send all of those parameter changes to redisplay thru TouchOSC.

this led me to hardcode a flag to isolate the two interfaces from each other. but, writing it out, I could actually just break packet sends during Pattern playback, since that’s the only time it becomes problematic. that’d allow for folks to be able to, for example, make an iPhone layout with a buncha encoders to finetune things – which would just become unusable once Patterns are going.

@okyeron, super curious to see what you add to TouchOSC templates for Grid and Arc – i feel like the slowdowns are inevitable if we attempt the refresh rate of grid + arc, but it seems like you’re finding nice ways to stagger data + packets.

hope all’s well with everyone!

2 Likes