921 vco
moog921Vco · sources · schema v1921 voltage-controlled oscillator (first module of the moogafakkin System 55/35 clone — categorized under Ports -> moogafakkin). Faithful to the original 921: ONE oscillator core presents FOUR simultaneous waveform jacks — sine, triangle, sawtooth, and rectangular with variable pulse width — all phase-coherent off the shared core. Pitch input is exponential 1V/oct (0V = C4); a dedicated LINEAR frequency-control input (lin_fm, scaled by the Lin FM depth) gives through-zero-style linear FM; a sync input drives the hard/soft/off SYNC switch (-1 soft / 0 off / +1 hard) for classic sync timbres. RANGE sets the coarse octave (+/-5 oct), FREQ the fine tune (+/-12 st), WIDTH the rectangular duty cycle (with audio-rate width_cv), LEVEL the output gain. DSP is own-code: a clean-room polyBLEP/polyBLAMP band-limited oscillator (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).
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
pitch | pitch | 1V/oct exponential pitch CV: 0 V plays C4 and every +1.0 raises the oscillator one octave. Patch a keyboard, sequencer, or the 921A driver bus here to play it; it sums on top of the RANGE + FREQ knobs. V/oct pitch CV |
lin_fm | audio | Audio-rate LINEAR frequency modulation input — adds to the frequency in Hz (not exponentially), so the modulation depth stays constant in pitch terms across the keyboard rather than widening with pitch. Its depth is set by the LIN FM knob; patch another oscillator here for clangorous FM/bell timbres. audio signal |
sync | audio | External sync source: each rising edge resets (hard) or nudges (soft) the oscillator's phase to lock it to the incoming signal, per the SYNC switch — patch a second oscillator here and sweep this one's pitch for the classic hard-sync sweep. audio signal |
width_cv | cv | Pulse-width CV: summed onto the WIDTH knob per sample so an LFO here animates the rectangular output's duty cycle (pulse-width modulation). It only affects the rectangular tap; the sine/triangle/saw stay fixed. control voltage (CV); modulates width (summed directly (the destination DSP scales it)) |
octave | cv | CV that displaces the RANGE knob in octaves (coarse pitch); a bipolar LFO/envelope here transposes the oscillator by whole octaves around the knob setting. control voltage (CV); modulates octave (additive offset — ±1 CV sweeps the full range, centered on the knob) |
tune | cv | CV that displaces the FREQ fine knob in semitones; use it for subtle vibrato or fine detune layered on top of the 1V/oct pitch. control voltage (CV); modulates tune (additive offset — ±1 CV sweeps the full range, centered on the knob) |
linFmAmount | cv | CV that displaces the LIN FM depth knob, so you can modulate how much linear FM the lin_fm input applies (e.g. open the FM with an envelope for a percussive attack). control voltage (CV); modulates linFmAmount (additive offset — ±1 CV sweeps the full range, centered on the knob) |
level | cv | CV that displaces the output LEVEL, acting as a built-in VCA on every waveform tap — patch an envelope here to shape the oscillator's amplitude without an external VCA. control voltage (CV); modulates level (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
sine | audio | The pure sine tap — the fundamental with no harmonics. Same pitch as the other three taps. audio signal |
triangle | audio | The triangle tap — a soft, hollow tone with only odd harmonics rolling off steeply (mellower than the saw). audio signal |
sawtooth | audio | The band-limited sawtooth tap — the brightest, fullest waveform (all harmonics), the staple for subtractive bass and leads. audio signal |
rectangular | audio | The rectangular / pulse tap — its duty cycle is set by the WIDTH knob (and width_cv); a 50% square is hollow, off-square pulses get nasal and thin, and sweeping the width is pulse-width modulation. audio signal |
params
| id | label | range | default | curve |
|---|---|---|---|---|
octave | Range | -5..5oct | 0 | linear |
tune | Freq | -12..12st | 0 | linear |
width | Width | 0.02..0.98 | 0.5 | linear |
linFmAmount | Lin FM | -1..1 | 0 | linear |
sync | Sync | -1..1 | 0 | linear |
level | Level | 0..2 | 1 | linear |
controls
| control | what it does |
|---|---|
| Level | Output gain on every waveform tap, 0 to 2 (1 = unity). Acts as the oscillator's own VCA; the level CV input adds on top. |
| Lin FM | How much the LINEAR FM input bends the pitch, ±1 — at 0 the lin_fm jack is silent; raise it for FM/bell timbres. |
| Range | Coarse pitch in whole octaves (RANGE), -5 to +5 around the patched 1V/oct pitch. The octave CV input adds on top of this. |
| Sync | SYNC mode switch: -1 = soft sync (a gentle phase nudge), 0 = off, +1 = hard sync (a full phase reset on each edge of the sync input). |
| Freq | Fine pitch trim in semitones (FREQ), ±12 (one octave each way) for tuning the oscillator against others or detuning for thickness. |
| Width | Duty cycle of the rectangular tap, 2% to 98% (0.5 = a 50% square). Only the rectangular output responds; sweep it (or modulate with width_cv) for pulse-width modulation. |
source
moog921-vco.ts on GitHub.