cartesian
cartesian · modulation · schema v44x4 grid sequencer. Steps via clock; X/Y CV inputs scrub freely across the grid. An upper-right S&H toggle (ON by default) bakes in a gate-sampled Sample & Hold on the pitch CV: in the clock-UNPATCHED X/Y-tracking mode the pitch+gate re-emit is suppressed while the prior gate is still high, so the pitch CV latches to the gate edge and holds (the visual playhead still tracks continuously). The clock-PATCHED mode is already gate-sampled. S&H applies to PITCH only — the free-running quadrature LFO (lfo_x/lfo_y) is never held. Turn S&H OFF for legacy continuous re-emit on every pad change.
the faceplate
4 inputs · 5 outputs · 6 params
inputs
| id | cable | what it does |
|---|---|---|
clock | gate | Step clock for CLOCKED mode: each rising edge advances the cursor one pad (an axis with no X/Y CV patched auto-increments 0→1→2→3→0). Patching a clock here also acts as the play signal. Leave it unpatched to run in FREEFORM mode, where the X/Y CV inputs steer the cursor instead. gate / trigger |
x_cv | cv | Bipolar CV (-1..+1) that selects the grid COLUMN by quantizing into four equal bands (0..3). In FREEFORM mode it tracks continuously; in CLOCKED mode, if this is patched it sets the column directly while the unpatched axis auto-increments on each clock. control voltage (CV) |
y_cv | cv | Bipolar CV (-1..+1) that selects the grid ROW the same way the X CV selects the column. Patch lfo_y here (with lfo_x → x_cv) to sweep rows in quadrature for circular cursor motion. control voltage (CV) |
lfo_clock | gate | Tempo reference for the built-in LFO: the time between successive rising edges sets the LFO's base rate (multiplied by the Div control). It only paces the LFO outputs — it does NOT advance the grid cursor. gate / trigger |
outputs
| id | cable | what it does |
|---|---|---|
pitch | polyPitchGate | The selected pad's note as pitch CV (V/oct) across the poly chord lanes; a mono pitch input automatically receives just the root note. With sample & hold on (the default) it only updates when a gate fires and holds steady on rests, so the pitch doesn't glitch as the cursor crosses silent pads. poly pitch+gate bus; 10-channel poly bus (5 pitch + 5 gate lanes) |
gate | gate | Goes high when the selected pad changes (FREEFORM) or on each clock edge (CLOCKED), then back low after the fraction of the step set by the gate-length control — patch it into an envelope or VCA to articulate each note. gate / trigger |
clock | gate | A short ~10 ms pulse fired on every cursor advance, regardless of whether that pad is on or off — the 'I just stepped' signal. Patch it into another sequencer's clock in to chain them. gate / trigger |
lfo_x | cv | The built-in LFO's first phase. Its rate follows the lfo_clock input (or a default when unpatched) scaled by Div, and its shape is set by Wave. Never sample-and-held — it free-runs. Patch into x_cv for self-driven cursor motion. control voltage (CV) |
lfo_y | cv | The built-in LFO's second phase, a quarter-cycle (90°) behind lfo_x. Patch lfo_x → x_cv and lfo_y → y_cv to walk the cursor in a circle/Lissajous figure across the grid. control voltage (CV) |
params
| id | label | range | default | curve |
|---|---|---|---|---|
mode | Mode | 0..1 | 0 | discrete |
octave | Oct | -2..2 | 0 | discrete |
gateLength | Gate | 0.1..0.95 | 0.5 | linear |
lfoDiv | Div | 0..7 | 3 | discrete |
lfoShape | Wave | 0..3 | 0 | linear |
snh | s&h | 0..1 | 1 | discrete |
controls
| control | what it does |
|---|---|
| Cart pitch {n} | Pad {n}'s note — the editable pitch box for this cell of the 4×4 grid. Type a note name (e.g. C3, F#4, Bb2) or focus it and use the arrow keys to move around the grid; Enter commits and steps to the next pad's box. The box shows the canonical note name, glows green while valid and red while not, and clearing it (empty) turns the pad into a rest even if its gate is lit. When the cursor lands on this pad the note is emitted as V/oct on the PITCH output, shifted by the OCT control and (for a chord pad) used as the chord's root. |
| Gate | How much of each step the gate stays high, from a short 10% stab to a near-legato 95%; longer values hold downstream envelopes open for most of the step. |
| Div | Division/multiplication of the built-in LFO relative to the lfo_clock rate, stepped through 1/8, 1/4, 1/2, 1/1, ×1.5, ×2, ×4, ×8 (default 1/1) — lower indices make the LFO sweep slowly across several clocks, higher indices run it faster than the clock. |
| Wave | Morphs the built-in LFO waveform continuously from sine (0) through triangle (1) and sawtooth (2) to square (3), cross-fading between adjacent shapes at in-between values. |
| Mode | Cursor-advance mode: FREEFORM (0) lets the X/Y CV inputs steer the cursor continuously and fires a gate on each change; CLOCKED (1) advances one pad per incoming clock edge, auto-incrementing whichever axis has no CV patched. The card's LIN/X-Y face button toggles this same setting. |
| Oct | Shifts every pad's pitch up or down by whole octaves at once (-2 to +2); chords transpose as a block so their internal intervals stay intact. |
| s&h | Sample & hold on the pitch output, on by default: when on (the card's S&H face button), in FREEFORM mode the pitch CV is rewritten only when a gate fires and otherwise holds, so the pitch doesn't smear as the cursor passes over silent pads; turn it off for continuous re-emit on every cursor move. The LFO outputs are never held. |
source
cartesian.ts on GitHub.