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
A custom or evolving tone rather than a stock waveform, drawn or captured and played back
A timbre that morphs over time, by animating Position across a stack of frames
A fat, wide unison sound, from Unison Voices with Detune and Spread
Audio-rate output for further processing, with Sample Rate above 0 for a real audio buffer instead of one value per frame
| Parameter | Type | Default |
|---|---|---|
source | OneOf([Signal, NumberArray, FieldOf(Raster), Curve]) | — |
frequency | Number | 440 |
position | Number | 0 |
amplitude | Number | 1 |
phase | Number | 0 |
unison_voices | Number | 1 |
unison_detune | Number | 10 |
unison_spread | Number | 0.500 |
sample_rate | Number | 0 |
table_size | String | "2048" |
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
Add a Wavetable node. Leave Source unwired to start: it plays a sine at 440 Hz.
Wire in a captured waveform image (rows = frames, columns = samples) to Source for a custom timbre.
Animate Position from 0 to 1 to morph across the frame stack over time.
Raise Unison Voices to 4-8 and set Unison Detune and Unison Spread for a wide, thick voice.
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