[sdiy] Polyevolver internals

Antti Huovilainen ajhuovil at cc.hut.fi
Wed Dec 30 15:09:00 CET 2009


On Wed, 30 Dec 2009, Tom Wiltshire wrote:

> There are various reasons; DCOs generate genuine analogue ramps, which is 
> important to some people;

Ok, I'll concede this point. Marketing angle.

> Related is the fact that DCOs can easily generate sync waveforms without 
> aliasing, which is *hard* to do with digital oscillators;

Not really, as long as you're not using more complicated waveforms than 
saw/pulse/triangle (and if you are, then you can't use normal DCO either).
All you need to do is work out the exact time when reset happened (basic 
arithmetic) and then add bandlimited step and/or ramp to that point 
(just adding contents of indexed precalculated table to the output).

> DCOs have a relatively low processor overhead, since you only have to 
> deal with a timing reset pulse once per wavecycle instead of dealing 
> with generating a new sample at x KHz. That leaves you time to do 
> modulation processing on the same chip.

Which you can do even if you have digital oscillators running on the same 
chip. DCOs can't be audio rate modulated, so comparison point should be 
"slowly" (less than 1 kHz) modulated digital oscillators. Envelopes and 
LFOs are really quite cheap using fixed point maths, so I don't see any 
problems running multiple envelopes and LFOs in addition to the 
oscillators.

As I've mentioned before, I've done a bit of notepad coding for dspic 
(there are probably off by one errors etc in the code, but nothing that 
has significant effect on cycle count).

Alias free wavetable oscillator with smooth fade between adjacent 
wabetable entries is ~45 cycles. Rough estimate for analog saw/pulse 
oscillator is 60 cycles. A 4 pole filter with OTA-like distortion 
in feedback path is ~60 cycles.

The classic two oscillators and one filter combination is then 150 - 180 
cycles. Synthesizing two voices at 72 kHz samplerate (1.5 * 48k) means 256 
cycles per voice, so there's still 75 - 100 cycles left for modulations 
and other things.

> I doubt Dave Smith would have got two voices on one dsPIC if he'd used 
> digital oscillators not DCOs in the Prophet 08.

I can't speak for Dave Smith, but as I wrote in previous chapter, there is 
no inherent reason why a single dspic couldn't do it.

Antti

"No boom today. Boom tomorrow. There's always a boom tomorrow"
   -- Lt. Cmdr. Ivanova



More information about the Synth-diy mailing list