No, changing the levels on the level page works as expect and has no effect on the clock.

clock: ignoring resumption of canceled clock (no coroutine)

Im getting many lines of this while the script is running and nothing specifically when the clock stops. I am finding on testing today that the clock seems to dip (LED indicator and clock speed) when the 16n is sending a message for the Banks A, B and C. I note that I am not getting the same problem when the 16n is sending messages for global levels and reverb send etc.

Edit to say that I am using a CV Pal and sending clock info on midi channel 14 that is for clocking per the CV pal manual

1 Like

following up on this “accidental” discovery from some time back, I think this trick puts CC in “granular mode” :grin:

details and audio sample

I’ve set up my pads on all banks with the same piano sample. Each bank with different rnd settings, most notably rnd rate set to the same number (min = max) and with different clock divisions per bank


IMG_0868

20 Likes

i’ve been playing around with different envelope settings recently and getting some nice results! this is a flora sequence on the opz, with random recording at ~70%

3 Likes

Hy guys!!!
I’ve been away for a bit and so much going on here!!!
It is super inspiring how much you evolve in such a little time! Yeh yeh! Nourishing the motivation!

I bring some new free download samples to play with!!
I’ve been doing a first approach to Orgel Dream’s “Eoten” (noise, distortion machine, really recomend it) and I will explore it soon pluging it in to the Norns.
Also I was exploring more the orchestral sound lately and wanted to test several mic dispositions and my instrument sounds so…you will be bullied with orchestral textrure pieces ha!

As allways: https://www.alicianurhomusic.com/samples4lines The free download link.

I am so motivated now I have checked the last topics!!!
Happy weekend and happy playground!

P.D.: I started a twitch channel about music analysis of covers I will make. I will destroy them, and reconstruct them my way and meanwhile I will use them as musical analysis and arrangement theory subject . Every tuesday at 19.00. Now is Architect’s going on so , if you want to come arround, you are invited…some will be in spanish but also I will make the international secction. :slight_smile:

6 Likes

Hi @dan_derks Was looking at your last IG post about macro mappings and wondered if this works sort of like that Cartographer m4l device (https://jsmishalanie.com/cartographer)? Been having crazy fun with that lately

2 Likes

yessss, JSM’s devices ruuuule!

the idea is similar, but with specific implementation for cheat codes 2. i’m like, 99% done with this update (had a quick derail/existential crisis about what it meant for this script to have a transport – i think i figured it out, but it took so much reckoning lol), but here’s…

a quick overview of macros:

  • eight banks of eight assignable parameters linked by a single control stream (on-norns, MIDI, and/or crow)
  • assignable parameters include:
    • current pad
    • rate
    • pan
    • filter tilt
    • start point: fixed, so 0 - 127 crawls evenly-distributed points along the entire sample length
    • end point: fixed, so 0 - 127 crawls evenly-distributed points along the entire sample length
    • start (delta): relative, so deltas between last and current value either pull or push the start point
    • end (delta): relative, so deltas between last and current value either pull or push the end point
    • delay div/mult
    • delay free time
    • delay rate
    • delay pan
    • macro: sends this macro’s value to another macro
    • w/curve
    • w/ramp
    • w/fm index
    • w/fm env
    • w/fm num
    • w/fm den
    • w/lpg time
    • w/lpg symm
  • the ranges of each of these parameters can be clamped to a small subset of values, so eg. the full 0 - 127 range of a MIDI-mapped slider can move a filter by only a tick or two or sweep a sweet spot or span the extremes
  • each macro has a curve setting, which assigns an easing function to the outgoing data. these help vary the path data takes from min to max. eg. if a single macro controls delay rate for both delays, leaving all the other settings the same, adjusting their individual curves allows non-linear changes.
  • there’s also a randomize function (basically, press K3 when you’re on the performance screen [there are two screens, program and perform] and a random value between 0 and 127 will be seeded to the macro)
18 Likes

:sweat_smile:
wait i’m scared tho :sleepy:
what changed?

1 Like

lol, all positive and hopefully feels thoughtfully implemented. lots of new uses open up.

in short: nothing will change for people for whom transports aren’t useful in their music. these changes will be useful for folks who have been wanting to sync start/stop events between cheat codes and their other boxes, though.

9 Likes

YESSS
This is gold! Can’t wait to try Macros.

2 Likes

totally inspired by our conversation about delay filters! cheat codes has always had this library, but i only used one shape lol. it felt synchronous, so thank you for the push to explore!!

2 Likes

And w/syn parameter control!?! :slight_smile:

1 Like

@dan_derks would you be open to talking a bit about the process used in the promo vid? it’s different from most of the cheat codes stuff i hear and really dig it, trying to wrap my head around what’s going on

1 Like

oh! thank you, that’s super sweet :slight_smile:

it’s pretty much a misuse of the “MIDI echo” feature in the keyboard setup menu (this was before there was an option to send MIDI notes per pad):

  • OP-Z is receiving clock from cheat codes but isn’t controlling cheat codes via MIDI
  • the MIDI echo feature is designed to redraw the encoders on the OP-Z whenever a pad is selected, changing the LED brightness (to visualize loop position, level, and filter tilt), with the assumption that one would use the OP-Z to select pads via the OP-Z integration and that the “control” tracks on the OP-Z would be muted
  • control isn’t coming from the OP-Z (since grid is involved), but the pads are still sending what was intended as redraw info via MIDI back to the OP-Z, which changes the encoder values for that track
  • so, as the drum tracks play on the OP-Z, their parameters are being manipulated based on the playing pad’s loop position

tl;dr: this “pads send MIDI cc’s” thing is actually a feature of the next.release, so it’ll be easier to couple pads and cc’s out to any device more intentionally :slight_smile:

6 Likes

super cool, appreciate you brother!

If I understand this correctly the opz is kind of replicating arc control of cheat codes and playing drums?

rev 210208: macros, transport, midigrid, midi config, w/syn, even more stuff

this update accidentally became a sort-of-massive one. it’s all been super rewarding to work on, so i’m stoked for y’all to dig in!

if you’re feeling overwhelmed by all the new things, i completely feel you. take it piece at a time, hopefully it all feels fluid but if not, i’m here to help – there’s a ton of stuff in this update. also, please consider attending the cheat codes Music Hackspace workshops in a few weeks, where i’ll cover everything in-person :slight_smile:

macros

summary: @cosmicsoundexplorer asked a brilliant question a few weeks back about mapping crow inputs to parameters. this sparked some thoughts that were cross-pollinated by how I use smartphones (s/o @rjonline00), which led to macros – eight banks of eight assignable parameters linked by a single control stream (on-norns, MIDI, and/or crow).

enter: K1+K2 on the main screen

nav:

  • E1: cycles across the eight macros
  • K3: cycles between the slots selector and attributes for the selected slot
  • E2: on slot selector, cycles slots. on attributes, navigates across different values (when param isn’t none)
  • E3: on attributes, changes selected value
  • K1+K2: toggle all slots active/inactive (K1 + [E2 or E3] to toggle this slot active/inactive)
  • K1+K3: toggle between program and performance modes
  • K3: in performance mode, seeds random value to currently selected macro

available parameters | targets:

  • current pad | current pad in bank a, b or c
  • rate | current pad in bank a, b or c
  • filter tilt | filter for entire bank a, b, or c
  • start point + end point | absolute position for current pad in bank a, b, or c
  • start (delta) + end (delta) | relative delta change applied to current pad in bank a, b, or c
  • delay div/mult | delay L or R (requires delay mode == clocked)
  • delay free time | delay L or R (requires delay mode == free)
  • delay rate | delay L or R
  • delay pan | delay L or R
  • macro | control any other macro from this macro
    and then all of these are w/synth only:
  • w/curve
  • w/ramp
  • w/fm index
  • w/fm env
  • w/fm num
  • w/fm den
  • w/lpg time
  • w/lpg symm

crow control:

  • crow must be connected before launching cheat codes 2
  • navigate to PARAMS > CROW INPUTS to map each crow input to either macro 1 or macro 2
    • if you want to control more attributes, set either macro to control another macro

MIDI control:

  • navigate to PARAMS > cheat codes external zone > macros to MIDI map each macro
    • remember, as of norns update 210114, MIDI mappings auto-save!
transport

summary: previously, cheat codes didn’t really have a meaningful way beyond clock ticks to sync with other gear in an “everything should start at the same time” compositional style. with this update, everything can be synced, if you want it. you can press the spacebar on your laptop to play an Ableton Live Set and cheat codes will start arpin’ and euclidin’ at the same time. you can start your drum machines from norns. you can send a gate through crow to let your modular rig know its time to party. (nb. rnd values do not stop their generation when transport is off – if this is undesirable, lmk and i will address in a future update!)

enter: on the cheat codes main screen, hold K2 to bring up the new transport menu!

nav (all while holding K2):

  • E1: flip between transport start/stop and tap tempo
  • K3: if on transport control, will start/stop the transport. if on tap tempo, four taps seed a new BPM.
  • E2: adjust BPM by 1
  • E3: adjust BPM by 1/10

some recommended configurations for various use-cases:

clock + sync external MIDI boxes from cheat codes

  • set clock source to internal, Link or crow
  • navigate to the new PARAMS > transport settings:
    • toggle send MIDI transport? to yes for each MIDI device you want to start at the same time as cheat codes
      • confirm that your MIDI device has TRANSPORT RECEIVE (or similar) enabled
    • toggle send MIDI clock? to yes for each MIDI device you want to receive MIDI clock from cheat codes
      • you can also not send MIDI clock, if you simply want the devices to all start at the same time but run on their own metronomes
  • when you turn on the cheat codes transport, the specified external MIDI boxes will start at the same time and stay in time

clock + sync cheat codes from external MIDI boxes

  • set clock source to MIDI
  • navigate to the new PARAMS > transport settings:
    • toggle receive MIDI transport? to yes for each MIDI device you want to control the cheat codes transport with
      • confirm that your MIDI device has TRANSPORT SEND (or similar) enabled
    • confirm that send MIDI clock? for the device that is driving the clock is set to no

clock + sync cheat codes from Ableton Live

  • set clock source to Link
    • set link quantum to 4
  • in Live’s Preferences, find Link Tempo MIDI and enable Start Stop Sync (Live 10+ only)
  • in Live, set global launch quantization to 1 Bar
  • when you engage Live’s transport, cheat codes will start at the same time
    • cheat codes will also send MIDI transport + clocks to connected external MIDI devices, if they are set up according to the clock + sync external MIDI boxes from cheat codes above

clock + sync cheat codes via crow

  • set clock source to crow (clock normally via crow input 1)
  • navigate to the new PARAMS > CROW IN/OUT:
    • set crow in 2 to either trig: transport or gate: transport
  • when you send a trig or gate signal into crow input 2, cheat codes will auto-start at the next global “1”
    • nb. currently, there is no way to force the transport to start directly at the time of the received signal, it must align with the global clock’s current 4/4 count
    • cheat codes will also send MIDI transport + clocks to connected external MIDI devices, if they are set up according to the clock + sync external MIDI boxes from cheat codes above

clock + sync crow via cheat codes

  • set clock source to internal, Link or MIDI
  • navigate to the new PARAMS > CROW IN/OUT:
    • set crow out 4 to either transport pulse or transport gate
  • when the cheat codes transport starts (from any source), crow will send the specified voltage through crow out 4 to execute events across your modular system
midigrid

summary: if you have midigrid installed on your norns, you can use a Launchpad to access the same controls as a monome 64 grid. for more information about the 64 grid controls, see this image.

prerequisite: reference @Helen’s excellent guide to get midigrid installed and confirm you can control Awake with your Launchpad.

setup:

  • plug your Launchpad into your norns and launch cheat codes 2
  • navigate to PARAMS > GRID > midigrid? and flip to yes
  • LED style and grid size will auto-switch to 4-step and 64
    • these settings will autosave, so you won’t have to do this again unless you need to change something
  • if you do not see the cheat codes interface on your Launchpad, re-run the script
midi config

summary: @glia inspired a dig into MIDI cc’s, so you can now assign MIDI note and velocity + MIDI cc and value to each pad in each bank. this gives cheat codes greater control over external gear. you can choose to send either note or cc or both, depending on your needs.

enter: K1+K3 on the main screen

nav:

  • K3: cycles between header, notes, and cc’s
  • E1: on header, change banks. on notes or cc’s, scrolls down pads.
  • E2/E3: on notes or cc’s, change left / right value (- value means no data will be passed)
  • K1: on header, +E3 to change scale for selected bank. on notes or cc’s, toggles to CHannel.
w/syn

summary: w/syn control via note mode!

setup:

  • PARAMS > external zone: pad to note setup
    • under global, toggle w/syn output? to yes
    • under each bank, specify a w/syn voice and set a velocity 0-127 (nb. these scale to 0-5V, so try lower values at first, to avoid clipping)
  • PARAMS > external zone: w/syn controls
    • here, direct MIDI-mappable control over each of w/syn’s parameters
  • check out macros for macro control over the w/syn parameters!
even more stuff
  • change default state
    • you can now define the default state that cheat codes loads into – maybe you want your buffer segments set up a certain way, or want looping on by default, or need all the rnds all the time!
    • set up your new default and navigate to PARAMS > collections > save default collection to save it
    • get back to zero by opening maiden and deleting the file under data > cheat_codes_2 > names > DEFAULT.cc2
  • # tab in [loops] (s/o @swhic and a few others for the idea! [very sorry I can’t find the right posts])
    • provides a bird’s eye view on how all your banks are interacting
    • this was the original [loops] view in cheat codes 1
    • navigation:
      • K3: switch between header and body
      • E1: switch between lanes
      • E2: move start point (hold K1 for fine)
      • E3: move end point (hold K1 for fine)
      • K1 + E1: change pad / segment
      • K2 + E1: move loop window
      • K2 + K3: auto-chop to evenly distribute audio content across the 16 pads
      • K2 + K1 (tricky, sorta hold K1 a little): shorten pad loop points to 1/16th at current BPM
  • visual metronome in [loops]
    • adds the metronome from timing to the loops page (s/o @Clashley1 for the idea!)
    • see PARAMS > loops + buffers > global > visual metronome?
  • [timing] tap tempo
    • set the BPM based on feel (s/o @climatechanged for the idea!)
    • on the [timing] menu, hold K2 and tap K3. you’ll see the bpm at the top of the screen change in response.
  • filter tilt now MIDI-mappable
    • controls bank-wide filter tilt via parameters
    • see PARAMS > manual control > (x) values
  • new [delay] parameters (PARAMS > delays)
    • delay pan: L and R can be anywhere you want 'em!
    • delay filter curves: change the shape of the filter cutoff’s trajectory, especially fun if the two delay cutoffs are linked (s/o to @CarlosUnch for this idea!)
  • passthrough
    • if you have passthrough installed, cheat codes will load it
    • need it? execute ;install https://www.github.com/nattog/passthrough in maiden’s REPL + restart cheat codes.
  • namesizer
    • if you have namesizer installed, cheat codes will use it for collection naming (super fun!)
    • need it? execute ;install https://github.com/Quixotic7/namesizer in maiden’s REP + restart cheat codes.
  • [euclid] fixes
    • tightened timing mechanism, which fixed phasing issues
    • K1+K2 to reset all lanes to 1, K1+K3 to reset selected
  • global pause fixes
    • previously, ALT + pause would toggle each individual pad’s pause state
    • now, ALT + pause sets all pads’ pause states to current pad’s pause state
  • vertical rotate (s/o @amgnowhere for the idea!)
    • previously, you had to have your USB cable coming from the top of the grid
    • now, you can flip to the bottom, if you want: PARAMS > GRID > vert rotation
video notes
  • at the top of the video, I toggle on cc2’s transport, which sends a MIDI start message to the Analog Rytm
  • norns is also synced to Ableton Live on the computer via Link, which just plays a kick drum
  • most of the rest of the video is manipulating the macros feature (also new as of feb 2021). basically, K3 seeds a random value 0 - 127 to a macro which also controls filter tilt and delay rate

i used to play a lot of whac-a-croc when i was a kid (see https://youtu.be/ZLI5yeNXSg0), but instead of using the mallet i’d just use my hands. i’m glad to be revisiting this gesture with machines as an adult.

59 Likes

HUGE

I love these cc2 sessions w/ rtym btw

2 Likes

~~ repeatedly doffing my cap and throwing flowers in the direction of @dan_derks for this obscenely generous update ~~

4 Likes

The killer script and 20 characs🎉!

2 Likes

This is amazing! You are a beast!

1 Like