Zaratan — a simple sequencer of hidden depths

The idea behind Zaratan was to create a simple interface for generating complex, (potentially) repeating sequences.

The process is simple: press some buttons on a grid. The results are complex: the buttons you press will generate sequences of notes and their modifiers, which shift over time until they eventually repeat.

Press a new set of buttons and generate a new sequence from the same, basic components.

There are some options you can employ to change the way the sequencer behaves, but the basic operation is meant to be easy and (hopefully) joyful.

The patch outputs both CV and MIDI.

The patch does not produce sound, but it does pass stereo audio.


Press buttons. That’s it.

In a bit more detail — the TOP ROW determines the GATES of the sequence. So, the buttons you press here will determine the rhythm as the sequencer cycles. For the sequencer to produce an output, at least one button on the top row must be active.

As the sequencer cycles, you will see the sequencers move through the buttons; selected buttons will turn from aqua to white when the sequencer for that row arrives at that button. (A quick note: There’s a lot of timing stuff going on in the patch, where one event triggers another, and on and on. Because of this, the grid buttons and their sequencers -do- accurately represent the sequencer’s output, but they may not represent it -right now-.)

Each row represents a OFFSET MODIFIER: a positive or negative change to pitch that is applied when the sequencer arrives at a pressed button. For instance, if the note of the initial sequence is an A, a modifier of +7 semitones (E1) will produce an E if the row with that modifier has a button active when the A is played.

The offset modifiers are cumulative: if all four are active at the same time, their effects will be summed and applied. Example: if the offset modifiers are set to +7 semitones, -1 semitone, +4 semitones, -7 semitones, the resulting modifier will be +3 semitones (7 – 7 + 4 – 1 = +3). This is where the complexity sets in, as different steps will have different combinations of active modifiers.

SUBSEQUENT ROWS are gated by the previous row. There are two methods of gating, which I will describe in greater detail below, but the important thing to keep in mind is that if no buttons are selected on a given row, rows beneath it cannot advance. TIP: If you want to affect a subsequent row but not introduce a modifier, you can set the modifier value to A0, which will result in no change to the pitch on steps where that modifier is active, but will send gates to subsequent rows.

You can CHANGE THE LENGTH of any row by pressing the button you want to serve as last step for 1 second.

This is all harder to -describe- than it is to -use-. Remember: the basic procedure is still just press some buttons.


At the top of the leftmost column, you will find a PLAY CHANCE control. This allows you to affect the probability that a gate will be produced by the top row’s sequencer, introducing an element of chance to the procedure.

Below this, you will find the OFFSET MODIFIERS for each sequence on the previous page. Remember, these modifiers are cumulative.

Across the top row are green value modules labaled NOTE. This is where the fundamental sequence is programmed. The foundation is a five note sequence, but the patch produces more than five notes.

Below this are three radio buttons that determine how these notes are selected:

GRID — The note played is determined by the number of active steps. If only the top row is active, the first note will be played. If all five rows are active, the fifth note will be played.

RANDOM — The note played is randomly selected from the five programmed notes.

ORDER — The notes are played in the order they are programmed, with the note represented by the first value module played, then the second value module, etc..

Below the radio buttons is a QUANTIZER where you can set the key and scale the results of the sequence and modifiers are quantized to.

If using CV, the patch produces an ENVELOPE as well as gates. This was originally part of a simple synth voice created for demonstration purposes (and ease of creating the patch), but it was removed to save CPU. I kept the envelope, because I thought it might be useful to have.

The ENVELOPE LENGTH is determined by the patch tempo. When the envelope length is at 0, well, there’s not much envelope. When the envelope length is at .5, the envelope’s total time is equal to the length of a step. When the envelope length is at 1, the envelope’s total time is equal to two steps.

ENVELOPE SHAPE is a bipolar control. At 0, the envelope is a decay envelope only. As you move above 0, an attack is introduced (and the decay proportionally shortens). As you move below 0, a hold or sustain stage is introduced (and the decay proportionally shortens).

The LINEAR ENVELOPE button allows you to select between linear envelopes (button on) and exponential envelopes (button off).

In the middle of the page controls for the CLOCK:

The TAP TEMPO button allows you to tap in a rhythm. The patch also accepts clock via CV and MIDI, both of which will override the tap tempo.

The GATE OR CLOCK button lets you choose between two different methods for advancing the sequencers.

When the button is off, the sequencers are advanced by GATES from the previous row. This means that the rows will only advance when a rising edge on the previous row is detected. Active steps in series will be treated as a single gate, so this method generally results in a slower advancement. If all of the steps in a previous row are active, subsequent rows will not advance. (The exception to this is the second row, which is always advanced by the top row’s gates.)

When the button is on, the sequencers are advanced by the CLOCK. More specifically, the previous row’s gate allows clock to advance the subsequent row, as long as the previous row’s step is active.

The GATE LENGTH control sets the length of the gate output.

The RESET LENGTH button resets the sequencer lengths of each row 8 steps (the maximum). It can be a little confusing how long each sequence is, so I wanted to add a quick way to reset everything.


The patch accepts clock over CV or MIDI.

Additionally, there is a CLOCK DIVIDER on the page labeled CLOCK DIVIDER. For best results, use only whole number multiplications of the clock.


CV —

The PITCH sends CV over 0-10Vs, transposed to C.

The GATE output sends gates over 0-10Vs.

The ENVELOPE output sends envelopes over 0-10V.

The CLOCK output sends clock over 0-10Vs.


The patch produces MIDI NOTES, GATES and CLOCK. The default channel is 1. The MIDI modules are found on the page labaled MIDI, if you want to change the channels used.

A note about the CLOCK: Because the processing required to generate the sequence introduces small, but cumulative, delays, it may be useful to use the CLOCK output as a new main clock, even if sending clock into ZOIA.

Leave a Reply

  • Platform:
  • Category: Sequencer
  • Revision: 1.1 -- Fixed an error with CV clock input (thanks ahpook for pointing it out!)
  • License: Creative Commons Attribution Share Alike 4.0
  • Modified: 4 months ago
  • Views: 99
    Likes: 2
    Downloads: 297