[sdiy] Digital accumulator VCO core?

Mike Bryant mbryant at futurehorizons.com
Sat Feb 13 11:53:59 CET 2021

Hi Brian

> >  once you get to a 32 bit accumulator then its way beyond any discrete step your ear can determine.  Any perceived difference would thus be in the realm of those people who claim to be able to hear the difference between decent op-amps or low-noise transistors.

> It depends.  Are you talking about pitch or amplitude?
> If you're talking about pitch, there's an infinite difference between continuous frequency changes and stepped changes, no matter how small the steps. There's also a lot of aliasing possible when doing any sort of sample rate conversion. Apart from synthesizing sine waves from scratch, every other digital technique will alias if you try to change the pitch within a fixed sample rate system.

I was talking about pitch.  In experiments I did many years ago on gliding, stepped intervals of around 0.5 to 1mS is where it becomes just about audible to most people.  Nowadays I use a 12kHz (1/8 of 96 kHz) update for all modulation and nobody has heard any ill effects.  But this is with additive sinewaves only.  So I don't think people can actually hear the stepped changes, but do hear the random aliases caused by stepping non-sinusoids.

> If you're talking about amplitude, 

I use always 32 bit signed integer, accumulating into 64 bit.  This gets rounded to 32 bit to drive the AKM VelvetSound DACs but I leave the dithering to the DAC as recommended by AKM.

> It seems like there are a lot of people who prefer analog over digital, vinyl over CD, etc. Whether they actually could tell without prior knowledge of the label is the real question.

I agree some old CDs were almost unlistenable to, but once we had dithering and 24 bit audio then any preference is because some people, not just guitarists, actually like distortion.

> One important reason to use MinBLEP is to produce hard sync in a digital synthesizer. See that paper that I mentioned earlier today.

I know I've been left-field for decades (my last analogue synth was got rid of in 1983), but this is where I'm getting confused.  I can understand why hard sync saves costs in an analogue synth but digital oscillators are virtually free.  Any step change in a digital system is going to cause aliases so the obvious thing is avoid them rather than introduce them and then try to correct the error.  If you want the 'richer' sound hard sync produces, just add in one or more digital oscillators producing different band-limited waveforms at a different frequency.   In the end any sound can be reproduced by a sum of sinewaves, but I accept this is difficult to program.  But surely adding together several band-limited signals will produce a better sound as there is no aliasing ?  And if you actually find some of the aliasing is part of the sound you are after, use yet another digital oscillator so that it's controllable.  I think having to alter one's playing style to suit BLEP, as someone else suggested may be necessary, is surely the worst of all worlds ?

Alternatively if you are really trying to emulate an analogue synth exactly, you're far better off going to extremely high frequency systems like George Hearn's UDO Audio Super 6 which runs FPGAs at 50MHz rather than constrain yourself to normal audio sampling rates.


More information about the Synth-diy mailing list