[sdiy] Novation peak NCOs

rburnett at richieburnett.co.uk rburnett at richieburnett.co.uk
Fri Apr 21 13:10:15 CEST 2017


Yeah, it's an interesting way to tackle the aliasing issue.  As Tom and 
others pointed out, raising the sample rate up to 24MHz doesn't 
completely eliminate aliasing for naïve generated sawtooths and pulses, 
but the high sample rate means that by the time the harmonics alias back 
into the audio spectrum they're at least 60dB down, and probably more 
like 75dB down for the highest pitches that people typically play in a 
music intended for human consumption (4kHz/24Mhz).

The NCO/DDS technique isn't new.  It was used in the SID, Paul Maddox's 
excellent Monowave and 002 synths, and I believe it was used in the 
"DCO" chip in Roland's alpha-juno series of hybrid synths back in 1985.  
I've had discussions with Tom W about this off-list and did some tests 
on my alpha juno and we came to the conclusion that the "DCO" chip in 
these synths generated the waveforms digitally using an NCO outputting 
at a sample rate of 6MHz.  So I guess that the increase of sample rate 
from 6MHz to 24Mhz in 32 years isn't unfeasible!

With the alpha juno you can clearly see the aliased harmonics of very 
high pitched notes on a spectrum analyser at about -58dB relative to the 
fundamental.  However, I believe there's also a trick where you can 
apply a *very tiny* amount of random Frequency Modulation to the NCO 
that causes imperceptible pitch modulation in the audio part of the 
spectrum. However, it is enough to spread the energy in those upper 
harmonics around 24MHz (that alias into the audio band) so that they 
blend into each other and produce a lower and more even white noise 
floor rather than a series of objectionable inharmonic spikes across the 
audio spectrum.  I would imagine that Novation are doing this too, since 
-60dB alias suppression is nothing spectacular compared to what can be 
achieved at a sample rate of 96kHz using BLIT/BLEP/whatever on a general 
purpose DSP.

Rutger wrote "I'm particularly interested in how high-frequency 
interactions between NCOs are going to sound on this machine. I suspect 
FM and RingMod will be pretty smooth, as these interactions make 
aliasing effects more pronounced."  I think you are right and this is 
where the technique actually shines.  RingMod isn't a problem, but FM 
produces an infinite spectrum of harmonics, so whatever sample rate you 
use it will alias to some extent, but the higher the better obviously.

The part that I thought was particularly clever was the dithering of the 
oscillator waveforms at 24MHz sample-rate down to a single-bit 
"bitstream" / "DSD" output within the FPGA, to mitigate the need for a 
high-speed multi-bit DAC that can settle fast enough to handle the 24MHz 
sample-rate.  Again, the dithering and noise-shaping stuff isn't 
anything new, but it all seems to fit well together as a package for 
their application.

As for the reverb being done in the FPGA, that's almost surely the best 
way.  General purpose DSP chips aren't optimised for reverb (except 
maybe the FV-1 and Wavefront chips) but you can build the DSP core that 
you wish you had with an FPGA and make it optimised for hundreds of 
allpass filters or whatever you want for your reverb.

Definitely an interesting time for synth design :-)

-Richie,




More information about the Synth-diy mailing list