[sdiy] Integrated wavetables
Tom Wiltshire
tom at electricdruid.net
Sat Apr 7 12:55:01 CEST 2012
Hi all,
Has anyone else looked at this paper? - "TABLE LOOKUP OSCILLATORS USING GENERIC INTEGRATED WAVETABLES"
http://www.dafx.ca/proceedings/papers/p_169.pdf
Given that this is a simple method and provides a useful level of aliasing reduction, you'd think it would be widely used.
The basic idea is simple enough. Integrate the wavetable, which gives a 6dB rolloff in aliasing. When outputting the data, differentiate it to recover the original signal. The improvement comes because the integration is done at the natural frequency of the wavetable, whereas the differentiation is done at the output frequency, which will be much higher, assuming the wavetable is reasonably oversampled.
However, it seems to me that the author has omitted to mention a crucial implementation detail. If you store a "normal" wavetable at (for example) 8-bit resolution, you need a byte for each sample. Simple. If you store a discrete-time "integrated" wavetable using a simplistic running total for the integration, you get an increasing total which rapidly gets larger and requires more bytes per sample. So we finish up using 16-bit resolution to represent our 8-bit data.
I've tried it in simulation, and it works, but it does seem to require the larger storage. I've been trying to make it work by wrapping the results around into a single byte, but haven't succeeded.
Has anyone else played with this technique?
Thanks,
Tom
More information about the Synth-diy
mailing list