krill
a Lorenz system sequencer and mod matrix running @okyeron’s UGen linux port of Mutable Instruments Rings for monome norns.
requirements
- norns (required)
- crow, W/, Just Friends, and midi (optional)
- audio input to excite the MIRings engine (optional)
installation
the install process requires three steps to properly install:
- open maiden and below the “matron” tab, enter:
;install https://github.com/jaseknighter/krill
- in the same “matron” tab install the MIRings UGen with this command:
os.execute("wget -T 180 -q -P /tmp/ https://github.com/okyeron/mi-UGens/raw/master/linux-norns-binaries/mi-UGens-linux-v.03.tar && tar -xvf /tmp/mi-UGens-linux-v.03.tar -C /tmp && cp -r /tmp/mi-UGens-linux-v.03/* /home/we/.local/share/SuperCollider/Extensions/ && rm -r /tmp/mi-UGens-linux-v.03 && rm -r /tmp/mi-UGens-linux-v.03.tar")
note: you may skip step 2 above if you previously installed the MIRings UGen with either @okyeron’s MI-UGens for Norns or the resonator pedal that is part of @21echoes’ Pedalboard.
- restart your norns.
about the script
the idea for the script and its name came from @mattallison and is inspired by Todd Barton’s Krell patch.
this script’s use of a chaotic Lorenz system algorithm differentiates it from the classic Krell patch. in theory at least, using chaos instead of randomness produces patterns that reside in a space between the random and the predictable.
krill studies for beginner scripters
i have created a study to accomany the krill script. the study includes notes and simple code that can be run in maiden’s matron REPL. it relates to a problem (one of many) i had to solve while putting this script together. i hope it is informative and useful for folks interested in learning more about coding on the norns platform.
credits
bunches and bunchs of credit are due to @mattallison and @SPIKE. i am deeply grateful to the two of them for working with me over many hours and days testing and discussing the script.
additional thanks and credit go to:
- @Helen for very patiently working with me to get the installation instructions working
- @galapagoose for publishing a Lorenz algorithm in Lua as part of the crow bowery
- @midouest for developing a really splendid SuperCollider envelope that captures rise and fall as individual events
- @okyeron for creating a linux version of Volker Bohm’s (@geplanteobsoleszenz) SuperCollider port of the MI modules
- @geplanteobsoleszenz for porting the MI modules to SuperCollider
- @justmat for creating lua lfo’s which i borrowed from his otis script
caution!!!
the mod matrix built into the krill script allows any parameter to modulate any other parameter. unexpected results may result (e.g. when modulating the compressor’s gain settings), so please proceed with care and caution when using this feature.
documentation
video walk-through
basic instructions
K1+E1 toggles between the sequencer and mod matrix
sequencer
E1 select menu
E2 select param
E3 change param value
K2+E3 coarse change to param value
mod matrix (all menus)
E1 select menu
K2+K3 clear patchpoint
mod matrix: row/col
E2 select row
E3 select col
mod matrix: in/out
E2/E3 select input/output
K2+E2 fast input navigation
K2+E3 fast output navigation
mod matrix: other menus
E2 select param
E3 +/- param value
K2+E3 coarse change to param value
complete documentation
complete documentation is on GitHub.
feature roadmap
- fix issues with functionality, documentation, and usability
- set vuja de loop length and probability separately for each pattern
- publish the mod matrix as a mod that other scripts can use
- bugs to fix:
- mod matrix midi scaling issue reported by @SPIKE
- show some values (like nil) when input value is static/has a value of 0 (e.g. Freq (v/8) ). right now, in this situation, in val and out val don’t show anything.
- update docs with recommendations for good input params, like:
dynamic, for example:- from the params lfo 1 and lfo 2 sub-menus: 1 lfo value and 2 lfo value
- from the lorenz x/y outputs params sub-menu: lorenz x and lorenz y*
- other features requested by the community