Shfts - random sequencer for norns, crow, and grid

shfts

random sequencer for norns, crow, and grid
[updated Dec. 4 - notes below]

dual-voice binary shift-register sequencer. outputs midi and cv (via crow). single or dual quantizer with presets.

shfts features 2 fully independent voices, each driven by 2 shift registers - 1 register for pitches (behaves like a turing machine), and 1 register for gates (which behaves a little more like Grant Richter’s Noisering, with a dedicated bias control). Independent gate/pitch registers allow for the decoupling of rhythmic and melodic content for more flexible pattern curation, as well as opening up possibilities for direct manual and voltage control.

each voice has a dedicated clock divider and loop length, as well as dedicated controls for:

  • trigger bias (more/fewer triggers)
  • pitch register change probability
  • trigger register change probability
  • output octave range (0-4)
  • output offset (base midi note)
  • clock stop/start
  • manual step

historically, this script grew out of a performance at @andrew’s, where I used Marbles to drive two channels of Rene for flexible quantization - this was probably the most fulfilling performance I’ve done in years, but I had some problems with Marble’s insistence on complementarity, and struggled to create negative space; trying to adapt the best parts of that workflow to norns/grid is basically what led to the current design.

I should also acknowledge @dan_derks for leading the way and being an inspiring artist and instrument designer - none of this, especially the crow integration, would have been possible without his work on less concepts.

there’s probably a follow up post to be written on the relationship between shift registers and cellular automata, and corresponding tensions between serendipity and control in creative processes. personally, I can say that embracing generative techniques, and shift registers in particular, has renewed my musical practice over the last year; developing a daily routine that doesn’t demand the focus and intentionality of composition has been life-changing for me.

this script is pretty tied to my own idiosyncratic musical practice and interests, but I have worked to make it adaptable to other settings; if you find it useful, or have ideas for its improvement, I would be delighted to hear about it

Requirements

norns + grid. outputs midi (device and channel selectable per voice) and cv (via crow).
Accepts cv clock input on crow input 2.
I haven’t done a ton of testing on the 2-channel quantizer mode yet; will be improving UX and adding a persistence mechanism in the coming weeks.
Crow integration is still WIP, feedback welcomed.

Documentation

Download

beta https://github.com/rwhaling/shfts/releases/tag/beta

42 Likes

Oh wow! Thank you for making this!

1 Like

Nice work – looking forward to checking this out!

1 Like

Just pulled. This looks awesome. I think it’ll be an exciting patch to use while learning VCV Rack and practicing sound design in there… Thanks!

1 Like

This is such a cool little app! Haven’t tested midi yet, but have run into a few things with the crow implementation:

  1. seems that the clock divider doesn’t do anything (on either side), though the incoming clock signal seems to work fine.

  2. stop/start do not seem to work on either side

  3. 2 channel quantizer param does not seem to do anything. as a matter of fact, when set to 2, no sounds comes out at all

I will keep poking around. This is a really great little app, so thanks @germinal!

1 Like

thanks for the feedback @yobink!

I think that my plan is to have input 1 and input 2 on crow trigger each voice individually, bypassing the clock dividers and start/stop toggle; but I can see an argument for retaining the ability to clock it with a single pulse signal, while respecting the dividers. it would be nice to keep that as an option in the parameters at least.

thanks also for reporting the issue with the 2-channel quantizer - that is my next priority.

let me know if you run into any other issues!

1 Like

updated!

beta release: https://github.com/rwhaling/shfts/releases/tag/beta

notes:

now properly support crow trigger inputs on inputs 1 and 2 - these inputs will step either voice directly, without respect to clock-division settings; highly recommended to use with an external quantizer, LFO, benjolin, or other chaotic trigger source for good times.

current quantizer note selection now shows at the bottom of the screen, but the display is still a bit cryptic - C = 0, C# = 1, D = 2 … B = 11, so if you have C, E, and G selected, it will display “0 4 7”, for example.

dual quantizer mode and quantizer preset save/load is now working! I’d like to add multiple banks and tweak the UI some, but this is still a big improvement for my workflow, at least. in dual quantizer mode, the left-hand side of the grid quantizes channel 1, right quantizes channel 2. saved quantizer “scenes” are loaded from disk at startup, use the “quantizer save” button in params to write the current bank to disk, otherwise your changes will be lost.

huge thanks to @yobink and @kasselvania for the detailed feedback! I’d like to do a lot more work on UI and UX, especially around the quantizer. Will hopefully have crow-just friends integration working in the next release as well.

here’s a quick demo of the dual quantizers I posted this weekend:

11 Likes

Hi there,
thanks so much for making this, I’ve been really enjoying it over the last six months, maybe even obsessed with it!

My coding abilities are next to nothing but I’m about to dive in and try and duplicate the two voices so as to have four laid out on my beautiful old monome 256. Do you have any suggestions on where to start or any pointers please?
Cheers,
Dan