I actually designed polyseq as a modular set of objects to enable users to create their own sequencers... so you can feed it with midi if that's what you want... the help patch was a mere example, and the notectrl just a 'handy object', if your using a GUI.
if you want to 'program' it from a midi controller, you just need to use polyseq/write
it looks complex but its not really,
to set a step's value simply:
- set trkId with track you want to set,
- stepIdx is the step,
- valueIdx... the value index you wish to set (more in a moment on this)
- value .. the value of that step
a step any number of values (or attributes if you wish) ,
the help file has 5, these represent
gate (value idx=0)
important note: you must send a 'trigger' to setStep to set these values.
(these are arbitrary really, the sequencer doesn't care, but objects like polyseq/note and polyseq/notectrl assume these 5 ... but you could use polyseq to just record any arbitrary CV , e.g not related to notes... e.g. to record CC values)
so to record the note value,
trkId=0, stepId=0, valueIdx=0 (gate), value = midi/in/keyb - gate2
trkId=0, stepId=0, valueIdx=1 (note), value = midi/in/keyb - pitch
trkId=0, stepId=0, valueIdx=2 (note), value = midi/in/keyb - velocity
if you want to 'record' into the current position you can use polyseq/track to give you the current 'play head' i.e. to feed into stepid
important note: because you want to set multiple values at the same time (i.e. on receipt of a midi message) , you will need to do this with multiple polyseq/write objects, one for each value you need to set... don't worry these are 'lightweight objects' , having many of them is not an issue.
so all that's left for your patch to do, is to decide when to record, and when to play