numpad+

numpadPlus · sources · schema v2

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; 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.

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
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
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
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
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
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 (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

idlabelrangedefaultcurve
bpmBPM30..300120linear
isPlayingPlay0..10discrete
activeLayerLyr0..30discrete
recArmRec0..10discrete
overdubOvd0..10discrete
octaveOct0..84discrete
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.
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 (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.
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