[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