[sdiy] Korg DW synths and phase in wavetables
Tom Wiltshire
tom at electricdruid.net
Fri Jan 4 20:21:57 CET 2008
Hi all,
I've been looking at the waveform data from the Korg DW8000 synth.
For those of you that don't know much about it, it uses different
wavetables for each octave. The wavetables are arranged so that
higher octaves have less harmonic content. This avoids aliasing. At
the bottom end of its range it uses 2048 8-bit samples per wave, with
1024 further up, and 512 at the top end. Like this it is able to get
all the wavetables it needs for a single waveform into only 8K, which
I reckon is pretty good going. You could do the same thing at 16-bit
resolution and still only use 16K, which would be blinding.
There are some things that it doesn't do that you'd probably want to
include now, like interpolation between wavetable samples (it
truncates the phase index), or interpolation between octave
wavetables, but at the time they just didn't have the processor power
for the price.
With this in mind, I was surprised to discover that it stores a full
cycle of every waveform, even though every waveform in it is
symmetrical, so you could easily just store half and read the same
data out in reverse for the second half. If memory was expensive, why
did they waste 50% of what they had? Then again, dealing with the
reversed wavetable look-up addresses might have been worse...
This does bring up one question though; If you generate wavetables
with all the harmonics starting at the same phase (0) then the
wavetables will always have this property of rotational symmetry
around the central point, which allows you to use half as much memory
to store them. Given that the human ear can't really hear phase (only
phase differences and the effects they cause) and can't tell the
difference between a true square wave and any of the other waves that
include the same amount of those odd harmonics, is there any reason
why I _might_ want to store an entire cycle of a waveform in a
wavetable synth?
T.
More information about the Synth-diy
mailing list