Wavetable oscillators control pitch by varying the step size through a stored single-cycle waveform
A wavetable oscillator stores one cycle of a waveform as an array of samples and repeats it. To change pitch it advances through the table with a variable increment: a larger increment skips more table samples per output sample, producing a higher frequency; a smaller increment steps slowly, producing a lower frequency. Between-sample positions are filled by interpolation. Crucially, a single stored waveform can produce any pitch — no separate table per note is needed. This is more memory-efficient than storing full recordings and avoids the boundary-reset aliasing of a naive counter.
Examples
A 2048-sample wavetable at 44.1 kHz: for 440 Hz the increment ≈ (440 × 2048) / 44100 ≈ 20.4 samples per output sample. Doubling to 880 Hz doubles the increment to ≈ 40.8.
Assessment
How does a wavetable oscillator produce different pitches from a single stored waveform? What does a fractional table increment require you to do between stored samples?