GARTHWILSON wrote:
I'm probably not understanding you correctly; but to be clear, in DDS, if the phase accumulator and the incrementer are both 16-bit, and you do 16,000 SPS, and you have a 256-sample table, each count of the incrementer is 1/65536 (ie, 1/256 of 1/256) of a wave, so you get 16,000/65,536K Hz resolution, ie, better than 1/4 Hz resolution, linearly, from deep-subsonic up to just below the 8kHz Nyquist frequency, or actually whatever your anti-alias filter can handle, perhaps 7kHz. A 1/8Hz error (which is the worst case, where you have to go a half of a 1/4 Hz increment one direction or the other to a playable pitch) at the low end of the hearing range is about 10 cents off, which is somewhat of an offense to anyone with a good sense of pitch—except that down there, you can't really discern the pitch accurately at all anyway. You would rely on the pitch of harmonics, or just see how many seconds it would take to complete a cycle of the beating against a reference, in this case more than eight seconds! At the lowest note the bass can play (if it doesn't have the C extension), the maximum error becomes about 5 cents. Up at A440, 1/8Hz error is less than half a cent. (Hopefully I don't have any errors in my math.)
Quite right, and that's one of the advantages of the phase-accumulator design. I was speaking more in terms of simple linear down-counter designs like (for example) the NES pAPU, where the counter is simply loaded with a value and then decremented until it reaches 0, at which point the position within the waveform is incremented. In that system, output frequencies can only be even divisions of the master clock rate, so that there are only two possible frequencies within an octave of the maximum rate, four within two octaves, etc. etc. But really my point is just that extra bits can still serve a purpose even if they don't get directly hooked to the wavetable address.
Quote:
It's even better than that. 2KB.
256 8-bit samples, times 8 voices is 2KB. But you might want different tables for different ranges of notes for the same voice. For example, on my cello, playing the lowest notes on the C string does not give just a shifted-down spectrum of what I get playing one or two or three octaves higher. (I regularly get up to the top of the treble clef, over three octaves above the lowest note, but I don't feel confident playing above that in public, as intonation becomes more difficult, except sometimes in harmonics.)
True enough - there's a variety of benefits provided by multi-sampled waveforms. You could also do something like assign completely different timbres to the higher and lower ranges of a channel that the music alternates between a bass part and a treble part, to reduce the overhead of making the most of limited polyphony, or anything else you can think of.