project name: | silos |
project url: | https://github.com/justmat/silos |
author: | justmat |
description: | live grains |
discussion url: | https://llllllll.co/t/43804 |
documentation url: | https://norns.community/authors/justmat/silos |
tags: | granulator audio_fx keyboard grid arc |
live granular processing
silos granular engine, thresher, contains 4 tracks; each with 8 seconds of record time. the parameters for controlling the engine are:
nb: speed and pitch work like rate controls. 1 is base pitch/speed, 2 = 1 octave up/twice as fast, 4 = 2 octave up/twice as twice as fast, 0.5 = 1 octave down/half speed
in addition to granulation, thresher also includes an fx bus featuring a lush modulated reverb followed by a bit crusher. the fx parameters are:
launching silos lands you in a fairly minimal state. in the top right corner of your screen are indicators for gate, recording, and your current track number. at the bottom of your screen you’ll find the command prompt.
key 3 = record toggle
alt + enc 3 = info display navigation
if you’d like to see a bit more information, press alt + key 3 or ESC on your keyboard to toggle the info display. there are pages for engine parameters, fx, control assignments, and snapshots.
use alt + enc 3 or your LEFT/RIGHT arrow keys to navigate.
the arc adds four extra encoders. assign controls with arc id track/fx control_number
arc 1 3 4
= assign track 3 jitter to arc ring 1arc 4 fx 1
= assign fx gain to arc ring 4the grid has two modes of operation. mode 1 is two 8x8 x/y pads, mode 2 is snapshot mode. switch modes with grid_mode n
where n = 1 or 2. more grid modes will likely be added in the future.
assign controls to the x/y coordinates using gridx
or gridy
.
gridx id track/fx control_number
gridy 2 1 5
= assign track 1 size to the second y coordinate (right side oof grid)gridx 1 fx 1
= assign fx gain to the first x coordinate (left side of grid)in snapshot mode, holding the lower dimly lit cell and pressing one of the top 4 rows will save a snapshot of your parameter settings. row 1 will save snaps for track 1, row 2 for track 2, and so on. a cell containing a snapshot will glow brightly. pressing a brightly lit cell will recall the associated snapshot.
there are several commands to configure controls, set parameter values, and save/load various sets of data.
controller id track control_number
controller id "fx" fx_control_number
controller
s are:
id
s are:
control_number
s are:
fx_control_number
s are:
cc midi_device midi_chan cc_number track/fx control_number
enc 3 1 6
= set encoder 3 to track 1 density controlarc 2 fx 6
= set arc ring 2 to fx mod_depthcc 1 14 4 1 8
= assign track 1 density to 1st midi device channel 14 cc 4nb: control lists can be viewed in app by toggling info display
macro encoder_id track/fx control_number multiplier
macro 3 1 8 .5
= add track 1 density to macro 3 at half strengthmacro 3 2 5 -1
= add track 2 size to macro 3 at -1 strength (full speed backwards)macro 3 fx 6 1
= add the reverb modulation depth control to macro 3 and full strengthenc enc_id macro state
enc 3 macro 1
= enable macro control on encoder 3enc 3 macro 0
macro macro_id clear
macro 3 clear
= clear encoder 3 macronb: multiplier can be negative numbers! this allows one param to increase while others decrease or vice versa
control_name track/fx value
size 2 150
= set track 2 size to 150msrand track/fx control_number
rand 1 8
= set track 1 spread to a random valuerrand track/fx control_number low high
rrand 3 5 10 150
= set track 3 size to a random value between 10 and 150gate state1 state2 state3 state4
gate 1 1 0 0
= set gates 1 and 2 to on, gates 3 and 4 to offrecord state1 state2 state3 state4
record 0 0 0 1
= set records 1, 2, and 3 off, 4 ongate
and record
have the aliases g
and r
for convenience
g 1 1 0 1
and r 0 0 1 0
are validsnap id track
snap 10 2
= save a parameter snapshot for track 2 in slot 10load id track
load 5 3
= recall track 3 parameter snapshot in slot 5id
= a number 1-16snap
and load
have the aliases s
and l
for convenience
s 1 1
and l 1 1
are validsave_state id
save_state test
= save your current script state in a file called test.state
load_state id
load_state new_song
= load new_song.state
if it exists.save_pset
= this is the same as saving a pset in the parameters menu.load_pset
= this is the same as loading a pset in the parameters menu.nb: save/load_state id’s can be any string. state includes control assignments, macros, snapshots etc..
from the maiden Repl, type ;install https://github.com/justmat/silos