[sdiy] Digital accumulator VCO core?

Brian Willoughby brianw at audiobanshee.com
Fri Feb 12 05:57:24 CET 2021


On Feb 9, 2021, at 15:05, Mike Bryant wrote:
> I think if you're going to do complex additive synthesis then staying all digital until a single final DAC is the more sensible approach.  My system has over 1200 sinewave voices on a single small PCB, and I can link up to a dozen such boards.  It probably could create most sounds short of the human voice but the problem is how to control it creatively in a reasonable timescale.


Hi Mike. What processor is on your boards?

I wrote some macOS CoreAudio software sine wave oscillator banks capable of 1422 voices, but not 1526. I didn't try to find out exactly where the code fell over, and this was without any attempt to optimize for maximum voices. There was a bit of naive optimization to allow mixing a bank of sine oscillators without running each one completely separately. This was running on an Intel MacBook Pro, and I forget what the processor speed was.

The first application was to resynthesizes the Deep Note of THX fame. That sounded very close (until I tried to make it "more accurate" and then it actually sounded less like the original). THX synthesized that on a hardware DSP with only 30 voices, but after I got it working I decided to find out what it would sound like to throw as many voices as possible into the same algorithm. I need to make a recording of this, because it sounds crazy.

The second application was an attempt to recreate the Technos Acxel. This one has up to 1024 oscillators, but the real gem is the analysis code that won't be easy to recreate. The Acxel has both amplitude and pitch envelopes for every sine oscillator. I managed to get some code working that uses FFT to pull the loudest 30 pitches out of a recorded sound, and then detect simple linear amplitude envelopes. I didn't get around to implementing pitch envelopes - especially not the analysis part. Some very convincing sounds can be recreated after successful analysis, but other sounds lose quite a bit. I imaging that Technos must have put a lot into the huge rack of processors that analyzed sounds. It's actually much easier to create an engine that can handle the synthesis with real-time envelopes - it's a much harder problem to extract the control variables from a natural sound. You might want to look into simple pitch envelopes and simple amplitude envelopes. As long as those are independent per each sine oscillator, you might be able to do more with your 1200 sine wave voice boards.

Brian Willoughby





More information about the Synth-diy mailing list