Hey there, I am just wondering if someone can explain the difference to me (if there even is one) between the output of a hardware digital oscillator, and a software digital oscillator. Is there less aliasing in a DCO?
That depends on what you mean by DCO, but normaly what most people call a DCO and “software digital oscillator” is the same thing and the fidelity much depends on the audio path after the oscillator it self (mixer, amplifier, filters, DACs, etc.).
I guess what I am trying to wrap my head around is how the signal is actually created. I do not know the inner working of a DCO enough to imagine the signal path in my head. Where in software I can see that someone programmed an app that tells the computer to generate a particular waveform. Where I believe a DCO is more in the realm of an electrical signal path, I could be wrong though, and is why I am trying to understand more. “A DCO can be considered as a VCO that is synchronised to an external frequency reference. The reference in this case is the reset pulses.” This is the DCO style I am using for reference.
So, if the programming in a DCO IC is the same code as in a VST and both output through without any filtering, the waveform would be identical?
I imagine a software oscillator to be more in the lines of an NCO http://en.wikipedia.org/wiki/Numerically_controlled_oscillator
Read carefully: the DCO is controlled digitally, not generated. This means that its an analog Oscillator that is tied to a Digital created control signal - whatever that means. Even a Full Analog Discrete Oscillator that is controlled by a Voltags thats generated by an A/D is then a DCO.
Common DCOs like in the Roland JX/aJuno Series are indeed tied to a reset Pulse to control the pitch.
So an DCO is basically an analog Oscillator.
I don’t know how to reply to this question. A lot of terms are getting mixed up.
Let’s start by the basics…
A saw core VCO is a circuit creating a saw-tooth signal by charging a capacitor. As the capacitor charges, the voltage at one end of the capacitor raises. A comparator monitors this voltages, and when it exceeds a given value, it causes a transistor or switch to close, rapidly discharging the capacitor and bringing back the voltage to 0. You control the frequency by controlling how much current you send to charge the capacitor (small current = slowly increasing ramp = low frequency). Other waveforms are obtained by messing up with the sawtooth - for example sending it to a comparator to get a square ; rectifying / mirroring parts of it to get a triangle. What make VCOs fidly is the generation of the charging current… To cover the whole audio range, a VCO must generate a charge current 1000 times smaller for low frequency notes (say 10 Hz) than for high frequency notes (10kHz). This will mean, for the lower notes, tiny, tiny currents which can be affected by all kind of adverse effects (offsets, parasitic noise etc.). This also means that we need to either a/ restrict the range of the VCO to a smaller range of frequencies (Taurus, Minitaur) to make problems go away; b/ use very high quality linear current sources; c/ use exponential current sources - a circuit hard to build in a way that is not temperature sensitive.
A variation on this is the tri-core VCO in which the polarity of the charging current is toggled every time the charge at the capacitor exceeds a threshold in absolute value. There are technical advantages for doing this, in terms of precision - and techniques like FM are easier to get right. Drawback is that the circuitry is a bit more complicated, and that it’s not always easy to get a perfect sawtooth out of a triangle (and there are applications for which the sawtooth quality is the key argument…)
A DCO (as used on the Junos, all the DSI products, probably the Elektron A4)… is exactly the same thing as a saw core VCO except that the signal that causes the sawtooth to reset to 0 is not produced by monitoring the sawtooth level, but by a digital timer circuit (either a separate chip like the 8253, or more likely part of the hardware found in a microcontroller) sending pulses at the target frequency. This adds stability and precise control of the frequency - since we are no longer relying on the precision of the circuit generating the charge current - but makes CV control harder (because there’s now a microcontroller or other digital stuff in the loop). Other waveforms are derived just as on a saw core VCO. Note that some annoying people are using the term “DCO” to describe a full-analog VCO in which the control voltage is generated by digital circuitry - this is plain silly…
Under the broad category of “digital oscillators” we find many different techniques, to the point that the term “digital oscillator” is quite meaningless. They can be broadly categorized depending on:
1/ The clocking scheme they use:
- A very high clock rate (for example, the oscillators in a SID chip, the DOC chip of the ESQ-1) - this more or less eliminates aliasing problems.
- A variable clock rate (PPG wave, Prophet VS, Synclavier). These techniques do not cause the “harmful” kind of aliasing (mirror images of frequencies folding back into the audible range, possible as lower frequency partials than the fundamental), but they can cause plenty of high-frequency imaged harmonics - which sound metallic and gritty.
- A fixed clock rate (ROMplers, Shruthi, software///). These techniques require particular care in the waveform generation code to avoid aliasing - otherwise, things can sound nasty.
2/ How the waveform is generated:
- Plain lookup table, with or without interpolation (wavetable synths, ROMpler)
- Actual code computing the waveform (Shruthi, software) - potentially using very complex computational tricks to eliminate aliasing (band-limited synthesis).
3/ How the samples are converted back into the analog domain:
- Resistor string DACs
- Sigma-delta DACs
Each of those might have its own flavor of imperfections…
So to answer your question, a DCO causes no aliasing, since it does not even use sampling - it’s on par with a pure analog VCO here. As for digital oscillators, there are so many flavors that it’s better to figure out the implementation first… High-quality band-limited waveform generation code running on a desktop computer and sent to a high-quality sigma-delta will show no trace of aliasing; but a fixed clock rate talking Barbie with no anti-aliasing filters in the recording and playback chain… not so!
Wow! so much info to soak in. Thanks for taking your time to answer so thoroughly. I have now got a load of subjects to start looking deeper into
This is an interesting topic and I’m glad to see that I’m not alone in considering a DCO something different from a digital oscillator which is something I find most people don’t, or perhaps I’ve just found the wrong people to talk to about the subject.
As per your first question a hardware digital oscillator, which I made the mistake of calling a DCO, and a software digital oscillator should sound exactly the same if they use the same rate, depth, and maths to generate the waveform. In fact it is my belief that most modern VA synths, like the MiniNova or Sledge, could as easily be VST instruments and would sound the same excluding the colouring from the DAC stage.
So, people shell out $$ for VA hardware just to have the tactile sensation?
I guess if you where running a live gig with a base CPU they would also allow less CPU taxation by generating waves live independently.
> just to have the tactile sensation?
This is not the only factor. A general purpose computer might have higher latency (operating systems like OS X or Windows are certainly not designed for real time audio processing), might be more complicated to maintain/upgrade, and might be less reliable due to the amount of non-predictable things it’ll be doing in the background (aka “The dreaded system upgrade alert box popping in the middle of the screen during a performance”).
On a hardware product (be it a VA, a sequencer, an analog synth…), the developer has complete control over the hardware, operating system, and software - which should result in higher reliability and better performance, even with a fraction of the computing power of what is available on a high-end desktop computer. No “loose coupling” or “lowest common denominator” problems… and much less abstraction layers between the hardware and the software.
A Musical Instrument is mainly about 2 things; the User Interface and the Sound. For some people clicking with a mouse on a screen is just as appropriate as having sex with an inflatable doll.
From a technical point of view i can do a Sequencer with tighter timing (more accurate, less jitter) than a 3.1GHZ Quad Core CPU running a decent Desktop OS with just a 6€ Chip running at 16 MHz.
@fcd: i was talking about the 2nd thing