polyseqz

polyseqz · modulation · schema v1

Polyphonic chord sequencer. 32-step grid; each step holds a root note + chord quality (maj/min/maj7/min7/dom7/sus2/sus4/dim/aug) + inversion (0/1/2) + voicing (closed/open/spread). Outputs the full 5-voice chord on a polyPitchGate cable. HUMANIZE knob adds per-voice timing offsets (linear/uniform at low values, chaotic clusters at high values) for a human-pianist feel. An upper-right S&H toggle (ON by default) bakes in a gate-sampled Sample & Hold on the per-lane pitch CV: each lane's pitch is pinned to the un-jittered nominal step time (keeping only a ~1-sample lead before its gate) and latches to its own gate edge, so the pitch holds cleanly while the GATE keeps its humanize jitter. Turn S&H OFF for the legacy pre-gate-lead write where pitch can drift ahead of the gate under humanize. Tested as the chord source for DX7-style polyphonic synth voices.

A polyphonic CHORD sequencer: instead of one note per step it stores a whole chord — a root note plus a quality (major/minor/etc.), an inversion, and a voicing strategy (closed / open / spread) — and plays the lot at once. It walks a playhead across up to 128 steps (16 per page, 8 pages) on its own BPM clock or an external clock, emitting a 5-voice POLY cable that carries the full chord per step. To hear it you feed that POLY output into a poly-aware voice (RIOTGIRLS, DX7, POLYHELM, or any module with a poly input) so each chord tone gets its own voice; a mono pitch input still works and just receives the chord's root. A convenience mono GATE goes high whenever any voice is sounding (handy for one shared envelope), and a Humanize control adds per-voice timing jitter so chords don't land perfectly machine-tight. Eight quicksave slots and the transport CV inputs let you build and switch chord progressions live.

the faceplate

polyseqzplay_cvgatereset_cvgatequeue1_cvgatequeue2_cvgatequeue3_cvgatequeue4_cvgateclockgatehumanize_cvcvpolypolyPitchGategategateclockgateaudiocvgatepitch
8 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 restarts the progression.
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
clockgateExternal clock: each rising edge advances the playhead exactly one step (one chord). 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
humanize_cvcvCV that modulates the Humanize amount (0..1, summed with the knob): a positive voltage adds more per-voice timing jitter so the chord's notes don't all strike on exactly the same instant. Patch an LFO or envelope here to make the looseness breathe.
control voltage (CV); modulates humanize (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
polypolyPitchGateThe current step's chord as a 5-voice POLY cable (each lane carries its own pitch CV + gate). Patch into a poly-aware voice (RIOTGIRLS / DX7 / POLYHELM / any module with a poly input) so each chord tone gets its own voice; a mono pitch input automatically receives just lane 0, the chord's root.
poly pitch+gate bus; 10-channel poly bus (5 pitch + 5 gate lanes)
gategateA convenience mono gate that goes high while ANY voice of the current chord is sounding and low between chords — drive one shared ADSR/VCA from it without unpacking the poly cable. Its high time within the step follows the gate-length control.
gate / trigger
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..30090linear
lengthLen1..1288discrete
octaveOct-2..20discrete
gateLengthGate0.1..0.950.6linear
humanizeHum0..10linear
isPlayingPlay0..10discrete
snhs&h0..11discrete

controls

controlwhat it does
BPMInternal tempo in beats per minute (each step is an 8th note here — slower than the mono sequencer's 16th-note grid, which suits chords), used only when nothing is patched into CLOCK IN.
GateHow much of each step the voices' gates stay high, from a short 10% stab to a near-legato 95% (always closing just before the next step).
HumSpreads each voice's onset slightly in time so a chord strums/loosens instead of hitting perfectly together: 0 is machine-tight, higher values add more random per-voice jitter (up to a few tens of milliseconds). Also modulatable via the humanize_cv input.
PlayThe run/stop state: 1 plays, 0 stops and forces the gates low; starting playback snaps the playhead back to step 1. Same control as the card's PLAY button.
LenHow many steps (chords) the playhead walks before wrapping to step 1; raising it past 16 reveals more pages.
OctShifts every chord up or down by whole octaves at once (-2 to +2); the chord transposes as a block so its voicing stays intact.
Polyseqz root {n}Step {n}'s ROOT note — the editable pitch box that sets the bottom note of this step's chord. Type a note name (e.g. C3, F#4, Bb2) or focus it and use the arrow keys to move across the step row; Enter commits and advances 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 chord's quality, inversion and voicing badges build the rest of the chord UP from this root, which is then transposed by the OCT control and broadcast across the poly pitch lanes.
s&hSample & hold on the per-voice pitch CV, on by default (the card's S&H face button): when on, each voice's pitch is latched cleanly at its gate edge (pinned to the un-jittered step time) so the note is stable when the gate rises even while Humanize jitters the timing; off reverts to the legacy behavior where pitch can drift ahead of the gate under Humanize.

source

polyseqz.ts on GitHub.

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