writeseq

writeseq · modulation · schema v1

RECORDING step-sequencer: the app's usual step sequencer PLUS live recording from a CV/gate source (e.g. MIDI CV BUDDY / a mini-keyboard via MIDI→CV). The incoming CV (pitch, 0V = C4) + GATE pass through to the outputs at all times (live monitoring) ALONGSIDE sequenced playback — a held live gate WINS over the sequenced step. Arm RECORD (the rec gate input also toggles arm) and each incoming gate writes its sampled pitch+gate to the step nearest the press (snap-to-nearest quantization); recording starts by jumping to step 1. If the sequencer is STOPPED but armed, a gate event STARTS the sequencer + recording (internal clock only — an external clock that is stopped emits no pulses, so a gate there only passes through). NOT overdubbing: record runs one pass up to LENGTH steps then stops recording (auto-disarms) and loops to play through. OVERDUB: keep looping, layering new events on top. STEP CLOCK: an external clock patched into CLOCK IN drives one step per rising edge (respecting its timing); unpatched, WRITESEQ runs its own internal BPM. RUN/RECORD state is INDEPENDENT of TIMELORDE — it is armed + started by the user, never auto-started/stopped with the system clock. Outputs PITCH (V/oct) + GATE (the sequenced outputs, with live pass-through) + CLOCK (a 10 ms pulse per advance). Sharing one clock with a drum module (e.g. DRUMSEQZ / DRUMMERGIRL) records a key in time with the beat onto the SAME step the drum hits — no off-by-one in either direction. The data model reserves a per-step shift field for a future swing-to-1/4-step feature (not yet implemented).

A write-in step sequencer: as well as drawing notes into the grid by hand, you can RECORD a melody live by playing a pitch+gate into its CV and GATE inputs (from a keyboard, a MIDI→CV converter, or any gate source). Armed for recording, each incoming gate writes the sampled pitch onto the nearest step, quantized to the grid so what you play lands on the beat the clock is hitting (no off-by-one against a partner drum sequencer). It plays back the captured pattern (up to 128 steps over 8 pages) on its own BPM clock or an external clock, emits pitch + gate + a chained clock-out, and a held live gate always passes straight through and overrides playback — so the module doubles as a live keyboard monitor. One-shot recording clears and re-records exactly one pass; overdub layers new notes on top of what's there without clearing.

the faceplate

writeseqplay_cvgatereset_cvgatequeue1_cvgatequeue2_cvgatequeue3_cvgatequeue4_cvgatecvpitchgategateclockgaterecgatepitchpitchgategateclockgateaudiocvgatepitch
10 inputs · 3 outputs · 7 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 resets the record position.
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
cvpitchPitch CV in (V/oct, 0V = C4). While recording, it's sampled at each incoming gate edge and written to the nearest step; whenever a live gate is held it also passes straight through to the pitch output.
V/oct pitch CV
gategateGate in. A rising edge while recording writes the sampled pitch+gate to the nearest step; a rising edge while stopped and record-armed starts the sequencer and recording; and whenever the gate is held high it passes through live and overrides the sequenced output (so you can play over playback).
gate / trigger
clockgateExternal step clock: each rising edge advances the playhead one step. While patched it sets the pace (and runs the sequencer); unpatch to fall back to the internal BPM. Recording quantizes to the same step the clock is hitting.
gate / trigger
recgateRecord arm: a rising edge toggles the record-arm state on/off (the same latch as the card's REC button), so you can drop in and out of recording hands-free from a footswitch or gate.
gate / trigger

outputs

idcablewhat it does
pitchpitchThe current step's note as pitch CV (V/oct), transposed by the octave control — unless a live gate is held in, in which case the live pitch passes straight through and wins.
V/oct pitch CV
gategateGoes high on each ON step (its width set by the gate-length control) — unless a live gate is held in, which passes through and overrides the sequenced gate.
gate / trigger
clockgateA short ~10 ms pulse on every step advance — 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
recArmRec0..10discrete
overdubOvd0..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.
LenHow many steps the playhead walks before wrapping to step 1; raising it past 16 reveals more pages. A one-shot recording captures exactly this many steps before stopping.
OctShifts every step's pitch up or down by whole octaves at once (-2 to +2).
OvdRecording mode (the card's OVD button): off = one-shot, which clears the pattern and records exactly one pass of `length` steps then auto-stops; on = overdub, which layers newly played notes on top of the existing pattern without clearing and keeps looping until you disarm.
RecArms recording (1) or disarms it (0); the card's REC button. While armed, incoming gates write the sampled pitch onto the nearest step. Also togglable via the rec input.
Writeseq pitch {n}Step {n}'s note — the editable pitch box for this step. As well as being filled in by RECORD (a played CV/gate writes the sampled pitch onto the nearest step), you can type a note name here directly (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 (empty) makes the step a rest even if its gate is lit. The note is emitted as V/oct on the PITCH output, shifted by the OCT control.

source

writeseq.ts on GitHub.

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