[sdiy] Digital accumulator VCO core?

Richie Burnett rburnett at richieburnett.co.uk
Fri Feb 12 21:58:30 CET 2021

It's like magic isn't it!

The step corrections that you apply to the naive ramp around each discontinuity are really all the aliased crap that shouldn't be there in the final band-limited version. They cancel out when you mix them in and you get a pristine quality "analogue sawtooth" to whatever specification you design for.

It's fun to listen to just the step corrections  during a sawtooth sweep. You hear a real cacophony of aliased partials swooping up and down all over the place! 


Sent from my Xperia SP on O2

---- Tom Wiltshire wrote ----

>> On 12 Feb 2021, at 19:02, Gordonjcp <gordonjcp at gjcp.net> wrote:
>> On Fri, Feb 12, 2021 at 11:12:34AM +0000, Mike Bryant wrote:
>>>> p.s. While you're experimenting with this digital accumulator (I can't wait to hear what results you get), I'm toying  around with ways to get continuous frequency control out of digital oscillators. I want to do this without using software BLEP and other > tricks that consume a lot of processing power. That's because I want to get frequency out of the discrete realm and into the continuous realm. I don't know that it will *sound* better, but that doesn't stop me from wanting to try...
>>> Surely 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.
>>> I'm also not sure why people use BLEP or other techniques - just use the accumulators to create a perfect sawtooth, square, triangle or indeed noise, and then put it through a simple digital filter before the DAC to get rid of anything that could alias.   If you run at 96kHz sampling this becomes pretty trivial in computational terms - a few shift rights or multiplies and some adds.
>> That doesn't actually work.
>> If you generate a step, you generate aliasing and it's already down in your desired audio spectrum.  You'd need to run at some small number of MHz sampling rate, filter, and then decimate to 96kHz.  If you generate a naive sawtooth at 96kHz it'll alias like crazy in the low hundreds of Hz.
>The amazing thing for me is that if you generate that naive ramp with all that aliasing that folds down into the audio spectrum that you’ll hear, and then apply BLEP adjustments on the edges, it all miraculously disappears (well, nearly all - adjust to taste). That’s just remarkable!
>Synth-diy mailing list
>Synth-diy at synth-diy.org
>Selling or trading? Use marketplace at synth-diy.org

More information about the Synth-diy mailing list