macseq

macseq · modulation · schema v1

16-step sequencer with a per-step MACROOSCILLATOR voice picker. Each step carries an on/off gate, a MIDI note, and a synthesis-model index. Outputs PITCH (V/oct), GATE (fires on every on-step), CLOCK (a 10 ms pulse per advance for chaining), and MODELCV — a CV cable carrying the step's selected model index, rescaled into the project's bipolar ±1 convention so it lands on MACROOSCILLATOR's discrete model_cv input and reconstructs the integer at the other end. Empty model steps hold the last emitted model (the first emit defaults to model 0 / VA), so sparser patterns "leave it where it was." Lets one sequencer drive both the pitch and the timbre/engine of a MACROOSCILLATOR voice.

A step sequencer built to play and TIMBRE-sequence a MACROOSCILLATOR: alongside the usual note + gate, every step also picks one of the macro oscillator's synthesis models, so the sound can morph from step to step. It walks a playhead across up to 128 steps (16 per page, 8 pages), emitting pitch CV, a gate, and a dedicated MODEL CV — patch MODEL CV into a macrooscillator's model_cv input and the oscillator switches engine on each step (a step left blank holds the previous step's model). It runs on its own BPM clock or an external clock fed into CLOCK IN, supports swing-free 16th-note stepping, and carries the full transport toolkit: play/reset CV, eight quicksave pattern slots, and next/prev/random navigation gates that switch patterns quantized to the loop's end.

the faceplate

macseqplay_cvgatereset_cvgatequeue1_cvgatequeue2_cvgatequeue3_cvgatequeue4_cvgatequeue5_cvgatequeue6_cvgatequeue7_cvgatequeue8_cvgatenext_cvgateprev_cvgaterandom_cvgateclockgatepitchpitchgategatemodelcvcvclockgateaudiocvgatepitch
14 inputs · 4 outputs · 5 params

inputs

idcablewhat it does
play_cvgateA rising edge toggles play/stop (each pulse flips the run state).
gate / trigger
reset_cvgateA rising edge snaps the playhead back to step 1 and restarts the loop.
gate / trigger
queue1_cvgateA rising edge queues pattern slot 1 — applied at the end of the current loop, then plays it from step 1 (no-op if empty).
gate / trigger
queue2_cvgateA rising edge queues pattern slot 2 — applied at the end of the current loop (no-op if empty).
gate / trigger
queue3_cvgateA rising edge queues pattern slot 3 — applied at the end of the current loop (no-op if empty).
gate / trigger
queue4_cvgateA rising edge queues pattern slot 4 — applied at the end of the current loop (no-op if empty).
gate / trigger
queue5_cvgateA rising edge queues pattern slot 5 — applied at the end of the current loop (no-op if empty).
gate / trigger
queue6_cvgateA rising edge queues pattern slot 6 — applied at the end of the current loop (no-op if empty).
gate / trigger
queue7_cvgateA rising edge queues pattern slot 7 — applied at the end of the current loop (no-op if empty).
gate / trigger
queue8_cvgateA rising edge queues pattern slot 8 — applied at the end of the current loop (no-op if empty).
gate / trigger
next_cvgateA rising edge latches a 'move to the next filled slot' request applied at the end of the current loop (quantized, not instant); it skips empty slots and wraps around.
gate / trigger
prev_cvgateA rising edge latches a 'move to the previous filled slot' request, applied at the end of the current loop (skips empties, wraps).
gate / trigger
random_cvgateA rising edge latches a 'jump to a random filled slot' request, applied at the end of the current loop.
gate / trigger
clockgateExternal clock: each rising edge advances the playhead exactly one step. While anything is patched here the internal BPM is ignored and the incoming pulses set the pace (and run the sequencer); unpatch to fall back to the BPM clock.
gate / trigger

outputs

idcablewhat it does
pitchpitchThe current step's note as pitch CV (V/oct), transposed by the octave control; falls back to C3 when a step has no note.
V/oct pitch CV
gategateGoes high on each ON step and low on rests or when stopped; how long it stays high within the step is set by the gate-length control — patch into an envelope or VCA.
gate / trigger
modelcvcvThe current step's MACROOSCILLATOR model index as CV — patch into a macrooscillator's model_cv input to switch its synthesis engine per step. A step with no model set holds the previously emitted index, so the sound only changes when you change it.
control voltage (CV)
clockgateA short ~10 ms pulse on every step advance, regardless of whether the step is on — chain it into another sequencer's clock in.
gate / trigger

params

idlabelrangedefaultcurve
bpmBPM30..300120linear
lengthLen1..12816discrete
octaveOct-2..20discrete
gateLengthGate0.1..0.950.5linear
isPlayingPlay0..10discrete

controls

controlwhat it does
BPMInternal tempo in beats per minute (each step is a 16th note, so the step rate is 4× the BPM), used only when nothing is patched into CLOCK IN.
GateHow much of each step the gate stays high, from a short 10% stab to a near-legato 95% (it always closes just before the next step).
PlayThe run/stop state: 1 plays, 0 stops and forces the gate low; starting playback snaps the playhead back to step 1. Same control as the card's PLAY button. (An external clock can drive stepping even while this reads stopped.)
LenHow many steps the playhead walks before wrapping to step 1; raising it past 16 reveals more pages, lowering it shortens the loop.
Macseq model {n}Step {n}'s MODEL — the per-step value-entry dropdown that picks which MACROOSCILLATOR engine this step selects (— = unset, otherwise a model name). The chosen model index is emitted on the MODEL CV output, made to land on MACROOSCILLATOR's discrete model_cv input; an unset (—) step HOLDS the previous step's model rather than snapping to model 0, so you only switch engines on the steps you mark.
Macseq pitch {n}Step {n}'s note — the editable pitch box for this step. Type a note name (e.g. C3, F#4, Bb2) or focus it and use the arrow keys to fly across the grid; Enter commits and jumps to the next step's box. The box shows the canonical note name, glows green while valid and red while not, and clearing it makes the step play the C3 fallback. The note is emitted as V/oct on the PITCH output, shifted by the OCT control — patch PITCH into a MACROOSCILLATOR's pitch input.
OctShifts every step's pitch up or down by whole octaves at once (-2 to +2).

source

macseq.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo