Direct digital synthesis (was: DCO)

Mikko Helin MHELIN at tne01.ntc.nokia.com
Fri Nov 6 11:16:56 CET 1998


BJ wrote:  "And regarding to the Waldorf Pulse some year ago i had
   some email correnspondance with the designer of the Pulse.
   We had some small talk about OSC's and he told me that
   the Pulse uses two 68HC11 one for doing the DCO thing
   and the other as "in house" doing midi etc."


   I've been thinking of similar setup for doing direct digital
   synthesis with a usual PIC16F84, PIC16C54 (there's a 20 Mhz
   model) or Atmel RISC mc's (which can be clocked at 16 Mhz and can
   run one instruction per cycle). Now, the delta-sigma DAC's use
   modulator that outputs 1-bit data at 3.072 MHz for 48 kHz
   sample rate. With 16 MHz microcontroller that would leave 13
   cycles for other tasks like reading input ports for output
   frequency or phase and for the calculations needed for the
   output of the one-bit wave data. So you don't actually need a DSP
   for this, just some clever code, which is the biggest problem.
   One-bit wavetables eat a lots of memory, for a 1000 Hz voice
   @3MHz you need 6000 bits, which converts to 750 bytes. Ok, it's
   possible to store the data into flash rom, but is it difficult
   to interpolate to other frequencies (if fixed clock is used),
   how is that done? Is it possible to use timing loops between
   data outputs (aliasing distortion?), or are there other means?
   You could maybe use a VCO as an OSC for the microcontroller, at
   least Atmel's controllers can be clocked from 1 Hz (?, maybe
   more than that) upto 16 Mhz. Anyway, I think the interpolating
   algorithm must not be that complex, as the aliasing frequencies
   are way higher than when using multibit DAC's at 44kHz or so.
   Problem is that you are accessing bit's, not bytes, and there
   are no multiplication instructions available (unless you get a
   better microcontroller). If you solve this problem, there are
   still others, like the freqency control. Eight bit's is not
   enough (except for MIDI). Maybe not so good idea after all.

   -Mikko




More information about the Synth-diy mailing list