Guide
How wavetables work
A wavetable is a set of single-cycle waveforms, called frames, stored in order. A synth plays one frame at a time, or a blend of two, and moving through the set changes the tone while the note holds. This guide explains exactly how wavetables work from the individual waveform to the actual file.
A sound is a shape that repeats
Press play on the figure below. You're hearing one short shape, called a single cycle, repeated over and over. Repeat it 220 times a second and you hear the A below middle C. Repeat it faster and the pitch goes up.
The pitch comes from how often the cycle repeats. The tone, the quality that makes a flute and a trumpet sound different on the same note, comes from the shape of the cycle. Switch between the shapes while it plays and the pitch stays put while the character changes. A sine is pure and soft, a triangle a little brighter, a saw is bright and buzzy, and a square sounds hollow.
The shape is the tone
Draw on the left panel to change the cycle and listen as you go. The bars on the right show the same cycle a different way, as harmonics: pure sine waves at 1, 2, 3 and more times the base pitch, added together. Every repeating shape can be built this way, and the bars are its recipe.
Smooth, rounded shapes need only a few harmonics. Sharp corners and sudden jumps need many, reaching high up the scale, and that's what we hear as brightness. Try the saw: its harmonics fall away gently, each one a little quieter than the one before. The square skips every even-numbered harmonic, which gives it that hollow sound. You can also work the other way round: drag a few bars up from a sine and listen to an organ-like tone appear.
A wavetable is a stack of cycles
Where a single cycle gives you one fixed tone, a wavetable holds many: it's a list of cycles, called frames, stored one after another. Usually each frame is a small step away from the one before, so the table as a whole describes a change, like a saw turning into a square or a filter opening up.
Lay the frames out one behind the other and the table looks like a landscape. That 3D picture is how most synths show a wavetable, and once you can read it, you can tell a lot about a table before you hear it. Drag the figure to turn it, and move the Position slider to pick a frame.
The position is just which frame the synth is reading, from the first (0) to the last (1). Most wavetables have somewhere between a handful and 256 frames, and each frame is usually 2048 samples long (more on that number below). Try the Frames setting: with 4 frames the table jumps between very different shapes, while 64 frames give a fine, gradual change.
Scanning through the table
Moving the position while a note plays is called scanning; some synths call it wave position or index instead. A slow, steady move makes the tone evolve. Hand the job to an LFO and the position sweeps back and forth on its own; hand it to an envelope and each note starts in one place and travels somewhere else, the way a plucked string starts bright and mellows.
The synth below plays chords (polyphony), and each note gets its own copy of that envelope, so a note played late starts its sweep from the beginning while earlier notes carry on. Underneath the table is a second envelope for volume: attack (how fast a note fades in), decay and sustain (where it settles while you hold the key), and release (how long it rings after you let go). The position keeps moving during the release, so a long release lets you hear the table carry on scanning as the note fades.
A filter sweep can only take harmonics away, but scanning a wavetable can change the whole recipe from frame to frame, adding harmonics or folding the wave over itself. Try the Vowel table with the envelope and a slow sweep time, then the Sync table with a fast LFO.
Between the frames
A table has a fixed number of frames, but the position moves smoothly. When it lands between two frames, the synth blends them, and there are two common ways to do that.
A crossfade mixes the two shapes sample by sample. It's simple and usually sounds fine, but when the two frames' harmonics are out of step with each other, they cancel, and the sound thins out or disappears halfway. A spectral morph blends each harmonic's level and timing separately, so nothing cancels and the level stays even through the move.
With the default saw and reversed saw, slide to the middle: the crossfade falls to silence, while the spectral morph passes through a completely different, spiky shape at full level. It has the same harmonics at the same levels as the saw, just shifted in time, which is why it sounds so close. Synths mostly crossfade between neighboring frames while you play, and that's fine because neighboring frames in a well-made table are already close. Spectral morphing matters more when a table is being made, to fill in the frames between a few hand-drawn ones. Back in Figure 4, tick Jump between frames to hear the steps you get without any blending.
2D wavetables
Some synths, especially Eurorack modules, arrange frames in a grid instead of a line. A 2D table has two positions, X across and Y down, so two controls or two modulation sources can move through it at once. The sound at any point is a blend of the four frames around it.
A 2D table is still stored as a list of frames, one row after another. Only the way the synth reads it changes, which is why the same file can often be used as a long 1D table too.
Why high notes need simpler frames
This section is more technical, and it explains why some wavetable synths sound cleaner than others on high notes. Digital audio can only hold frequencies up to half its sample rate, about 24 kHz at a 48 kHz sample rate. That ceiling is called the Nyquist limit. A bright frame played on a high note has harmonics far above it, and those fold back down below the limit as tones that have nothing to do with the note. That's aliasing, and it sounds like a harsh, metallic whine that moves the wrong way as you play up the keyboard.
Good wavetable synths prevent it by keeping several copies of every frame with more and more of the top harmonics removed, then reading a simpler copy as the note rises. These copies are called mipmaps, a name borrowed from 3D graphics, and the frame is said to be band-limited. Every other figure on this page plays band-limited frames. Switch this one to Raw frame and press Sweep up to hear what they prevent.
Frame size: samples per cycle
Each frame is stored as a list of numbers called samples, each one measuring the height of the wave at an evenly spaced point in the cycle. The number of samples per frame is the frame size, and it decides how much detail one cycle can hold. A frame with N samples can hold at most N/2 harmonics, because it takes at least two samples to describe a single up and down.
How a small frame sounds depends on how the synth plays it back. Early wavetable synths stored very small frames: the PPG Wave from the early 1980s used 128 samples per wave, 64 waves per table, at 8 bits. They stepped straight through those samples, holding each value until the next. Those stair-steps add harmonics the samples themselves don't contain, and that bright, slightly metallic grit is a big part of why the PPG sounds the way it does.
To play a note at any pitch, the synth moves through the frame faster or slower, skipping or stretching between samples as needed. At a 48 kHz sample rate, a note at 220 Hz lasts about 218 output samples per cycle, so a 2048-sample frame is read in steps of roughly nine samples. On a note like that, most of the frame's detail is above the Nyquist limit and gets set aside by the mipmaps anyway.
That detail pays off on low notes: the lower the note, the more of its harmonics fit under the Nyquist limit, and a bright frame needs all of them to sound complete. Here's how low each common frame size can go before it runs out of harmonics and starts to sound dull, at a 48 kHz sample rate:
| Frame size | Harmonics it can hold | Full brightness down to |
|---|---|---|
| 256 | 127 | about 190 Hz, near F♯3 |
| 512 | 255 | about 94 Hz, near F♯2 |
| 1024 | 511 | about 47 Hz, near F♯1 |
| 2048 | 1023 | about 23 Hz, below the lowest bass notes |
| 4096 | 2047 | about 12 Hz, below hearing |
That table describes smooth, modern playback, where a small frame simply runs out of harmonics. On early stepped hardware the result was rougher rather than duller, which is why some synths today offer a mode that deliberately brings those steps back. Switch Figure 8 between Stepped and Smooth at 128 samples to compare.
With smooth playback as the norm, 2048 became the standard. It's the smallest power of two that keeps even a deep bass note fully bright, and it's still small enough that a 256-frame table fits in about half a million samples. Bigger frames cost memory without adding anything you can hear, and smaller ones save memory at the expense of the low end, which is a fair trade on hardware with little storage.
Frame size also matters when a cycle comes from a recording. A note recorded at 110 Hz with a 44.1 kHz sample rate has cycles about 400.9 samples long, not a neat power of two. Turning it into a wavetable means resampling each cycle to exactly the frame size, so that the frame holds one complete cycle with no leftover piece.
When the frame size is wrong
A wavetable file is just samples, one after another, so the frame size is the only thing that tells a synth where one frame ends and the next begins. Cut in the wrong places and every frame holds the wrong slice of sound.
Reading a 2048-sample table as 4096 puts two different cycles in every frame, so it plays an octave high. Reading it as 1024 gives frames that each hold half a cycle. Sizes that don't divide evenly, like 600, are the worst: each frame starts a little further into a cycle than the last. A correct frame size can still go wrong if the cutting starts in the wrong place, for example when a file has extra samples at the front; drag Slip to hear it. The fix is always to tell the synth the real frame size and to start the file exactly on a frame boundary, which is what the markers in the next section are for.
Wavetables as files
A wavetable is usually an ordinary WAV file: all the frames played back to back. A 64-frame
table with 2048 samples per frame is 131,072 samples long, about three seconds of audio. Nothing in a plain
WAV says where one frame ends and the next begins, so a synth either assumes a frame size or reads a small
marker stored in the file. Serum's clm marker is the most common one, and many other synths and
modules read it too.
Working out the size of a table takes one multiplication: frames times samples per frame times bytes per sample. A 16-bit sample takes 2 bytes, 24-bit takes 3, and 32-bit floating point takes 4. The chunks at the front add less than a hundred bytes, so a 64-frame table at 2048 samples comes to about 512 KB at 32-bit and half that at 16-bit. Bit depth changes the file size and how finely each sample is measured, but not the number of samples or how many harmonics a frame can hold.
| Synth or module | Format | Frame size | Frames |
|---|---|---|---|
| Serum, Serum 2 | WAV with a clm marker | 2048 | Up to 256 |
| Vital | WAV, cut into 2048-sample frames | 2048 | Up to 256 |
| Surge XT | .wt, or a tagged WAV | Powers of two, up to 4096 | Up to 512 |
| Synthstrom Deluge | Mono WAV, clm marker or a length that's a multiple of 2048 | Powers of two | Set by file length |
| Expert Sleepers Disting NT | WAV; frame size from a -2048 style name suffix | 8 to 4096 | Set by file length |
Frame size times frame count is the file's length, and hardware has limits on that too. The Disting EX, for example, holds two million wavetable samples in total across everything loaded, so a card full of 256-frame tables at 2048 samples runs out after about three of them. If a table sounds broken on a new synth, check the frame size first, then the frame count. If you'd like to make your own tables, WaveStack builds them from a single frame or from a recording, and exports them with the correct marker and frame size for each of the synths above.
A short history
The idea underneath every wavetable is older than synthesizers you can buy. In 1958, Max Mathews at Bell Labs wrote a program that stored one cycle of a wave in a table and read it back at whatever speed a note needed. That table-lookup oscillator gave a computer a steady, pitched tone, but each table held only one shape.
The step to a whole set of shapes came from Wolfgang Palm in Hamburg in the late 1970s. His company, PPG, stored cycles with different harmonics next to each other and let the position move between them, which is the wavetable as this guide describes it. PPG's small, 8-bit frames and analog filters gave its instruments a sound that's still sought after. After PPG closed, Waldorf carried its tables forward, and from the mid-2000s software synths made wavetables a standard part of electronic music. The timeline below covers the landmark instruments and what each one could do.
-
- Tables
- One stored cycle per oscillator
- Scanning
- None
The table-lookup oscillator: store one cycle, then read it over and over at any speed. Most digital oscillators still work this way, though a single table means a single tone.
-
- Wavetables
- 30
- Waves per table
- 64
- Filter
- None
The first wavetable synth in the modern sense: cycles with different harmonics stored side by side, and a position that moves between them. Without a filter it sounded thin, and only about 40 were made.
-
- Wavetables
- 30
- Waves per table
- 64 (1,920 in all)
- Samples per wave
- 128
- Bit depth
- 8-bit
- Filter
- Analog, one per voice
Added an analog filter to every voice, and the combination of gritty digital waves and warm filters became the classic PPG sound. The Wave 2.2 followed in 1982 and the Wave 2.3, with 8-part multitimbrality, in 1984.
-
- Waveforms
- 128 single cycles
- Bit depth
- 12-bit
- Per voice
- 4 waves, mixed with a joystick
- Filter
- Analog
A close cousin rather than a wavetable synth: vector synthesis blends four single cycles at once, steered by a joystick, which is an early form of the 2D idea.
-
- Wavetables
- The PPG Wave 2.3's
- Engine
- Custom chip designed by Wolfgang Palm
- Filter
- Analog
PPG closed in 1987, and its German distributor, Wolfgang Düren, founded Waldorf the following year. The Microwave carried the PPG tables forward in a rack-mount module.
-
- Format
- Flagship keyboard with a hands-on panel
A high-end flagship that put the whole PPG approach under hands-on control.
-
- Format
- Eurorack module
- Wavetables
- Up to 256, loaded over MIDI
- Samples per wave
- 256
- Bit depth
- 8-bit
- Scanning
- By control voltage
The earliest Eurorack wavetable oscillator we know of, listed as new on Doepfer's site in 1998, three years after the format began. It doubles as a lo-fi sampler. Dedicated wavetable oscillators such as Synthesis Technology's E350 followed around 2010.
-
- Oscillators
- Wavetable, with a position knob
- Format
- Plug-in
Brought scanning wavetables to a generation of producers through software, and became the defining bass synth of late-2000s electronic music.
-
- Wavetables
- 68, including PPG tables
- Also
- Virtual analog and FM
Put the PPG and Microwave tables in a small desktop synth at a much lower price than the instruments they came from.
-
- Frames
- Up to 256
- Samples per frame
- 2048
- Import
- Any WAV, plus a built-in editor
- Marker
- clm
Made wavetables something you could see and edit. Its 2048-sample frames and clm marker became the format most other synths and tools follow.
-
- Frames
- Up to 256
- Samples per frame
- 2048
- Price
- Free tier
A free wavetable synth with spectral warping, which put a full modern wavetable engine in anyone's hands.
Glossary
- Single cycle
- One repetition of a waveform. Repeating it at a steady rate makes a pitched tone.
- Frame
- One single cycle inside a wavetable, usually 2048 samples long.
- Wavetable
- An ordered set of frames. Playing it means reading one frame, or a blend of two, at a time.
- Position
- Which frame is being read, from 0 (the first) to 1 (the last). Also called index or wave position.
- Scanning
- Moving the position while a note plays, by hand or with an LFO or envelope.
- Harmonic
- A sine wave at a whole-number multiple of the base pitch. Any repeating shape is a sum of harmonics.
- Crossfade
- Blending two frames sample by sample. Out-of-step harmonics can cancel.
- Spectral morph
- Blending two frames harmonic by harmonic, so the level stays even.
- 2D wavetable
- Frames arranged in a grid and read with two positions, X and Y.
- Nyquist limit
- Half the sample rate; the highest frequency digital audio can hold.
- Aliasing
- Harmonics above the Nyquist limit folding back down as unrelated tones.
- Mipmaps
- Copies of each frame with fewer harmonics, used on higher notes to prevent aliasing.
Questions
What's the difference between a wavetable and a sample?
A sample is a recording that plays from start to finish, usually lasting seconds. A wavetable is a set of single cycles, each a few milliseconds long, that repeat to make a steady tone. The sound changes only when the position moves, so a wavetable can hold a note for as long as you like.
Is wavetable synthesis the same as subtractive synthesis?
No, but they're usually combined. Subtractive synthesis starts with a bright waveform and removes harmonics with a filter. A wavetable synth changes the waveform itself, and most of them then run it through a filter too, so you get both.
Why did old PC sound cards call themselves wavetable?
In the 1990s, sound cards used "wavetable" to mean sample playback: stored recordings of real instruments, played back at different pitches. It's a different technique from the one on this page, and the name has stuck around, which causes plenty of confusion.
How many frames should a wavetable have?
As many as the change needs to sound smooth. A simple sweep from one shape to another works with 16 or 32 frames because the synth blends between them; 64 to 256 frames suit tables with lots of detail. Hardware with limited memory is a good reason to use fewer.
Why does the same wavetable sound different in different synths?
Synths differ in how they blend between frames, how they handle high notes (mipmaps or not), whether they smooth or step through the samples, and what filters and effects follow. A table made for one synth can also load with the wrong frame size in another.
Can I turn any sound into a wavetable?
Pitched sounds work best: a voice, a synth note, a bowed string. Each cycle is cut out at its own length and resampled to the frame size, so the table follows how the sound changed over time. Noisy sounds like cymbals don't have a repeating cycle to cut, so they turn into something quite different.
Does the order of the frames matter?
Yes. Scanning moves through the frames in order, so neighboring frames should be close to each other for a smooth sweep. Shuffled frames jump from shape to shape, which can be a deliberate effect but rarely sounds smooth.