(Pamela’s old) toolkit
(early beta version)
While helping your great aunt Pam clean out her basement, you happen upon a large steel box of LFOs, rhythm generators, mults, and sequencers. She says she got a lot of milage out of it, but you can have it now. She’s running a whole maker-space now.
Okay what is it really
It’s a norns mod. When you activate it, every script will have four rhythm generators (capable of doing all kinds of rhythmic division and euclidean stuff), four LFOs, four sequencers, and four mults accessible in the params menu. These can modulate parameters of any script, and you can mix modulations into the params. Use the menu of the matrix
mod to adjust the mod matrix.
Inspiration and influence
The usual co-conspirators of @zbs and @nonverbalpoetry were talking about the general idea with me a few months ago, and I hope this is true enough to what we were discussing. I kind of wrote all the code on a coding-bender in the interstices of my day over the last week.
Influenced by ALM Pamela’s New Workout, of course. Also to some extent by NE Mimetic Digitalis, for the “shred” and “zero” parameters of the sequencers. And Mylar Melodies’ patching style.
Requirements
Norns
Warnings
- This mod redefines some of the core params code. I think I did this relatively innocuously and in a way that won’t affect anything if you aren’t explicitly modulating it, but in case it explodes something you can deactivate the mod, restart norns, and you should be back to normal.
- Early beta. Use it, but it’s possible some parameter names will change and such.
- If you add a parameter to the script you’re using it with, your psets might load with the wrong target (since they’re saved by number)
- Some parameters might work poorly with this style of modulation. Anything that has a get-modify-set in a handler somewhere will be unpredictable. Script authors can change their code to account for this, but that’s work. Using
delta
on the parameters should be fine.
Documentation
!!! IMPORTANT. The toolkit mod now depends on ;install https://github.com/sixolet/matrix
. Install and activate the matrix mod before installing or updating toolkit.
- Install the mod from maiden
;install https://github.com/sixolet/toolkit
- Restart
- Activate the mod in the mod menu
Now you should see, at the bottom of your script, sixteen new param groups — four each of lfos, sequencers, rhythms, and macros. You can edit the properties of the modulation sources in the params menu, and then apply them to your various parameters by going to SYSTEM > MODS > matrix
, selecting the param you want to modulate with K3, and mixing in sources of modulation by scrolling to the various modulation sources and adjusting the amount of modulation with E3. Linear parameters will be modulated linearly, and exponential parameters will be modulated exponentially.
LFOs
Four shapes: sine, tri/saw, pulse, random. In the tri/saw shape the “width” parameter controls where in the wave shape the peak is.
Rhythm Generators
You pick the division in terms of type of note — 1/4 is quarter notes, for example. Then you pick a length, an offset, and a fill for the euclidean parameters. The fill and offset are defined as a proportion of the length filled, since I didn’t want to worry about undefined values while length changed.
The targets for rhythm generators are binary parameters and triggers. The binary parameters will be set to 1 for every step the euclidean generator contains a beat, and off when it doesn’t. The triggers will be triggered on every step the euclidean generator contains a beat.
You can also pick a swing. Right now there’s some kind of weirdness in lattice that makes swung eighth notes not line up with quarter notes, maybe wait for that to be fixed before using those in combination.
Sequencers
Each sequencer has up to 16 steps, and has a trigger to advance and one to reset. You can patch rhythms to these advance or reset triggers if you like. They also have zero
and shred
parameters. These control, respectively, the probability that the sequencer will zero a step upon leaving it, or that the sequencer will randomize a step upon leaving it. These allow making sequences that mostly repeat but slowly vary.
Macros
Macros are parameter values that supply their values as modulation sources. I suggest MIDI mapping them or something.
The test script
Toolkit comes with an example script that has a couple direct triggers for notes from PolyPerc. It’s what I’ve been using to test it out. With the toolkit, it’s kind of a tiny modular system in your norns.
Download
Future/Checklist/Roadmap
Increase self-patchability- I am sure there remain bugs. Want to tell me about them?
Another mod that has crow output parameters to modulate with this- Another mod that somehow digs into Supercollider to outfit any script with some independently triggerable instances of plaits? I dunno sounds amusing in combination with this.