956 ribbon

moog956 · utility

956 Ribbon Controller (moogafakkin System 55 clone — categorized under Ports -> moogafakkin). A horizontal touch-ribbon: press and slide along the strip and the position maps to a continuous pitch CV, with a GATE that goes HIGH while touched. Outputs pitch (V/oct: 1.0 = one octave, a semitone = 1/12, matching MIDI CV BUDDY) and gate. Like the hardware resistive ribbon, lifting off HOLDS the last pitch — only the gate falls, so the patched VCO stays at the last played note. SCALE sets the ribbon span in octaves (0..5, default 2); OFFSET shifts the base pitch in octaves (-2..2). A UI-driven CV source in the JOYSTICK / GAMEPAD family — a pointer on the strip drives two ConstantSourceNodes; no audio worklet. Press and slide are ONE stroke: the same gesture sets the pitch and holds the gate, and lifting off drops only the gate. The strip is on the lane tile and at the head of the dock faceplate, alongside POS / SCALE / OFFSET / GATE as ordinary controls. The GATE is a press rather than a saved value — it is never written into the patch, so a rack saved mid-note reloads silent instead of droning. The on-screen keyboards (950/951/952) are intentionally NOT cloned — route hardware MIDI keys through MIDI CV BUDDY instead.

A clean-room recreation of the Moog 956 Ribbon Controller — a touch strip you play with your finger. Slide along the horizontal ribbon and your finger position maps to a continuous 1V/oct pitch CV; a gate goes HIGH the whole time you are touching it and falls when you lift off. Like the hardware's resistive ribbon, lifting off does NOT reset the pitch — the ribbon HOLDS its last value (only the gate drops), so the patched VCO stays on the last note until you touch again. The ribbon spans SCALE octaves end-to-end, shifted by OFFSET, so pitch (V/oct) = OFFSET + position × SCALE. Mental model: a fretless, glide-friendly keyboard alternative in the same family as joystick/gamepad — drive a VCO's pitch with the pitch output and an envelope/VCA with the gate.

the faceplate

956 ribbonpitchpitchgategateaudiocvgatepitch
0 inputs · 2 outputs · 4 params

outputs

idcablewhat it does
pitchpitch1V/oct pitch CV set by your finger position along the ribbon: OFFSET at the far left up to OFFSET + SCALE at the far right. It HOLDS its last value after you lift off (no reset), so patch it into a VCO's 1V/oct pitch for smooth ribbon glides.
V/oct pitch CV
gategateGate that stays HIGH (1.0) the entire time you are touching the ribbon and drops to 0 when you lift off — a hold-while-pressed gate. Patch it into an ADSR's gate or a VCA so a note sounds only while your finger is down.
gate / trigger; gate — acts while the level is high (reacts to both edges)

params

idlabelrangedefaultcurve
posPos0..10linear
gateGate0..10discrete
scaleScale0..52linear
offsetOffset-2..20linear

controls

controlwhat it does
GateThe touch state (0/1), raised by the ribbon on press and dropped on release; it is the same signal carried by the gate output. It is a PRESS, not a setting — it is never saved with the patch and never shared with a peer, so a rack you saved mid-note reloads silent instead of droning. Normally you play it by touching the strip, but the faceplate also gives it as a press-and-hold pad you can strike without moving the pitch.
OffsetThe base pitch in octaves (V/oct), -2 to +2, that shifts the whole ribbon up or down so its span sits where you want on the keyboard.
PosThe ribbon position itself (0..1), normally written by dragging on the strip; it persists with the patch so the last-played position survives a reload. The faceplate also gives it as a FADER, which is the same value as a throw you can set without gating a note.
ScaleHow many octaves the ribbon spans end-to-end, 0 to 5 (default 2 = a two-octave strip). Larger = wider pitch range but coarser finger resolution.

source

moog956.ts on GitHub.

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