[sdiy] Digital oscillators [was: Active VCO temp compensation]
Tom Wiltshire
tom at electricdruid.net
Mon Dec 22 19:42:06 CET 2008
On 22 Dec 2008, at 17:48, Richard Wentk wrote:
> There may be some mileage in direct sine wave synthesis with
> intelligent band limiting. Effectively you'd generate a frequency
> domain representation of your target waveform and assemble it in
> real time, muting frequencies above a certain cut-off. This would
> be processor intensive but you could have arbitrary waveforms with
> arbitrary waveform transformations and lower pitches would have as
> much top end as they usually do.
This is effectively what I did, but I precomputed the wavetables. The
only table stored in ROM (Flash) is a high-resolution sinewave
lookup. When you require a particular waveform, a wavetable
generation routine runs that builds a series of progressively
bandlimited wavetables into RAM. The oscillator then refers to these
RAM tables.
This scheme has certain advantages and disadvantages. On the plus
side, arbitary waveforms are possible, and you can store many
individual waveforms since you only have to store a list of the
harmonic amounts, not the actual data. To weigh against this, the
wavetable generation takes about 1/5th of a second, so you get an
audible "zzziipp!" when you change waveforms and you couldn't really
do wavetable scanning like a PPG.
> The other advantage is that this would make it possible to add some
> movement to the upper harmonics. I tried some experiments in Csound
> and sounds with slightly randomised upper harmonics are livelier
> and more analogue-sounding than static digital waveforms.
This sounds interesting. Are you randomising the frequencies or the
amplitudes?
T.
More information about the Synth-diy
mailing list