tb/seq/polyseq
Description: a set of objects for a polyphonic, polymetric, polyrhythmic step sequencer.
this was created as a seed for the Fellowship of Axo challenge
Version: 1.0.12
polyseq/polyseq - main sequencer with clock input
here we set the maximum number of tracks we want, and the maximum steps each track can have (we can use less by setting the number of steps on the track , see polyseq/write), and the number of values store per step.
(all values are 32bit int, but how you decode/encode them is up to you )
clock, its expected that you'll run the clock fast, as its going to be sub-divided by each track, according to the clock division. e.g you could run at 24ppqn , then put a clock division of 24 on a track , to get quarter notes. via polyseq/write
polyseq/write - allows track configuration (steps and clock division) and also to change step values
I know looks complicated, but its not
simple cases:
a) change track parameters (most likely you'll want this)
feed a value into trkIdx to select the track
feed trkSteps the new number of steps for the track, and trkClkDivs the number of clock divisions (of the main clock)
THEN set the values by sending a pulse into trkSet.
(trkSteps must be less than maxSteps on the main polyseq/polyseq object)
b) changing step values
feed a value into trkIdx/stepIdx/valueIdx to select the track, step and value you wish to change
feed into stepValue the new value THEN set the values by sending a pulse into stepSet.
(simpler is to use polyseq/notectrl, see below)
note: when you change trkIdx, stepIdx or valueIdx the current values are sent out of the outlets, useful if for developing 'control interfaces'.
polyseq/track - outputs the tracks current step and a trig each time it changes, use to drive polyseq/read and/or polyseq/note
polyseq/read - returns the value for a given step (fed from polyseq/track)
(simpler is to use polyseq/note, see below)
polyseq/notectrl - allows users to enter note date for a step, use polyseq/note for playback
Note: polyseq/polyseq must be set to have at least 5 values.
polyseq/note - returns note data for a given step (fed from polyseq/track), setup by polyseq/notectrl
Note: polyseq/polyseq must be set to have at least 5 values.