I'm trying to understand the concepts of digitally controller oscillators and how they were used in older synthesizers like the Williams arcade games. Does anyone have any good pointers or references that can help me grasp exactly how a DCO works? From what I understand, the DCO just samples a wave at a variable frequency... but I don't understand how this leads to predictable variations in pitch. I mean, with a pure wave (sine, saw, etc) it makes sense to me, but with arbitrary samples I don't get it. And if it's a simple waveform you're after, why not just synthesize is mathematically instead of using a lookup table? Is it just that the older harware was too slow to calculate sin(x)?

Sometimes wavetables (lookup tables) are used. Interpolation is the keyword when generating "arbitrary" samples that lie in-between those that exist in the table. This can be an art in itself, going from linear interpolation, to splines curves, and others.

Sometimes, the waves *are* generated mathematically, which can range from simple incremental counters (like in triangle or saw waves), to algorythmic synthesis that uses chaos theory or recursive systems (such as fractals).

Then there's the technologies like phase shift/distortion found in the old casio keyboards, that indiretly emulates FM, but using changing clocks & counters to do this.

Hope that's enough keywords to help you get started in googling the vast amounts of info out there.

EDIT: It just occurred to me that this probably isn't the right forum for this since it's under composition - sorry . Feel free to move it to a how-to or something.

I came here because Google has provided a lot of technical data (like your post) but no intuitive understanding.

Maybe I should back up: What is a DCO's job? What good is it? How does it differ from an oscillator that you might find on a normal subtractive synth, and what exactly makes it "digitally controlled"? Evidently there's some number that controls an oscillator - but in what way?

Wikipedia describes it as a "an electronic system for synthesizing a range of frequencies from a fixed timebase."

Fixed timebase? As opposed to variable timebase? That doesn't make any sense to me, so I must be missing some more fundamental piece of information. What's a timebase? Does that just refer to the sampling rate (e.g. 48kHz)?

"A DCO generally consists of a digital waveform generator that increments a phase counter by a per-sample increment."

Phase counter? Doesn't that just refer to the playback position in the source wave? I.E. if I say when phase=0.0 I am at the first sample in my wave and when phase=1.0 I am at the last sample?

What's a "per-sample increment"? What else would an increment be described? How does a per-sample increment (where units are in samples) map to a phase increment (where unites are in radians)?

"This phase is then looked up in a waveform table to create a sine waveform."

Wait... why do you need to look into a waveform table to create a sine wave? And what exactly goes in the waveform table?

I'm so confused.

I need a description of *exactly* how a real DCO works. Alternately, I need to know where I can find one that will allow me to experiment with these parameters. Or maybe I just need to be redirected to some fundamental knowledge that I don't have.

All DCO's are not the same. Take a high frequency clock, say 1MHz and use digital logic chips to divide it by 2270 and you get 440Hz pulse output. The 1MHz clock is from a crystal oscillator (like in a digital clock) which gives this technique its stable (or boring) character. Roland Juno synths and Korg DW use this technique but in combination with analog wave shaping. This is basically what you get in your arcade sound chips. Also electric organs use this basic system.

The wave table stuff is not DCO, a wave table oscillator might use a DCO but could just as easily be clocked by a high frequency VCO.

THe PPG is probably the most notable Wavetable synth, its tables contained 1000's of calculated and recorded waveforms that could be dynamically scanned to create unique moving timbres.

It seems like the little DAC I'm working on will be very similar (albeit very simplified) to a wave table. It is basically a Digitally Controlled Oscillator in that the digital inputs control the relative signal level over a number of time slices (or samples) the samples (in my case are sequentially outputed and then the "wave" starts again. The actual levels will be slowly changing based on 8 digital clocks (or possibly some other control signal down the track which can either be automatically or manually controlled)
I'm building it as an experimental project using discrete CMOS chips, which is complicated and fiddly, but fun. Any more complexity would neccesitate moving to larger scale integration. (which I now think is exactly what synths like the PPG are based on)_________________What makes a space ours, is what we put there, and what we do there.

We should probably move this post to another subforum. Any suggestions as to where we should move it? The DIY forum?_________________A Charity Pantomime in aid of Paranoid Schizophrenics descended into chaos yesterday when someone shouted, "He's behind you!"

To be a DCO does the clock have to be digital? Wouldn't it still be a DCO if clocked by a high frequency VCO and had the shape of the waveform controlled digitally?_________________What makes a space ours, is what we put there, and what we do there.

DCO or digitally controlled oscillator could mean a lot of things. The term was first used AFAIK, as a substitute for VCO in the late 70’s and was driven I think by a desire to make polyphonic synthesisers that were stable and inexpensive. The digital divider + saw wave shaper swapped frequency instability for small unnoticeable variations in volume. I think the Korg DW series just stuck with square waves, summing different octaves to get staircase waves as sawtooth substitutes, very organ-ish.

Multiple matching expo converters for real VCO’s cost a lot to manufacture. The Korg Polysix solved the problem by putting one expo converter before the final demux, brilliant, except it made poly glide impractical.

The term was first used AFAIK, as a substitute for VCO in the late 70’s and was driven I think by a desire to make polyphonic synthesisers that were stable and inexpensive.

Yes, I think this is right. Essentially, the pitch is controlled by a binary number on the input. Thought clever uses of buffers, one digital circuit running at a very high clock frequency and an much lower sample rate can produce several voices of polyphony with relatively little hardware. Nowadays, this is done on DSPs or general purpose processors._________________--Howard
my music and other stuff

As others have said, a DCO may be a counter or PWM generator with analogue waveshaping of the pulses. This is how the DCOs I've seen schematics for have been implemented. If a phase accumulator is used to address a waveform memory, then I think 'wavetable oscillator' is the most commonly accepted term.

For a software implementation of a DCO you may want to look into BLITs (Band Limited Impulse Trains), which will easily allow emulation of the waveshapers (e.g. leaky integrators) with all their variations and artefacts while keeping the signal band limited.

Check the music-dsp mailing list archives for references on BLIT oscillators (and DCOs). Also have a look at the musicdsp.org site for code examples and more.

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum

Please support our site. If you click through and buy from our affiliate partners, we earn a small commission.