gatemaiden
gatemaiden · utility · schema v1Single-input gate↔trigger converter — the convenience utility for the trigger/gate model (think Doepfer A-162 / Make Noise Maths EOR-EOC in one small module). ONE generic CV input (IN) accepts EITHER a gate or a trigger, and produces BOTH a GATE output and a TRIG output, derived from the input's level + rising edges (no mode switch — like Maths, it always emits both). GATE out is a held square that stays high while the input is high, with a MINIMUM width of the Len knob (0.005–2 s, default 50 ms): so a long gate passes through duration-matched, while a short TRIGGER in is widened into a clean usable gate (trigger→gate). TRIG out fires a short pulse on EVERY rising edge of the input: so a GATE in yields one trigger per gate START (gate→trigger), and a TRIGGER in is effectively reshaped through (one pulse per input pulse). The Shape button picks the emitted trigger waveform — △ triangle (default, a 5 ms ramp-up/ramp-down strike) or ▭ square. In the trigger/gate model: ▷ marks the trigger output, ▭ the gate ports. Why you want it: anything that must START an event should be a trigger (edge-fired once), anything that must SUSTAIN should be a gate (level-held); GATEMAIDEN lets you convert freely between the two when you cross-patch — e.g. take a sequencer's held step-gate and get a clean clock trigger out of its starts, or take a drum trigger and open an ADSR's sustain with a real gate. Sample-accurate DSP (pure core in packages/dsp/src/lib/gatemaiden-dsp.ts), so it single-fires by construction.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
in | gate | The signal to convert (accepts a gate, a trigger, or any CV/pitch). Its level drives the GATE output while its rising edges drive the TRIG output. A trigger arriving here is stretched up to LEN on GATE; a held gate here passes through on GATE and emits one trigger on TRIG when it goes high. gate / trigger; gate — acts while the level is high (reacts to both edges); also accepts: control voltage (CV), V/oct pitch CV |
outputs
| id | cable | what it does |
|---|---|---|
gate | gate | A held gate that stays high while the input is high, but never shorter than the LEN time — so even a momentary trigger on the input produces a usably-wide held gate here. Patch it into anything level-sensitive (an ADSR sustain, a VCA hold). gate / trigger; gate — acts while the level is high (reacts to both edges) |
trig | gate | A short fixed-width pulse that fires once on each rising edge of the input — the trigger form. A long held gate on the input yields a single trigger here at its start, not a continuous level. gate / trigger; trigger — fires once per rising edge |
params
| id | label | range | default | curve |
|---|---|---|---|---|
gateLen | Len | 0.005..2s | 0.05 | log |
trigShape | Shape | 0..1 | 0 | discrete |
controls
| control | what it does |
|---|---|
| Len | The minimum width of the GATE output (5 ms to 2 s, log), used when the input is a short trigger: the gate is held at least this long after the strike. With a genuinely held input gate this just sets the floor; the gate otherwise follows the input level. |
| Shape | The waveform of the TRIG output pulse — toggles between a short triangle (TRI, the gentle default) and a hard square (SQR). Display/feel only; both fire once per rising edge with the same canonical pulse width. |
source
gatemaiden.ts on GitHub.