numpad+
numpadPlus · sources · schema v2Numpad-driven 4-layer × 16-step sequencer + live keyboard. Each numpad note key fires the active layer's pitch+gate immediately AND, when REC ARM (one-pass record on next play-from-start) or OVERDUB (always-recording) is on, writes the note to the nearest step on the active layer. Default keymap: 1=C, 2=C#, 3=D, 4=D#, 5=E, 6=F, 7=F#, 8=G, 9=G#, 0=A, /=A#, *=B; Numpad+ held = next note +1 octave, Numpad- = -1 octave. Octave 0-8 nudged via on-card arrows. CV inputs: clock (rising-edge external clock — internal BPM ignored while patched) + layer (CV value 0..1 selects active layer, otherwise the activeLayer param wins). CV outputs: l1_pitch / l1_gate ... l4_pitch / l4_gate (8 outputs total) so a patch can route each layer to its own downstream synth — basically a 4-track sequencer. When this module exists in the rack its keyboard listener captures Numpad* event.codes + preventDefault so other modules can't see the keys.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
clock | gate | External clock: each rising edge advances the shared playhead one step. While patched it sets the pace and runs the sequencer; unpatch to fall back to the internal BPM. gate / trigger |
layer | cv | CV that selects the active layer (0..1 mapped to layers 1–4); when patched it takes priority over the Layer control, so you can switch which line you're recording/playing from a CV source. control voltage (CV) |
outputs
| id | cable | what it does |
|---|---|---|
l1_pitch | pitch | Layer 1's pitch CV (V/oct): the current step's note, or the live-held key's pitch when you're playing on layer 1. V/oct pitch CV |
l1_gate | gate | Layer 1's gate: high on a lit step (or while a key is held on layer 1), low otherwise. gate / trigger |
l2_pitch | pitch | Layer 2's pitch CV (V/oct): its current step's note, or a live-held key when layer 2 is active. V/oct pitch CV |
l2_gate | gate | Layer 2's gate: high on a lit step or held key, low otherwise. gate / trigger |
l3_pitch | pitch | Layer 3's pitch CV (V/oct): its current step's note, or a live-held key when layer 3 is active. V/oct pitch CV |
l3_gate | gate | Layer 3's gate: high on a lit step or held key, low otherwise. gate / trigger |
l4_pitch | pitch | Layer 4's pitch CV (V/oct): its current step's note, or a live-held key when layer 4 is active. V/oct pitch CV |
l4_gate | gate | Layer 4's gate: high on a lit step or held key, low otherwise. gate / trigger |
poly | polyPitchGate | The ACTIVE layer's notes as a POLY cable (up to 5 voices, each with its own pitch CV + gate): in poly mode this carries the held/recorded chord, otherwise the single current note. Patch into a poly-aware voice (POLYHELM / any module with a poly input) so every voice sounds; a mono pitch input automatically receives just the lowest (root) note. poly pitch+gate bus; 10-channel poly bus (5 pitch + 5 gate lanes) |
params
| id | label | range | default | curve |
|---|---|---|---|---|
bpm | BPM | 30..300 | 120 | linear |
isPlaying | Play | 0..1 | 0 | discrete |
activeLayer | Lyr | 0..3 | 0 | discrete |
recArm | Rec | 0..1 | 0 | discrete |
overdub | Ovd | 0..1 | 0 | discrete |
octave | Oct | 0..8 | 4 | discrete |
poly | Poly | 0..1 | 0 | discrete |
controls
| control | what it does |
|---|---|
| Lyr | Which of the four layers is active for playing and recording (0..3 = layers 1–4), exposed as the card's L1–L4 buttons. The layer CV input overrides this when patched. |
| BPM | Internal tempo in beats per minute (each step is a 16th note), used only when nothing is patched into CLOCK IN. |
| Play | Run/stop transport (1 = playing, 0 = stopped). When stopped the playhead holds at step 1 but live keys still sound; the card's PLAY button toggles it. |
| Numpad cell {n} | Step {n}'s note cell in the active layer's 4×4 grid — this IS the per-step note-entry area for the numpad sequencer (distinct from the keymap keys below it). It shows the step's note name when lit (a · when empty/off); clicking toggles the step on/off, and click-and-dragging up/down on the cell changes its note by hand. Steps are also filled in by RECORD / OVERDUB as you play the keypad, and a lit cell's note is what that step emits on the active layer's pitch output (base octave + key remapping applied). The current playhead step is highlighted while playing. |
| Oct | The keypad's base octave (0..8, default 4); shifts which actual pitches the 12 note-keys produce. The remappable octave-up/down keys nudge it by one. |
| Ovd | Overdub mode (the card's OVD button): when on, every keypress writes its note into the step (quantized to the nearest step while playing, immediately when stopped) without clearing the layer first — layer new notes over what's there. |
| Poly | Poly recording (the card's POLY button): when on, holding several keys at once records them as a chord into the step (up to 5 voices); when off, only the single key pressed is stored. The mono per-layer outputs always send the lowest note either way. |
| Rec | Record arm (the card's ARM button): when armed and play starts from step 1, recording latches and the active layer is cleared, then your keystrokes are written in; it auto-disarms after one 16-step pass. |
source
numpad-plus.ts on GitHub.