v1.3.1 (officially) released!

all the livestream features, plus a sync’d/unsync’d random record probability treat for @swhic + @edison! also, much love and thanks to @hypnosapien for the impetus to dig deep into auto-slicing and deepening the script’s bpm awareness.

live buffer improvements

  • NEW: PARAMS > ‘1-shot sync’ allows 1-shot buffer recording to sync to the global clock, to capture clean quantized recordings. Options include ‘next beat’, ‘next bar’, and ‘free’ (no clock sync).
    • If set to ‘next beat’ or ‘next bar’, a running 1-shot recording will ignore additional triggers until it has reached the buffer window’s end-point.
  • NEW: PARAMS > ‘rec loop encoder resolution’ will auto-align the live buffer window to the specified resolution and will clamp encoders to add, subtract, or shift at multiples of that resolution. Options include ‘0.1’ and ‘0.01’ (standard), as well as tempo-aware ‘1/16’, ‘1/8’, ‘1/4’, ‘1/2’ and ‘1 bar’. To get odd divisions or lengths greater than 1 bar, use encoders on the [loops] page (while the live buffer is highlighted) to add/subtract/move the loop window incrementally.
  • NEW: PARAMS > ‘random rec probability’ can be set to randomly toggle recording into the selected section of the live buffer.
  • CHANGE: PARAMS > ‘live buffer max’ adjustments will automatically enforce a ‘global pitch offset’ to match.

auto-slice

  • NEW: ‘auto-slice bank’ feature will slice the current live buffer window across all of a bank’s pads. To perform the action, press grid-ALT + the first key in the row underneath the bank you wish to auto-slice the live buffer into.
  • NEW: ‘auto-adjust buffer’ feature will adjust the live buffer’s window to match the window of the currently selected pad in a bank. To perform the action, press grid-ALT + the third key in the row underneath the bank whose pad you wish the live buffer to mirror.

new default state

  • CHANGE: when loading a fresh cheat codes session, live buffer will not be automatically engaged/recording.
  • CHANGE: when loading a fresh cheat codes session, pads will be set to 1-shot (previously, set to loop).

etc

  • FIXED: if a collections-saved grid Pattern included a pad that was raised by a fifth, the Pattern would stop playing when it hit that pad.

endorsement of the year, tbh. and a lovely artifact? thank you!

39 Likes

I’m gonna be all over the quantized recording stuff @dan_derks , but you knew that already. This is glorious stuff.

Gonna have to cancel my son’s birthday tomorrow. As the years pass, he will forgive me, in time.

10 Likes

:balloon::balloon::balloon:

1 Like

super excited to dive in! :partying_face: :partying_face: :partying_face:

1 Like

oh shiiittttttttt!
haha hell yea man!
diving in this week!
thanks for the hard work

1 Like

Inspired by Dan’s wonderful online tutorial the other day I spent some time experimenting with the live buffers (and some new features) yesterday.

Here’s a section of a jam I had going with sounds from op-1 captured on the fly, all 3 channels set to the same live buffer and each channel capturing a different window of the buffer.
The video is a bit raw, but I think there’s some occasional sweet spots here and there :slight_smile: I love how you can subtly tweak the window settings on each channel to bring in new stuff to the whole, sort of like Cranes (<3).

Skip to around 2:30 for some unquantized pad playing with the new auto-slice function :sweat_smile:

19 Likes

this video is a wonderful display of technique! wowowow. you fed new information into the buffers at all the best times. super gorgeous, thank you for sharing it :hugs:

happy birthday to your son! tho hopefully cheat codes will hopefully cause no familial strife :sweat_smile:

1 Like

Thanks for the fantastic presentation and for Cheat Codes, of course. Digging in and loving it.

Two questions:

It seems like the Save Live Buffer setting (as described in the manual) is missing from the ‘loops + buffers’ PARAMS menu, or am I just missing something?

Is there a way to turn on the pad performance recording without a Grid?

Also, I realize this is not at the center of Cheat Codes necessarily, but: The TouchOSC 1/16 slice grid does some funky stuff with me – the slices might be from 1 to 1.15 seemingly at random, and some stuff like that. Will be happy to provide more details if you need.

Again, thanks!

2 Likes

I would also be interested in this.
Great app, thanks @dan_derks

1 Like

thanks for the warm vibes, both! :slight_smile:

eep! correct! you can still save your live buffers by toggling ‘yes’ for PARAMS > collections > collect Live buffers?, but I’ll reinstate these actions, as well. apologies, unsure how those got lost.

unfortunately, due to the high grid redraw rates of cheat codes, grid patterns w/TouchOSC lead to performance bottlenecks and so there is no gridless pattern recording. i am optimistic this will change as the code continues being refactored :slight_smile:

just tested, seems to be working as originally designed, but it’s worth noting that 1/16 slice on the TouchOSC template doesn’t reflect the auto-slicing stuff in v1.3.1 – it’s adjusting the window of that one pad to match the duration of a 1/sixteenth note at the current bpm. so at 120bpm, 1/16 slice will give you a loop length of 0.125 [= (60/120)/4].

would you rather have the auto-slicing function instead of what i just described?

I totally understand this, but maybe consider adding possibility to map midi noteOn msg just for necessary buttons.(idk if its possible - im not norns programmer (yet))
If it were possible I would even make a mini controller using teensy or arduino. :slight_smile:

ah, gotcha. yes!! i’ve had this thought before and always forgot to write it down, thank you so much for the reminder! logged it on my to-do list: https://github.com/dndrks/cheat_codes/issues/51

1 Like

i’m really flooding this thread, apologies y’all – but wanted to share the results of a lunchtime session.

i can’t believe i’ve been staring at these three 4x4 grids for the last 8 months and never thought “oh, these should just have an auto-advance mode.” so, did a proof of concept and i’m excited by the possibilities! going to add different behaviors, like snake and all that. but it really opens up the K3 shuffle action and the Pattern start/end points in a fun way :slight_smile:

here, a phasing arpeggiator from live sampling a single synth voice:

34 Likes

Watching recent developments I now really want to get myself a grid!

2 Likes

I actually thought of this a couple of weeks ago, but just auto advancing from pad 1 to pad 2, and so on. It was around the same time I mentioned quantized presses and auto slicing across the 16 pads regardless of loop length. But then I thought, perhaps that’s wanting this to be too much like mlr. But it would be super cool, especially with different step directions, random, and cool/creative things like snake patterns, as you mentioned. So with all the other amazing development going on with this, +1 for auto advance modes!

1 Like

Nah :slight_smile: them shining lights and the funk that goes with it, is a source of joy for sure.

dude… auto advance… so dope!
that plus random record has my norns idea handled…
so rad!

3 Likes

right on! yeah, that’s testing fine, excited to dig into snake movement :slight_smile:

i’m so glad you rallied for this (thank you so much, apologies for forgetting to tag you in the release announcement!!) and i hope you dig the implementation of this in 1.3.1 – i’ll continue refining, but here’s the spot in the livestream video that demonstrates the technique: https://www.youtube.com/watch?v=dNlWIG53YBQ&t=2564s

getting there with this – it’s testing alright, but I don’t love how the grid code handles the delayed execution. trent and i are digging into refactoring the grid code, which will help make this possible :hugs:

1 Like

Love all of this! Thank you!

I’m loving the new updates @dan_derks! The OP-1 sequencers sync beautifully to quantized recording :smile:

Is there an easy way to reset the rate of all pads back to default rate after they’ve been randomized?

1 Like