[sdiy] Digital accumulator VCO core?

Brian Willoughby brianw at audiobanshee.com
Tue Feb 9 06:03:27 CET 2021

I don't follow the need for a current stage.

I have designed with DAC chips that output current, but I've never seen an ADC that directly measures current. It's worth noticing that CV is a voltage, and feeding a current into a shunt resistor will convert that current back into a voltage. You might as well just feed the CV directly to the ADC of your choice. In other words, skip the current stage altogether.

You could even skip the ADC and just feed a digital value in via MIDI or some other digital communications channel, although I'm only suggesting that as an option in addition to a CV input.

If you still want the bad tempco effect, then you can use another ADC channel to read that separately, and offset or scale the CV value proportional to the "temperature."

You probably want to select a DSP instead of the general purpose CPU so the code can keep up with accumulating and generating internal samples at 12 MHz. Your accumulator would then be much larger than the 16-bit input, and thus the code wouldn't run out of resolution even at 12 MHz.

What you describe is reminding me of the Roland GR-300 voice, although that is discrete logic rather than code accumulating the values. In fact, your idea could be implemented in discrete hardware, especially if the ADC has parallel data outputs.

I didn't know what you meant by solid state switches until I realized that  you're talking about the reset at the end of a ramp core period. It's true that a DSP could accumulate like an op-amp and capacitor without the limitation of finite discharge time. One drawback, though, is that an instantaneous change in the accumulator value would create aliasing of infinite harmonics that would be folded back into the ramp wave - but using a wavetable would already have plenty of digital artifacts so perhaps this isn't a concern.

Brian Willoughby

On Feb 8, 2021, at 19:43, cheater cheater wrote:
> Hi all,
> I was wondering if anyone ever experimented with replacing the
> accumulator core with a digital setup. Essentially you would have
> control voltage turned into current being shunted to ground, and you'd
> sample this current with the ADC, accumulating it in software. A
> 16-bit, 12 MS/s ADC like the Cirrus Logic WM8196SCDS/V costs only ~$2
> - $3 depending on how many you need, and my guess is that this would
> be more than enough bit depth and sampling rate to preclude numerical
> error. I think this would be able to do FM at audio rate. So does
> anyone do this sort of thing?
> The nice thing is you don't need to use solid state switches any more,
> your switchover is immediate, so no tracking error due to that. Also
> perfect for complex wave shapes, you could have a VCO like that easily
> output a waveform from a wavetable while still being fully capable of
> FM.
> You might want to use a shunt resistor with bad tempco ... just to
> keep things feeling "analog" ...

More information about the Synth-diy mailing list