[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