Woah, I didn’t expect such a nice implementation for delay L+R synced parameter changes!
The thing that it also works with MIDI mapping solves two features I wanted at the same time.

Great job once again @dan_derks! :smiley:

1 Like

release candidate 1 (fixed 200930)

(^ if you keep “MIDI echo” on but use a grid to control, CCs for each pad are sent out to a connected MIDI device – in this clip, an OP-Z’s drum kit’s parameters are being manipulated based on which pad is being played in cheat codes and what those pads’ start/end points are. super super fun.)

the final round-up on obvious troubles. addresses community-logged issues + many of the feature requests – anything else has been collected in #31. only fixes from now on, have to get documentation out the door!

in the latest commit:

sync bpm to free pattern

  • allows a specified free pattern to set the bpm. SUPER fun, works best with unquantized patterns (quantized is weird because the clock is set to a bpm based on pattern length and that changes the quantized values).
    • you can just key in a super loose pattern with all the feel you wanna throw at it and any other distro’d patterns, arps, euclid, delays, everything syncs to it.
  • PARAMS > sync bpm to free pat [x]? to set which pattern(s) should set the bpm
  • most useful to set one pattern as free, the other two as distro (which will lock their resets to the new bpm)
  • housekeeping: added a .name attribute to pattern_time, so I can track which pattern clock is being synced to

delay

  • added “link all” feature to [delay] where all params inside of the selected delay page can be linked with k1+k3
  • reversing delay linked rates now works

arps

  • grid arps no longer auto-trigger when on the arps page
  • super fun thing: hold k1 on arps screen to set the clock sync rate of an individual pad
    • this doesn’t mean that you’ll get perfect sequences of note lengths (eg. holding 1/4 + 1/16 + 1/4 + 1/16 won’t equal 2.125 beats)
    • what you do get is much more playable:
      • an individual pad will repeat at the specified sync rate
      • if a pad of a different rate is introduced into an arp, all pads momentarily take on that rate. gets into some super cool on-the-fly rhythm programming

euclid

  • addressed #32, where euclid clocks would sometimes fail and were unable to be restarted – k1 + k2 to restart all, k1+k3 to restart selected

UI + etc

  • changed around some of the [loops] UI for better conceptual flow
  • current collection is displayed on main menu screen
  • fixed persistent state PARAMS, so they all load/save correctly between sessions/changes
12 Likes

installed release candidate 1. is this a good place to report a freeze? locked up while using cheat codes and had to hit the power on the back. i had 4 paramaters being randomized, and 2 arps playing. then i tried to record a pattern on the third buffer, and audio was stuck looping the same fraction of a second over and over while norns was unresponsive. still relatively new to norns as a whole, so if there’s any way to be more helpful with this lemme know.

1 Like

wow dan you’ve done an incredible job with this, the delay lines have become their own autonomous spectral assembly lines!!! can’t wait to bounce around in this…

wondering - as there’s an option to go up a 5th would it be useful to be able to go down a 5th with say an alt - 5th combo ?

2 Likes

hey hey!

(NOTE: I can totally repro the issue! seems like pattern recording got weird, hang tight y’all!)

the best reports are ones where folks are good humored, communicative, and patient. in short, you nailed it!

more details on solid practices

actionable freeze + crash reports are definitely helpful, though a bit difficult to formulate. generally, i think an actionable report needs to pass the reporter’s gut-check of whether they can reliably reproduce this issue with the steps they’re providing (on the latest OS + version of the code).

  • if they can’t, but they run into the same issue a lot, it’s really helpful to know what in their workflow is common across the instances? eg. what hardware is connected, which feature is most used, does a specific action cause the trouble?
    • in the case of cheat codes, this sorta stuff is most helpful to know:
      • what hardware is connected?
      • as many of the specific settings being used – eg. if a pattern is being recorded in loose and the quantization parameter is on and the bpm is being set by the loose pattern. or which exact rnd’s are firing off.
        • in general, the best practice is presenting as minimal a repro case as possible – if that requires a buncha features turned on at the same time that’s totally cool, but if you can dial it into “here’s three steps to broken” then that’s even better :slight_smile:
      • whether you were manipulating live audio or a clip?
        • if live audio, were you actively recording / had random recording going?
        • if clip, if you can supply the file that’d be awesome.
  • if they can repro the issue, then it’d be super helpful to have the output that gets printed to the maiden REPL – so, connect to norns.local and watch the console space for any messages as you repro the issue.
    • if you have access to past releases, regression testing is above and beyond helpful. if the feature that causes trouble is present in a prior release and can be tested the same way, that can help indicate if the issue is new to the latest code changes or has always been an issue.

all to say, your report was totally helpful because it could be reproduced reliably (looks like the pattern to bpm feature created some weirdness) – but if you run into something weirder down the line, those guidelines are good to go off of. and thank you so so much for engaging with the script!


you can give each pad a semitone offset, over a 5 octave range!

  • select the pad you want to adjust
  • on the [loops] page, hold k1 and turn e1 on the corresponding lane
  • you’ll see an offset option appear. release k1.
  • use e3 to specify a -7st offset for the selected pad (or use e1to change pads)
  • if you want all pads to have that offset, hold k1 while adjusting the offset and all pads will inherit the current value!

currently, alt + combos are for global inheritance and i think that shouldn’t be broken. but adjusting the offset is a really nice way to add variety :slight_smile:

2 Likes

@anxietymachine, @liquid_citizen, and anyone else who downloaded the release candidate yesterday: there was a division by 0 that completely stalled patterns out :slight_smile:

it’s been fixed thanks to some swift and clear bug reporting! posted above and here: https://github.com/dndrks/cheat_codes2-beta/archive/rc1-fix.zip

1 Like

release candidate 2: last-minute additions and tybg-level fixes

ADDED:

  • [euclid]: auto rot + auto off! increments either rotation or pad offset by specified value every time the playhead hits the end of the chain
    • selectable when holding K1 on the right-side controls
  • [euclid]: when euclid is firing off, pad presses are not voiced. instead, they assign the euclid voice’s base pad
    • this creates a super fun way to swap pad triggers without interrupting rhythmic flow
  • [arps]: pads will arpeggiate between the last-pressed batch (see PARAMS > grid/arc patterns > arp hold style to switch between this default and “additive”). super playable!

FIXED:

  • finally found the delay feedback issue (thank you for the report @ypxkap!) !! really dumb, just an incorrect variable that would use pad ID for softcut voice ID
  • when pads were enveloped + paused, small blips of sound were audible as the envelope state was checked
  • restoring a collection from a previous beta would cause errors due to new table entries
12 Likes

thanks for that euclidian pad press change. I can’t wait to try it.

2 Likes

docs are getting theeeeeeeere. this look alright to folks?

37 Likes

It’s looking beautiful Dan!

2 Likes

hi! must be missing something simple but I can’t seem to get the live buffers for 2 & 3 to record fresh input if 1 has already recorded something? I am switching them at the bottom of the grid but it seems to default to copy what’s in 1 across to the others. Is there a menu setting that would be causing this? thanks!

hey hey – weird, not seeing this on the RC2 posted a few days ago and definitely not a feature.

to test, I did the following:

  • started a fresh session
  • enabled Live buffer 1, recorded audio in
  • enabled Live buffer 2, recorded audio in
  • enabled Live buffer 3, recorded audio in
  • used ALT + first buffer assign button on bank a
  • used ALT + second buffer assign button on bank b
  • used ALT + third buffer assign button on bank b

just to check, are you assigning your banks to the three different buffers? should look like this – also, @tyleretters, I love GridStation!!:

6 Likes

big doh,apologies I didn’t realise they needed assigning!

1 Like

ah, that’ll do it! it’s also super fun to tell different pads in a bank to reference any of the 6 source buffers – but this also means there’s no automatic “buffer 2 goes to bank 2” pre-assignment when you start the script. they all just default to Live buffer 1 and let you take it from there :slight_smile:

3 Likes

more than allright!

wow

1 Like

Man I’m so excited. I purposely just finished building a grid, just for CC2 and its delay! Can’t wait to learn to use cheatcodes 2 and the grid!

Thanks so much @dan_derks

1 Like

Hi,

attached you will find the beta version of my cheat codes cheat sheet. Some remarks about the state:

  • I mostly documented how to use the grid; this is highly selective but a side product of me working with cheat codes; also I think Dan’s documentation will be the main source of information and this cheat sheet might serve as a supplement.
  • I am aware of the fact that the current version is not terribly consistent as to the mode of presentation, shades, fonts and so on. The sheet originally came from some of my notes and as I went along I started to document more features.
  • You will probably find errors and misunderstandings on my side, please let me know.
  • I am not sure this is the ideal print version (some shades seem to be to light)
  • This is based on an SVG (made with Inkscape); if you feel like making your own cheat sheet based on this let me know and I will publish it on Github as soon as possible. I will do this anyway but first I wanted to somehow complete the current version and (if my time allows) incorporate possible feedback.

cc-cs-beta-1.pdf (240.4 KB)

Anyway, I think it can be of some help while exploring this wonderful application. Thanks a lot to Dan!

18 Likes


short little doodle while testing cc2 – watch out there is one sound that is a little bit too loud towards the end lol. got super into the groooooove on this one! i’ve been having a blast with the new delay page and really trying to master the arps too!

8 Likes

Wow this sounds amazing!

1 Like

Feel like a “dummy” for asking but are you able to “overdub” over an existing pattern once it has been recorded? I looked through the manual but did not see any mentioning of a feature like this?
Thanks in advance Dan! :wink: