Wavetable

Generate audio from a wavetable, morphing between its frames.

What it does

Wavetable is an oscillator that plays back a stored waveform rather than a fixed shape such as a sine or saw. Source takes a single cycle of numbers, a stack of frames captured as an image (one row per frame), or a curve, and the waveform is read through at the chosen frequency. Left unwired, Source defaults to a plain sine.

Position scans through the stack of frames, so animating it morphs the timbre over time. Unison stacks multiple detuned copies of the voice and spreads them across the stereo field.

When to use it

ParameterTypeDefaultWhat it does
sourceSignal or Number[] or Raster or Curve—NumberArray = single cycle. Raster = capture (rows=frames, cols=samples). Curve = sampled waveform. Empty = sine.
frequencyNumber440—
positionNumber0Position in wavetable stack. Animate for evolving timbre.
amplitudeNumber1—
phaseNumber0—
unison_voicesNumber1—
unison_detuneNumber10—
unison_spreadNumber0.500—
sample_rateNumber00 = scalar per frame, >0 = audio buffer at this sample rate
table_sizeString"2048"One of: 256, 512, 1024, 2048, 4096.

Gotchas

When an image is the source, rows are read as frames and columns as samples across one cycle. Build or bake the frame stack with that layout in mind.

Sample Rate defaults to 0, which outputs one number per frame (control-rate) rather than an audio buffer. Set it to a real rate (44100, 48000, ...) for audio-rate buffers on the Buffer outputs.

The Buffer (L) and Buffer Right (R) outputs differ only when Unison Voices is above 1 and Unison Spread is above 0. With a single voice or no spread, both channels carry the same signal.

Worked example

  1. Add a Wavetable node. Leave Source unwired to start: it plays a sine at 440 Hz.

  2. Wire in a captured waveform image (rows = frames, columns = samples) to Source for a custom timbre.

  3. Animate Position from 0 to 1 to morph across the frame stack over time.

  4. Raise Unison Voices to 4-8 and set Unison Detune and Unison Spread for a wide, thick voice.

  5. Set Sample Rate to 48000 and connect Buffer / Buffer Right downstream for full audio-rate processing.

See also

Additive Synth · Envelope Follower · Granular · Numbers, signals & audio