More ramblings about VCDO...
jbv
jbv.silences at wanadoo.fr
Tue Jul 13 00:50:45 CEST 1999
Tim Ressel :
> The oscillator I am proposing is called an NCO, or Numerically-Controlled
> Oscillator. NCOs clock at a fixed rate much higher than the highest frequency
> needed. For audio, I figure about 2 MHz. The oscillator itself is just an adder
> and accumulator. The output of the accumulator is fed back to one input of the
> adder, and a frequency determining number is fed into the other adder input. As
> the NCO clocks, the freq-number is added to the accumulator each clock cycle.
> The accumulator rolls over to zero when it maxes out. If you look at the
> accumulator output, you will see a sawtooth wave being generated. To change the
> frequency, you simply change the input number, which is mathematically related
> to the frequency and the clock rate. The accumulator output can be fed to a
> (fast) D/A converter to generate a sawtooth for further processing (my plan), or
> it can feed a wave table then a DAC. Since the NCO adds no noise of its own, the
> frequency is as stable as the clock oscillator being used.
>
>
Well, what you're describing is nothing more than the design I proposed in mylast
messages on that topic. I guess the fact that your message doesn't feature
the word "uC" makes it more politically correct for this list than mine. ;-)
But the basic concept is the same.
This kind of osc (AFAIK) has been first implemented by M. Mathews in his Music V
program (way back in the early 70s - or late 60s ?).
A few years later, G. di Giugno implemented this kind of digital osc in his 4A and
4C machines at IRCAM, using only TTL chips and achieving amazing banks of osc.
Later (early 80's) this concept was extended (still at IRCAM and still with TTL
logic)
into the powerful 4X, and its exciting "variable architecture" concept - in many
ways
the ancestor of DSPs. Basically, the idea was to add a microprogram memory allowing
to make the basic elements of each board in the machine (adder, multiplier, etc.)
patchable in various configurations. This way, banks of digital oscs were only one
possible config among many (for instance : delays, filters, FFT, etc.).
A patch language had been also developped for the 4X, in some ways the ancestor
of MAX.
For a couple of weeks, I've been thinking of a design based on these ideas. In the
field of digital oscs, it could perform some more sophisticated operations than
what you're
describing (for instance : voltage controlled fundamental freq, VC number of
partials,
VC phase offset between partials, VC amplitude ratio between partial, VC freq ratio
between partials, etc...).
If anyone is interested, please let me know and I could find the time to post some
more details within the following days.
jbv
More information about the Synth-diy
mailing list