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

I must say, Lack of arc ability is by no means a deal breaker. It’s already extremely expressive without it. It’s hard not to always want to squeeze just a bit more out of the lemon. Don’t want to come off as greedy!!!

1 Like

I have some new updates (from the past few days) on this on my github. Still kinda laggy on arc stuff. I’m still somewhat at the mercy of how fast a particular script sends refresh updates. Can’t quite make the grid bits work properly with CC yet.

(I’m probably doing some super janky stuff highjacking grid globals, etc. :crazy_face: )

(or maybe the oscgrid not working because you’re doing some other magic with OSC messages and mine aren’t going through)

1 Like

Just tested the CreatCodes TouchOSC template on my iphone and yes it works, but the buttons are very very very small (on my iPhoneSE) :slight_smile:

2 Likes

the ipad TouchOSC layout can totally be adapted to iphone, yeah! just follow the naming of the ipad interface objects and it’ll all click in.

the main hope for supplying a unique interface (vs a direct 1:1 grid port) was to create a sort of template for folks to roll their own cheat codes interfaces. those hooks can be reused and adapted using any OSC platform/source.

use a webcam and Wekinator to jump between pads! use a Wiimote and Max to control rate! etc etc :slight_smile:

3 Likes

did you download the mac/win/linux app? that’s what you’ll use to send it through to your device

1 Like

THANK YOU for clarifying all of that for me!

1 Like