921b osc

moog921b · sources

921B Oscillator (moogafakkin System 55/35 clone — categorized under Ports -> moogafakkin). The slaved VCO driven by a 921A bus: it reads freq_bus (V/oct pitch) + width_bus (pulse width) CONTROL INPUTS from a 921A rather than carrying its own 1V/oct jack, and presents FOUR fixed-level simultaneous waveform outs off one common core — sine, triangle, saw, rectangular — clamped to 0.01 Hz at the bottom and to just under Nyquist at the top (23 520 Hz at a 48 kHz sample rate), not the hardware's nominal 40 kHz. The FREQUENCY pot is a 2-octave fine trim; the RANGE switch sets the octave footage; DC MODULATE is DC-coupled LINEAR FM (non-1V/oct, ±Hz); AC MODULATE is cap-coupled LINEAR FM (a DC-blocking high-pass runs first so a DC offset on the modulator doesn't bend the pitch); the SYNC input + 3-position SYNC switch (off / lo=soft / hi=hard) drive oscillator sync. With nothing patched the bus normals to C4 @ 50% duty so the 921B still sounds standalone, but it is designed to be driven by a 921A driver. DSP forks the shared own-code moogafakkin VCO core (clean-room polyBLEP/polyBLAMP band-limited oscillator + hard/soft sync, the same core the 921 VCO uses) - not a port of any moogafakkin schematic or copyleft source, permissive only. Beige moogafakkin faceplate (the intrinsic always-on look shared by the moogafakkin module family).

A clean-room recreation of the Moog 921B Oscillator — the slaved (sound-making) half of the System 55/35 two-part oscillator. It has NO 1V/oct jack of its own: its pitch comes from a 921A driver's FREQ BUS, so several 921Bs sharing one 921A play in unison and you tune the whole bank from the driver. Off one core it presents four fixed-level simultaneous waveform outputs — sine, triangle, saw, rectangular — clamped to 0.01 Hz at the bottom and to just under Nyquist at the top (23 520 Hz at a 48 kHz sample rate, 21 609 Hz at 44.1 kHz), with two linear-FM inputs (a DC-coupled and an AC/cap-coupled one) and a hard/soft sync input. The FREQ (fine) and RANGE (octave footage) knobs offset its pitch relative to the bus, so each 921B in a bank can be detuned or octave-shifted off the shared pitch. Mental model: a 921 VCO whose pitch is fed by the bus instead of a knob, built for stacked unison/detune voices. WHAT IT SINGS IS A SUM OF TWO PANELS AND NEITHER ONE CAN SHOW YOU THE ANSWER: 261.626 Hz x 2^(bus volts + range + fine/12), where the bus volts come from the 921A's FREQUENCY pot times its RANGE compass and this module contributes only the offset. Its faceplate prints that offset in octaves and the pitch it would sing with the bus at rest; the driver's faceplate prints the volts it is sending; the two terms add. Everything else on this panel is asleep as delivered — FM ships at 0, so both linear-FM jacks are silent until it is raised, and SYNC ships OFF — which is why the faceplate prints their state rather than their dial position.

the faceplate

921b oscfreq_buscvwidth_buscvdc_modaudioac_modaudiosyncaudiosineaudiotriangleaudiosawaudiorectaudioaudiocvgatepitch
5 inputs · 4 outputs · 5 params

inputs

idcablewhat it does
freq_buscv1V/oct pitch CV from a 921A driver's freq bus (0 = C4) — this is how the 921B gets its pitch. Patch the driver's FREQ BUS output here; the FREQ + RANGE knobs offset on top of it.
control voltage (CV)
width_buscvPulse-width CV from a 921A driver's width bus; sets the rectangular output's duty cycle (the sine, triangle and saw taps ignore it). It normals to 0.5 — a 50% square — and the normal is decided by the VALUE on the cable rather than by whether a cable is there: anything at or below 0.02 is treated as 'nothing patched'. So a fully patched driver sitting at its WIDTH minimum gets the same 50% square as no cable at all, and the duty jumps straight from 50% to 2% just above that. See issue #1791.
control voltage (CV)
dc_modaudioDC-coupled linear FM input: added to the frequency in Hz and scaled by the FM knob. Because it is DC-coupled, a steady offset here shifts the pitch (good for envelope-to-pitch), and audio here gives linear FM.
audio signal
ac_modaudioAC-coupled (cap-coupled) linear FM input: a DC-blocking high-pass runs first, so a DC offset on the modulator does NOT bend the pitch — only its alternating content modulates. Scaled by the FM knob; use it for vibrato/FM that won't drift the tuning.
audio signal
syncaudioExternal sync source: each rising edge resets (hard) or nudges (soft) the oscillator's phase per the SYNC switch, locking it to the incoming signal for hard-sync sweeps.
audio signal

outputs

idcablewhat it does
sineaudioThe pure sine tap (fixed level), the fundamental with no harmonics. It is also the tap the faceplate's live glyph traces — the shell binds to the FIRST audio output a module declares, so the little waveform on the tile is the sine and never the saw, triangle or rect.
audio signal
triangleaudioThe triangle tap (fixed level) — soft and hollow, gentler than the saw.
audio signal
sawaudioThe band-limited sawtooth tap (fixed level) — the brightest, all-harmonics waveform.
audio signal
rectaudioThe rectangular / pulse tap (fixed level); its duty cycle follows the width bus (50% when unpatched).
audio signal

params

idlabelrangedefaultcurve
fineFreq-12..12st0linear
rangeRange-5..5oct0discrete
modAmountFM-1..10linear
syncModeSync-1..10discrete
levelLevel0..21linear

controls

controlwhat it does
FreqFREQ — a ±12-semitone (2-octave) fine tuning offset applied on top of the bus pitch, for detuning this 921B against others in the bank. ±1200 cents, five times less reach than RANGE.
LevelOutput gain on every waveform tap, 0 to 2 (1 = unity) — the 921B's built-in VCA. It is a LINEAR multiplier, so its own value reads 1.00 at unity where the faceplate's `out` readout says 0.0 dB, and 2.00 at the top where that is +6.0 dB.
FMFM — linear-FM depth, ±1, shared by both the DC and AC modulate inputs. At the shipped 0 BOTH FM jacks are bit-exactly silent, so patching one changes nothing until this is turned up; the faceplate's `fm` readout prints `off` there and the ±Hz swing a full-scale modulator buys otherwise.
RangeRANGE — octave footage, a discrete ±5-octave coarse offset on top of the bus pitch, to stack a 921B an octave (or several) above/below its siblings. ±6000 cents: the largest authority on the module, which is why the faceplate promotes it. RANGE and FREQ land in the SAME exponent as the pitch bus, so the pitch this module sings is 261.626 Hz x 2^(bus volts + range + fine/12) — the faceplate's `pitch` readout is that expression with the bus at rest, and `offset` is the term this module contributes to it.
SyncSYNC switch: LO = soft sync (a gentle phase nudge), OFF = the sync input is ignored, HI = hard sync (a full phase reset on each rising edge of the sync input). It is a three-position switch rather than a dial — the DSP compares against ±0.5, so there is nothing between the detents.

source

moog921b.ts on GitHub.

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