* <<F8E.0854>> Chain Sequencer

I've been developing the idea of a musical "chain sequencer" in the 
back of my mind for a while; in particular, it's something I'd like 
to do on the Atari, but the concept is interesting to me more 
generally.

To describe it, let's first describe a typical step-sequencer.  A 
step sequencer provides a fixed number of stored values; these stored 
values are "stepped" through at a fixed interval and sent to a fixed 
destination.  At the end of the sequence, the process restarts.

Now, for a chain sequencer, you'd have, essentially, a simple 
stored-program computer: the sequencer would store an arbitrary 
number of sequences (programs), and each "step" in these sequences 
wouldn't just be a single stored value, but instead would contain a 
complete sequencer instruction.  An instruction would consist, like a 
machine-language instruction, of an opcode and operand, and an 
additional parameter, optime, which would determine the delay between 
the execution of the current instruction and the next in a sequence.  
One of the instructions would be a jump-to-sequence instruction, 
which would facilitate the "chaining" of sequences, hence the "chain 
sequencer" moniker.

The logic of the sequencer is very simple: for each running sequence, 
maintain a delay counter and a step counter; at each tick of the 
sequencer clock, decrement the delay counter, and if the delay 
counter equals zero, increment the step counter and perform the 
instruction at that step, setting the delay counter to the 
instruction's optime.  The complexity of the thing comes from the 
operations provided by the sequencer. You could make a dead-simple 
chaining step-sequencer with two operations: store-value, and 
jump-to-sequence.  But what makes the chain sequencer idea 
interesting to me is the great variety of instructions that you could 
write into one.

--
Excerpted from:

PUBLIC NOTES (F)
http://alph.laemeur.com/txt/PUBNOTES-F
©2015 Adam C. Moore (LÆMEUR) <adam@laemeur.com>