Seq16 is a simple step sequencer for the grid.

Setup and Creation

Make sure monolith is started.


Make a new page with monolith:seq16-new

(monolith:seq16-new "seq")

Select it with monolith:page-select.

(monolith:page-select "seq")

Import seq16 wrappers into scheme with:

(monolith:load "seq16.scm")

Before the seq16 page can be used, it must be clocked by an external clock source via seq16clk.

(seq16clk (clock 0 120 4) "seq")

Main Signals

There are two kinds of signals provided: the value and the gate. These are provided with seq16val and seq16gt. All that's needed is the page name here. Be sure to call these after seq16clk.

Playhead is turned off by default. Turn it on with monolith:seq16-playhead.

(monolith:seq16-playhead "seq" 1)

Multiplying the main clock signal with seq16gt gets a trigger signal.

Using this trigger signal with a samphold will make it suitable when using it for gated/articulated notes. Note that this means the signal output will go from 1-8, with 0 being ignored.

(samphold (mul (seq-clk) (seq16gt "seq")) (seq16val "seq"))

Resetting the Sequence

It is often useful to snap seq16 back to the beginning. Do this with monolith:seq16-reset.

Column Getter

Sometimes seq16 is better used as a way to store 16 values with 8 states. This signal can be extracted using seq16col.

(seq16col 0 "seq") ;; get value from column 0
(add zz 1) ;; bias by to put in range 1-8
(mul zz 60) ;; multiply by 60hz
(port zz 0.01) ;; add portamento smoothing
(sine zz 0.3) ;; feed frequency into sine
(out zz) ;; sine sine to output

Note: be sure to load the main ugens with:

(monolith:load "ugens.scm")