kria

kria · modulation · schema v1

KRIA — a 4-track grid step-sequencer, a clean-room reimagining of monome's Kria (inspired by monome Kria; behavior reimplemented from monome's public docs, no monome source or doc prose reproduced). Like CLIP PLAYER it is a browser-native companion to a monome grid 128 (WebSerial, no native helper — see lib/control/monome) but is FULLY usable from the card with a mouse. MODEL: four INDEPENDENT tracks, each with its own per-step sequences edited on separate PAGES selected from a nav row. Pages (Phase A): TRIG (does the step fire? + per-step ratchet subdivisions), NOTE (the Y axis picks a pitch DEGREE within the active scale), OCTAVE (per-step +0..+5 octave offset), DURATION (per-step gate length as a fraction of the step). Per-track extensions: LOOP (per-track loop start + length, wrapping), TIME (per-track clock DIVISION — advance once every N base ticks), DIRECTION (forward / reverse / pingpong / drunk / random), and per-step PROBABILITY (4-level) + GLIDE (pitch slew). A shared SCALE (major / minor / pentatonic / chromatic) maps NOTE degrees to V/oct. 16 PATTERN slots each hold a full snapshot of all four tracks; switching patterns is QUANTIZED — tap a slot to CUE it and the engine swaps it in on the next track-0 loop boundary (or after a cue-clock countdown). CLOCK: locks to the rack's TIMELORDE singleton (runs only while TIMELORDE.running, tempo = TIMELORDE.bpm); patch an external CLOCK IN to override the tempo (each rising edge advances the base grid, via the canonical windowed edge counter — no double-count), and a RESET IN rising edge re-anchors every track to its loop start. Without a TIMELORDE node the card's BPM knob + RUN button drive it. CARD: a TRACK selector (1-4), a PAGE selector (TRG/NTE/OCT/DUR + PAT), a 16-step editor for the selected track+page (with a clock-locked playhead column), and a 16-slot pattern strip (tap empty = create + activate, tap another = cue a quantized switch); a GRID button connects + binds a monome grid (capability-gated, Chromium) so the same edits + cues happen on hardware with live varibright LED feedback. Inputs — CLOCK IN (external clock, rising edge advances), RESET IN (rising edge re-anchors all tracks). Outputs (the Ansible Kria shape) — PITCH 1-4 (per-track V/oct with per-step glide slew) + GATE 1-4 (per-track gates; DURATION shapes the width, ratchet subdivides). All ports live on the yellow drill-down PATCH PANEL (no side jacks); the BPM knob is MIDI / control-surface assignable. USAGE: patch each track's PITCH+GATE into a voice (VCO + VCA/ADSR), clock from TIMELORDE, build trig/note/octave/duration patterns per track from the card or a monome grid, then perform by cueing pattern slots for quantized arrangement changes.

A four-track grid sequencer modelled on the monome Kria, where each track is not one pattern but several layered ones: separate per-step lanes for trigger, note, octave, duration, probability, glide and ratchet, plus its own loop window (start + length), clock division and play direction (forward / reverse / ping-pong / drunk / random). All four tracks share a base 16th-note clock (from a TIMELORDE node, an external CLOCK IN, or the local BPM) but each can run at its own division and loop length, so the tracks drift in and out of phase to build long evolving lines. A shared scale and root quantize the note + octave lanes into pitch CV, and you can stash 16 whole patterns and cue between them quantized to the loop boundary. Each track emits a pitch CV (with optional glide) and a gate (shaped by its duration and subdivided by its ratchet). The card edits one track/page at a time; an optional monome grid drives the same edits.

the faceplate

kriaclockgateresetgatepitch1pitchgate1gatepitch2pitchgate2gatepitch3pitchgate3gatepitch4pitchgate4gateaudiocvgatepitch
2 inputs · 8 outputs · 2 params

inputs

idcablewhat it does
clockgateExternal base clock: each rising edge advances the shared 16th-note grid one tick, from which every track derives its own stepping via its clock division. When patched it overrides the internal BPM for step timing (the rack tempo still sets gate/glide durations), and the pulses themselves run the sequencer.
gate / trigger; trigger — fires once per rising edge
resetgateA rising edge (a trigger) re-anchors all four tracks to the start of their loop windows at once and clears any pending pattern cue, so everything restarts cleanly together.
gate / trigger; trigger — fires once per rising edge

outputs

idcablewhat it does
pitch1pitchTrack 1's pitch CV (V/oct): the current step's note + octave lanes mapped through the shared scale and root, with the glide lane slewing the ramp between steps for portamento.
V/oct pitch CV
gate1gateTrack 1's gate: goes high on steps whose trigger lane is set and whose probability roll passes; the duration lane sets how wide it stays high and the ratchet lane subdivides it into 1–4 evenly-spaced re-hits within the step.
gate / trigger
pitch2pitchTrack 2's pitch CV (V/oct), quantized through the shared scale/root with its own glide slew.
V/oct pitch CV
gate2gateTrack 2's gate, shaped by track 2's duration, probability and ratchet lanes.
gate / trigger
pitch3pitchTrack 3's pitch CV (V/oct), quantized through the shared scale/root with its own glide slew.
V/oct pitch CV
gate3gateTrack 3's gate, shaped by track 3's duration, probability and ratchet lanes.
gate / trigger
pitch4pitchTrack 4's pitch CV (V/oct), quantized through the shared scale/root with its own glide slew.
V/oct pitch CV
gate4gateTrack 4's gate, shaped by track 4's duration, probability and ratchet lanes.
gate / trigger

params

idlabelrangedefaultcurve
bpmBPM30..300120linear
runningRun0..10discrete

controls

controlwhat it does
BPMInternal fallback tempo in beats per minute, used only when there is no TIMELORDE node in the rack AND nothing is patched into CLOCK IN; when a TIMELORDE is present its tempo wins, and an external clock overrides both.
Kria cell {n}A cell of the per-step editor grid for the selected track — this is where you enter each step's value, INCLUDING its note. The same grid is reused by the page selector (TRIG / NTE / OCT / DUR): on the NOTE (NTE) page it IS the per-step note entry — the lit row picks that step's scale DEGREE (bottom row = degree 0, up to degree 6), which the shared SCALE + ROOT then quantize into the track's pitch CV; on the other pages the same cell instead sets the step's trigger, octave or gate duration. Click a cell to set/clear it for the active page; the column tracking the playhead is highlighted as it runs. (An attached monome grid drives these same edits.)
RunLocal play/stop transport (1 = running, 0 = stopped), exposed as the card's RUN button. When a TIMELORDE node exists its run state drives playback instead, and an external clock's pulses can run the tracks regardless.

source

kria.ts on GitHub.

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