understanding some terms and theory
John Tuffen
john at nrtg.com
Tue Nov 17 11:42:45 CET 1998
John Speth asked:
>
>> I've wondered about how the "pros" really do multitimbral sample playback.
>> I guess it just isn't practical to have many fast clocks stepping through
>> wavetables at asynchronous rates, digitally mixing, and sending the digital
>> mix to a DAC. My guess would be that, at a constant sampling rate (like
>> 44KHz), there's some fast, special purpose hardware that continually
>> calculates what sample value to send to the DAC thus making the post
>> filtering easier. I'm only guessing at this so my question is this: Just
>> how DO the pros do it? Does anybody know?
>
>
>Well, it's all quite straightforward really..... :)
>
>Each monophonic voice has a phase-accumulator-register (in RAM)
>containing a fixed-point counter (let's say n-bit integer + m-bit fractional
>part). The integer part of this register is used to index into a wavetable,
>whilst the fractional part is used to allow more precise frequency
>generation.
>
>For a given *fixed* sampling rate, and a wavetable that contains one cycle of
>a waveform, a phase-increment value can be calculated for any required
>sample-
>playback frequency.
>
>To play your wavetable at it's original frequency, the phase-increment will
>be 1,
>for an octave up, it will be 2, for an octave down it will be 0.5.
>
>As the phase-accumulator is continually incremented, there will come a time
>at
>which the integer phase part becomes too big for the n-bit integer register.
>This is
>OK because the register will then start incrementing from 'around' zero. The
>fractional
>part remains across this 'modulus' operation....
>
>So, we now have a mechanism for playing a single voice wavetable. To make
>this
>multitimbral/polyphonic we just add more phase-accumulator registers (one per
>voice) which index into the same wavetable (polyphonic operation) or
>different
>wavetables (multitimbral operation).
>
>Since all oscillators are running at the same sampling frequency, all of the
>output
>sample values can be added together, scaled and the compound signal output
>very simply.
>
>Possible things to do.... have an oscillator that actually indexes two (or
>more)
>wavetables using the same phase-accumulator/phase-index pair, and cross-fade
>between them..... is that what the PPG/Waldorf stuff does??
>
>
>Anyway, this is all rather sketchy - it is pretty easy to code though :)
>
>john..
More information about the Synth-diy
mailing list