More ramblings about VCDO...

jbv jbv.silences at wanadoo.fr
Wed Jul 7 00:14:40 CEST 1999


I take the opportunity of the cuurent wavetable discussion to post an
idea I had some time
ago about an alternate way of designing a VCDO (I haven't got time to
brainstorm beyond
block diagram, though).

First we need a regular analog VCO, working in the audio range. The only
thing required
is a bipolar output (a +-5V square for instance).

Then we have a digital counter (24 or 32 bits) clocked at a very high
freq (50, 75 or 100 MHz).
Then we also have a fast comparator. And here is the trick : every time
the rising edge of the
square crosses zero, the comparator latches the current counter value,
and the counter is reset.
This allows to latch the number of clk pulses that occured between two
periods of the audio
signal.

And now purists will start to shout... Enters a (fast) uC (one of the
new Scenix for instance, or
a DSP, although I'm sure the firmware is a hundred times faster & easier
to write on a uC).
This uC can read sampled waveforms in a ROM and outputs data through a
DAC.
The uC firmware reads the latched value and, through some conversion
table, computes the
necessary increment for reading the next sampled value.
Actually, the firmware runs the classic "Matthews algorithm" (as
implemented in Music V) for
generating waveforms, based on the 2 following formulas :

    F (in Hz) = (sampling rate * increment) / function length

    Increment (in samples) = (function length * freq in Hz) / sampling
rate

If the firmware is carefully designed, the uC can read the latched value
at the required sampling
rate (44.1 or 48 KHz or...) and output the samples of the desired
waveform. A digital SP/DIF
output shouldn't be too difficult to add...
If the uC is fast enough, interpolation can be achieved as well.

Furthermore, as the latest generations of uC feature onchip comp and
ROM, very few extra
hardware will be needed... Even the counter can be handled by software,
if the uC can run
at such a high freq... And on 32 bits, high precision can be achieved.
And as we all know : less hardware = cheaper solution...

And last but not least, with only a few extra DACs, several different
waveforms can be output
simultaneously (if all functions have the same length, interpolation has
to be done only once).

Some advantages I see in this technique :

- no need for a perfect ramp in the whole freq range; any bipolar signal
will do (and cycle ratio
doesn't matter, since only the positive edge is used),

- interpolated function output,

- any freq variation of the VCO will be tracked in realtime,

- the system can be used as a kind of pitch tracking with more complex
signals as input...

Any comment ?

jbv




More information about the Synth-diy mailing list