Wavetable
A morphing wavetable oscillator built like the flagships: twelve banks, each rendered as 32 phase-aligned frames, so sweeping Position morphs the timbre glassy-smooth — no phasing, no zipper. The big display shows the whole bank as a 3D waterfall with your live morph position glowing through it (it follows CV, not just the knob). Warp modes bend the wave in real time, unison stacks up to seven detuned voices, and a phase-locked sine sub sits underneath. Pure oscillator by design — level with a VCA, tone with a filter.
The display
- Drag across it to morph. The bright slice is the wave you're hearing —
when CV drives POS, watch it swim through the stack.
- Mouse-wheel steps to the previous/next bank; right-click opens the
bank menu; double-click returns Position to 0.
The banks
- Classic — sine → triangle → saw → square → narrowing pulses.
- Drawbar — organ partials stacking bar by bar.
- Vowel — a two-formant voice gliding
A → E → I → O → U. - Metal — sparse gapped spectra morphing between metallic timbres.
- Reso — a saw with a resonant peak sweeping upward.
- Sync — a hard-synced saw climbing from unison to a scream.
- FM — true two-operator FM, glassy EP to DX growl.
- Bend — phase distortion: a pure cosine bending into a bright saw.
- Pluck — a plucked string's comb, sliding toward the bridge.
- Hollow — odd harmonics only, warming as the evens fade in.
- Steps — a sine quantized to fewer and fewer levels.
- Drive — a sine through ever-harder saturation.
- Lab — yours. Designed in the Wave Lab editor (below), unique to each
Wavetable instance, and saved inside the patch.
- Import — a sample from your library, analyzed into 32 harmonic frames
(see Import, below).
Every frame is band-limited (per-octave mipmaps), so high notes stay clean at any position, warp, or FM setting.
Controls
- Bank / Position / Pos CV — the table, where you are in it, and how hard
the POS input pushes (±1 = the CV sweeps the full range).
- Warp / Amount / Warp CV — real-time wave transforms:
Bend— tilts the waveform's time axis (± directions).PWM— moves the wave's midpoint, pulse-width style, on any bank.Sync— windowed hard-sync sweep (amount = ratio), tamed edges.Mirror— blends toward a forward-then-backward read.Quantize— steps the phase for deliberate retro-digital grit.- Unison: Voices / Detune / Blend — up to
7voices fanned across
±Detune cents; Blend sets the outer voices' level (loudness-compensated, so more voices ≠ louder).
- Freq / Fine — coarse pitch in octaves around C4, fine in cents.
- FM / LFM — FM depth;
LFM Onswitches exponential → linear
(±1000 Hz) for clangorous DX-style sidebands.
- Sub Oscillator: Octave / Mix — a sine
-1/-2/-3octaves down,
phase-locked to the wave, blended into the output.
The Wave Lab
Press LAB and design your own bank. You author two frames — A and B — and the oscillator morphs between them with the same phase-aligned smoothness as the factory banks. Each frame is a recipe: a base wave (sine through noise) with blend, phase warp, and an internal detune stack; sixteen paintable harmonics; a bytebeat source (24 equations) for digital grit; then asymmetry, drive, wavefold, a bytebeat waveshaper, and bitcrush.
Edits apply live — the module rebuilds in the background (about a tenth of a second, never a glitch) and the waterfall redraws with your wave. The recipe is saved in the patch and undoable like any knob. Copy A→B, tweak one thing, and sweep POSITION between them.
Stereo
- Width fans the unison voices across the stereo field (equal-power) —
the detuned copies spread left and right of centre, the modern huge-pad sound. The sub stays dead-centre so the low end holds solid.
- Skew splits the morph position per ear: left reads a touch earlier in
the bank, right a touch later — the timbre itself differs between ears. Watch the display: two live slices (cyan = L, violet = R) swim apart.
- Patch only
OUT Land everything folds to mono automatically — patch
OUT R and it unfolds to true stereo. Nothing is ever lost either way.
Vector
Bank B / Blend / Blend CV crossfade the whole oscillator toward a second bank at the same morph position. With CV into both POS and BLEND, you're steering a genuine 2D vector surface — position on one axis, bank-blend on the other, Prophet-VS style. Blend at 0% costs nothing.
Import
IMPORT SAMPLE analyzes any sample from your library into the Import bank: 32 frames swept across the file, each measured into harmonics — so an imported wave is band-limited and morphs as smoothly as a factory bank. Three Mode flavors:
Pitch— detects the fundamental and measures harmonics around it. Best
for notes, vocals, anything pitched. (Unpitched material politely declines — switch modes.)
Cycle— walks successive single cycles across the file; tracks waveshape
evolution tightly.
Grain— fixed windows treated as cycles; pitch-free and deliberately
spectral. Great for textures and noise.
The patch stores only which sample and mode — the analysis re-runs automatically when the patch loads. Frames are loudness-normalized, so the morph carries the timbre, not the envelope.
Inputs & outputs
- V/OCT — 1V/oct pitch (
0 V= C4). - POS — CV over morph position (scaled by Pos CV).
- FM — frequency modulation (audio-rate welcome).
- SYNC — hard sync; resets the unison field and the sub together.
- WARP — CV over the warp amount (scaled by Warp CV).
- BLEND — CV over the vector A→B blend (scaled by Blend CV).
- OUT L / OUT R — the oscillator,
±5 V.Lalone = automatic mono
fold-down; both = stereo (Width + Skew live here).
Tips
- Slow LFO →
POSon Vowel with 3 unison voices and a touch of Detune is
an instant choir pad.
- Envelope →
WARPwithSyncselected is the classic sync-sweep lead —
no second oscillator needed.
- Reso + envelope →
POSbehaves like a filter sweep that lives inside
the oscillator.
Quantizewarp + the Steps bank = maximum lo-fi digital.- Each bank renders itself the first time it's shown or played (a brief
one-time moment); after that every instance shares it for free.