* <<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) <[email protected]>