analog vco

analogVco · sources

One phase accumulator, six taps: saw / square / triangle / sine, a saw→sine→square morph, and a sync pulse. Exponential FM and phase modulation, plus hard sync in.

The analog VCO is a classic-topology voltage-controlled oscillator: ONE phase accumulator read six different ways. Four fixed taps (sawtooth, square, triangle, sine) sound simultaneously on separate outputs, a fifth crossfades saw → sine → square under the shape parameter, and a sixth emits a one-sample pulse at every cycle boundary for chaining hard sync. It accepts V/oct pitch CV with coarse/fine tuning, exponential audio-rate frequency modulation and phase modulation with bipolar depth controls, and a hard-sync input that resets the phase. The mental model is a single oscillator core with multiple simultaneous taps plus an interactive waveform morpher — patch the raw waveforms to filters/mixers, use morph for smooth real-time texture, and chain sync ports for rich polysynth interactions. ⚠ It is analog in TOPOLOGY only, not in modelling: the taps are computed naively with no band-limiting (no PolyBLEP, no oversampling), and no drift, noise, saturation or DC blocker anywhere — so it aliases audibly high in its range and stays perfectly, un-analog-ly stable at the bottom of it.

the faceplate

analog vcopitchpitchfmaudiopmaudiosyncaudiotunecvfinecvfmAmountcvpmAmountcvshapecvsawaudiosquareaudiotriangleaudiosineaudiomorphaudiosyncaudioaudiocvgatepitch
9 inputs · 6 outputs · 6 params

inputs

idcablewhat it does
pitchpitchV/oct pitch input (0V = C4) that drives the oscillator frequency; modulated by the tune, fine, and FM inputs together to set the final sounding pitch.
V/oct pitch CV
fmaudioAudio-rate frequency modulation input (typically an LFO or envelope), scaled by the fmAmount parameter to add wobble, vibrato, or dramatic pitch sweeps without changing the coarse tuning.
audio signal
pmaudioAudio-rate phase modulation input (typically an LFO or envelope), scaled by the pmAmount parameter to add timbre modulation and metallic character, especially effective on the square and triangle taps.
audio signal
syncaudioHard-sync input that resets this oscillator's phase to zero on every rising edge, allowing you to lock its waveform to a master oscillator for rich, metallic, or aliased tones. When unpatched, the VCO output is unchanged from a version with no sync port.
audio signal
tunecvCV modulation of the tune parameter (semitones); displaces the coarse pitch knob left/right so an external LFO or sequencer can transpose in whole-step intervals without affecting fine tuning.
control voltage (CV); modulates tune (additive offset — ±1 CV sweeps the full range, centered on the knob)
finecvCV modulation of the fine parameter (cents); displaces the fine tuning knob left/right for subtle pitch micro-adjustments or vibrato-style modulation around the coarse pitch.
control voltage (CV); modulates fine (additive offset — ±1 CV sweeps the full range, centered on the knob)
fmAmountcvCV modulation of the FM depth; displaces the FM-depth knob left/right to dynamically scale how much the fm input affects the pitch — turn it up to let an envelope open the frequency sweep, or down to tighten it.
control voltage (CV); modulates fmAmount (additive offset — ±1 CV sweeps the full range, centered on the knob)
pmAmountcvCV modulation of the PM depth; displaces the PM-depth knob left/right to dynamically scale how much the pm input affects the phase and timbre — open it up from an envelope to add evolving color.
control voltage (CV); modulates pmAmount (additive offset — ±1 CV sweeps the full range, centered on the knob)
shapecvCV modulation of the morph output waveform (0 = sawtooth, 0.5 = sine, 1 = square); displaces the shape knob left/right so an external LFO, envelope, or sequencer can crossfade the morph output through the three classic waveforms in real time.
control voltage (CV); modulates shape (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
sawaudioThe raw sawtooth waveform (rich harmonic content, bright and buzzy), always sounding at the pitch CV regardless of the shape or morph knob.
audio signal
squareaudioThe raw square/pulse waveform (hollow, woody tone), pulse width set by the pw parameter — use this tap to feed a filter or as-is for bright synth bass.
audio signal
triangleaudioThe raw triangle waveform (softer than square, more mellow), useful for warmth or blended with other taps through a mixer.
audio signal
sineaudioThe pure sine waveform (no harmonics, pure fundamental), ideal for clean sub-bass, tone modulation, or as a base mixed with other waveforms.
audio signal
morphaudioContinuous morphing output that sweeps from sawtooth (shape = 0) through sine (shape = 0.5) to square (shape = 1) as the shape parameter changes; shaped by the shape knob and its CV input, and reflects any FM/PM modulation in real time. The on-card scope displays this output live so you see the crossfade happening.
audio signal
syncaudioHard-sync output — a one-sample +1 pulse at each cycle boundary (phase wrap) so it can clock another VCO's sync input for chained oscillator interactions or external gear. When unplugged, the sync output is silent.
audio signal

params

idlabelrangedefaultcurve
tuneTune-36..36semi0linear
fineFine-100..100cent0linear
fmAmountFM-1..10linear
pmAmountPM-1..10linear
pwPW0.05..0.950.5linear
shapeWave0..10linear

controls

controlwhat it does
Analogvco cycle {n}One cycle of all five wave taps, drawn from the live knobs rather than from the audio: SAW, SQUARE, TRIANGLE and SINE as thin ghosts with MORPH picked out in the audio hue, every one read off the same phase the DSP uses. It is the fastest way to see what the knob row hides — turn WAVE and only the MORPH trace moves; turn PW and SQUARE moves with it, while MORPH follows only once WAVE is past its midpoint. The CYCLES button switches the window between one and two periods and relabels the axis with the period the knobs currently imply; that is a private view setting, so zooming your own plot changes nothing for anyone else in the rackspace.
FineFine tuning in cents (−100 to +100, one cent = 1/100 of a semitone) — apply a perfectly-tuned unison detune when stacked with another oscillator, or dial in an exact note without coarse octave shifts.
FMDepth of frequency modulation from the FM input (−1 to +1) — 0 means the fm input has no effect. The modulation is EXPONENTIAL and measured in octaves: it lands in the same exponent as tune and fine, so a depth of 1.0 against a ±1 modulator is ±12 semitones. The sign INVERTS THE MODULATOR (a 180° phase flip), it does not choose a direction — against the bipolar LFO you would normally patch here, +0.5 and −0.5 sweep the same distance up and down and differ only in phase. (Only for a strictly unipolar modulator does the sign read as up-versus-down.) Patch an LFO here for vibrato, or ramp it from an envelope for dramatic pitch drops.
PMDepth of phase modulation from the PM input (−1 to +1) — 0 means the pm input has no effect. Higher values shift the morph timbre more dramatically per unit of PM signal; use this to add envelope-driven color changes.
PWPulse width of the square waveform (0.05 to 0.95, duty cycle) — 0.5 is a perfect square, lower values create thin nasal pulses, higher values create inverted thin pulses. It is live on the SQUARE output from the moment the module spawns; it reaches the MORPH output only in proportion to 2 x Wave - 1, so at the shipped Wave of 0 it does nothing to the morph at all. Note there is no PW CV jack (the five CV inputs are tune, fine, fmAmount, pmAmount and shape), so a PWM sweep has to come from automation or MIDI-learn rather than from a cable.
WaveWaveform selector for the morph output (0 to 1) — 0 = sawtooth, 0.5 = sine, 1 = square. Knob + CV modulation add together, so a sequencer or LFO can smoothly sweep through all three classic waveforms.
TuneCoarse pitch in semitones (−36 to +36) — shift the whole oscillator up or down by whole-step intervals. With CV modulation on, knob + CV add together, so a sequencer can select octaves while the knob sets a base pitch.

source

analog-vco.ts on GitHub.

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