A wavetable oscillator scales a phasor by the table size to index a stored waveform array
In Pure Data, a wavetable oscillator uses a phasor~ (a 0-1 ramp at the desired frequency) scaled by the table size to drive a table-read object which reads values from an array holding one cycle of any waveform. Multiplying the phasor output by 64 for a 64-sample table maps the 0-1 range onto valid array indices. Any waveform shape can be loaded or drawn into the table, making this more flexible than the built-in osc~ (fixed to a sine). Reading with tabread~ gives a raw (non-interpolated) lookup; switching to tabread4~ adds 4-point interpolation for cleaner output at the cost of more computation. It is the building block for wavetable, additive, and granular playback in Pd.
Examples
Pd ‘Table oscillator’ (chapter 11): [phasor~ 3000] -> [*~ 64] -> [tabread~ A], where array A holds one cycle of the waveform. Swapping tabread~ for tabread4~ interpolates between the 64 stored samples.
Assessment
Describe the signal graph for a Pd wavetable oscillator playing from a 256-sample table: name each object, give the multiplier that maps the phasor to array indices, and state one audible difference between using tabread~ and tabread4~.