numpad+

numpadPlus · sources

Numpad-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, with Numpad+ / Numpad- bound to OCTAVE UP / OCTAVE DOWN. All fourteen bindings are REMAPPABLE to any physical key — left-click a key cap on the faceplate (or right-click for the Remap / Reset menu) and press the key you want — and the map is saved with the patch, per node. Octave 0-8 (named c0..c8 by the note the first key plays) also moves from the faceplate. CV inputs: clock (rising-edge external clock — internal BPM ignored while patched) + layer (unipolar 0..1 CV selecting the active layer, otherwise the activeLayer param wins). CV outputs: l1_pitch / l1_gate ... l4_pitch / l4_gate so a patch can route each layer to its own downstream synth — basically a 4-track sequencer — plus a POLY bus carrying the active layer's voices for a poly-aware voice, NINE outputs in total. When this module exists in the rack its keyboard listener captures whatever event.codes its keymap binds and preventDefaults them, so other modules never see those keys; text fields and a focused DOOM card are excluded. The listener lives in the module itself rather than on any card, so it works with no UI open.

A live-recording step sequencer you play from your computer's numeric keypad: the keys map to a chromatic octave (12 notes), and pressing them performs notes in real time AND, when armed, records them into a 16-step pattern. It has four independent LAYERS sharing one playhead and tempo, so you can build up four parallel lines; the active layer is the one you're playing and recording into. Each layer has its own pitch + gate output pair, and there's also a single POLY output that carries the active layer's notes — in poly mode you can hold several keys to record a chord, and the POLY cable feeds a poly-aware voice so every note sounds. The playhead runs on internal BPM or an external CLOCK IN; recording quantizes your keystrokes to the nearest step while playing, or writes immediately when stopped. While the card is focused it captures the Numpad keys exclusively so they don't leak to other modules.

the faceplate

numpad+clockgatelayercvl1_pitchpitchl1_gategatel2_pitchpitchl2_gategatel3_pitchpitchl3_gategatel4_pitchpitchl4_gategatepolypolyPitchGateaudiocvgatepitch
2 inputs · 9 outputs · 7 params

inputs

idcablewhat it does
clockgateExternal 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; trigger — fires once per rising edge
layercvCV 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

idcablewhat it does
l1_pitchpitchLayer 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_gategateLayer 1's gate: high on a lit step (or while a key is held on layer 1), low otherwise.
gate / trigger; gate — acts while the level is high (reacts to both edges)
l2_pitchpitchLayer 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_gategateLayer 2's gate: high on a lit step or held key, low otherwise.
gate / trigger; gate — acts while the level is high (reacts to both edges)
l3_pitchpitchLayer 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_gategateLayer 3's gate: high on a lit step or held key, low otherwise.
gate / trigger; gate — acts while the level is high (reacts to both edges)
l4_pitchpitchLayer 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_gategateLayer 4's gate: high on a lit step or held key, low otherwise.
gate / trigger; gate — acts while the level is high (reacts to both edges)
polypolyPitchGateThe 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 (DX7 / CUBE / 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

idlabelrangedefaultcurve
bpmBPM30..300120linear
isPlayingPlay0..10discrete
activeLayerLyr0..30discrete
recArmRec0..10discrete
overdubOvd0..10discrete
octaveOct?..?4discrete
polyPoly0..10discrete

controls

controlwhat it does
LyrWhich 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.
BPMInternal tempo in beats per minute (each step is a 16th note), used only when nothing is patched into CLOCK IN.
PlayRun/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.
Numpad key {n}One remappable KEY BINDING. Fourteen of them: the twelve chromatic note keys (C … B, played at the current OCTAVE) and the two octave-nudge keys, all in one map. Each cap shows what it PLAYS and which physical key is currently bound to it — that engraving is the only feedback the remapping has, so binding a key and never learning which one you bound is what removing it would cost. Left-click a cap and press any physical key to bind it (Esc cancels); right-click for the same Remap plus Reset to default. The map is a bijection: binding a key that was already in use frees its old note, and binding a note that already had a key frees that key. It lives on the node and is saved with the patch, so a rack can hold several NUMPAD+ with different layouts.
OctThe 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.
OvdOverdub 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.
PolyPOLY RECORDING — a mode you switch on and leave on. While it is on, a capture stores every key you are HOLDING at that moment as a chord in the step (up to 5 voices); while it is off, a capture stores only the one key that triggered it. The mono per-layer outputs always send the lowest note either way, and this control gates RECORDING only — the POLY output jack is always live, at 0 or at 1.
RecRecord 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.

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