Modular synthesis intro, part 11: Digital oscillators
This is Part 11 of a series that started with Part 1.
Trying to divide modules into "analog" and "digital" may be a losing game, and it's certainly a recipe for flame wars on Web forums, because strictly speaking, "analog" and "digital" are properties of signals, not of circuits. It's absolutely possible, and frequently the case, that a module will process both analog and digital signals at once. Furthermore, these words have acquired marketing value, so that people may have an agenda of wanting to describe something as analog or as digital and bending the definitions to make them fit.
Nonetheless, even if only to have an excuse for splitting a too-long posting into two, I've divided my overview of modular synth oscillators into "analog" and "digital" parts. Last time I talked about analog oscillators; this time, I'll talk about digital ones, loosely defined as those that use a CPU or a DAC, usually both, to generate the core signal. There are several common techniques worth knowing about.
I first learned about this technique in the radio context, where it's called direct digital synthesis, but among synth users it's nearly always called a wave table, spelled with or without a space - I usually write "wavetable" for the synthesis method, and "wave table" for the table itself that is used in the synthesis method. The core concept is that you have a table of numbers that records the shape of one cycle of some waveform, usually at a resolution of a few hundred or a few thousand samples to cover the cycle. There's a register (often called the phase accumulator) that represents a location in the wave table. There is also a clock that updates at a fixed, stable rate, and on each tick of the clock, the register advances by an amount representing the frequency you want at the output. When it hits the end of the table, it wraps around.
This arrangement can be thought of as a sample player that plays a looped sample of just one cycle of the waveform. By changing the playback rate, the waveform comes out at different frequencies, but always (to within the limits imposed by the master clock speed and the sampling process) with the same harmonic content. It's possible to build the logic of incrementing a phase accumulator and looking it up in a wave table either as software (on a CPU that might also be running other functions) or more directly with dedicated hardware. More complexity than shown in the diagram can be added too, for example to automatically switch between band-limited waveforms as the frequency changes, in order to avoid aliasing and produce more accurate results after the signal goes through the DAC.
The master clock for a wavetable oscillator normally comes from a quartz crystal running at a fixed frequency much higher than the audio range. It is very stable, and not very temperature-sensitive, so the output frequency is usually more stable than we could expect from an analog oscillator that fills a capacitor from a transistor-based (and temperature-sensitive) current source.
The frequency input needs to come in the form of a digital number, which means a requirement for at least an analog-to-digital converter, and probably significantly more logic to process the value once converted, if you want this to be voltage controlled. However, using a digital number for the frequency makes possible some important effects. In particular, if you build more than one of these oscillators sharing a master clock (for instance, because they are implemented in software on the same computer), you can take the output of one and apply it as modulation to another just by adding the number into the frequency value. Keeping the modulation path digital instead of taking the modulation signal into analog and back allows for ultra-precise spectral effects that would be difficult to do with analog oscillators.
Another important thing wavetable oscillators can do is switch between tables. Just by pointing the register at a different chunk of memory, you can instantly switch to a different waveform. Modular-synth wavetable oscillators typically have one or more additional control voltage inputs to select the waveform, with the voltage-to-waveform mapping organized such that you can get nice morphing-timbre effects by slowly varying that input. It's much more versatile than what analog oscillators can do with filter cutoff and waveshaper modulation.
The classic sound of early digital synthesizers in the 1970s and 1980s - most notably, the Yamaha DX7 - is associated with a specific form of digital frequency modulation studied and patented by John Chowning of Stanford University. The core concept is that deep frequency modulation of a sine wave by another sine wave, when they have a harmonic relationship to each other, produces an interesting and complicated spectrum. Ideally, you want the modulation to be deep enough that the carrier oscillator can run backwards - the fabled through-zero FM I discussed in Part 9. Through-zero is hard to accomplish with analog oscillators, though people have done it; but it comes more or less for free if you use wavetable oscillators, because it just means adding a negative increment to the phase accumulator.
Using wavetable oscillators also means that you can lock them to harmonically-related frequencies more or less for free without going through contortions to make analog oscillators track each other accurately; and if you want to set up a patch of several oscillators modulating each other, only the one that provides the final output actually needs a DAC. All the modulation oscillators can just write their results into computer memory, to be picked up in a tight loop and used to modify the frequencies of other oscillators. And since the core waveform for the oscillators is always a sine, there is only one wave table to store, conserving memory (which was in short supply in the early days).
This is the point at which the well-actually kids usually jump in to explain that classic FM-synthesis synthesizers, and most modern recreations, use phase modulation or PM, not frequency modulation or FM (true), and that phase modulation is different in an important way from frequency modulation in this context (not true). The issue comes down to when you add the modulation value. If you add the modulation value to the unmodulated carrier frequency, and then add both of those to the phase accumulator on every cycle, you are doing frequency modulation; the speed at which the phase accumulator advances changes according to the modulation value. If you add only the carrier frequency to the phase accumulator on every cycle, but then take the value from the phase accumulator and without changing the stored value in the register, you add the modulation value before looking up the result in the wave table, that is phase modulation. The overall speed at which the phase accumulator advances is affected only by the carrier frequency, but the phase of the output is advanced or retarded according to the current modulation value, which means that at any given moment the instantaneous frequency may be higher or lower in order to shift to the desired phase.
It's understandable that those two methods might appear to be different. For example, if the modulation value stayed permanently at some fixed nonzero value, the output frequency for FM would differ from the carrier frequency, whereas any fixed unchanging value of the modulator in a PM implementation would produce output at exactly the carrier frequency. As the well-actually kids will not fail to point out, a "DC bias" in the modulator will push a true FM implementation off pitch, but not a PM implementation. Except... in this context, the modulator is a digital signal from another similar oscillator and it never contains a DC bias!
What's really going on here is that the phase accumulator integrates its input, which then gets looked up in the wave table, and the oscillator as a whole computes something like the following, depending on whether you add the modulation inside or outside of the integration:
Here FM(t) is the FM oscillator output as a function of time t, PM(t) is the same for the PM oscillator, f is the centre frequency, and m is the modulation frequency. You can probably guess what I think about constant-of-integration kids.
As can be seen in the equations, the outputs for the two modulation methods do differ, but only by the phase and amplitude of the modulator. By changing the phase and amplitude of the modulator on either of these oscillators, you can get the effect of the other one. For classic sine-wave-by-sine-wave FM or PM, there is no real difference in the range of spectra obtainable. Things get a little more complicated with more than two oscillators feeding into each other, non-sinusoidal waveforms, and so on, but not to the point of justifying the fundamental difference often claimed between the two ways of applying modulation.
There are not so many Eurorack modules designed specifically for classic Chowning-style sine-by-sine FM, but it is often available as a mode on more general-purpose digital oscillators, such as the Plaits or Shapeshifter. It's also worth mentioning the FM Ogre, which is a do-it-yourself project specifically aimed at this synthesis technique.
Digitally Controlled Oscillators (DCOs)
What if you want to build a basically analog oscillator core, but still have the precision and stability associated with digital oscillators? You might do it by building a conventional, analog, sawtooth-core oscillator but not letting it decide for itself when to reset. Instead, have a microprocessor running a phase-accumulator or similar algorithm generate pulses at the desired frequency which are used to reset the analog core. In essence, it's an analog oscillator hard-synced to a digital one. The result has many of the advantages of both styles of oscillator: the smooth slopes of the analog slave, no need for a DAC or alias filter as such (although some care may be needed in the firmware to avoid certain temporal aliasing issues), no need for really careful tracking and trimming on the analog side, and it has the accuracy and stability of the digital master. This is another synthesis technique most easily available in do-it-yourself modules, like Russell McClellan's open-sourced design. MF Berlin used to sell a triple DCO module but it seems to be discontinued; it's no longer listed on their own Web site and that link goes to ModularGrid.
"Physical modelling" is something of a catch-all term for synthesis techniques that attempt in some way to model the physics of acoustic instruments. To some extent even the most basic analog subtractive patch does this: a bow dragged across a violin string produces a pressure wave that actually looks a whole lot like a sawtooth, and then the instrument body filters it, and that is pretty much the same thing you get by patching an analog sawtooth oscillator into a low-pass filter. But the techniques that end up being called "physical modelling" are usually more complicated and more suited for digital implementation.
One important category involves waveguides, which are essentially delay lines. Anywhere you have waves propagating along a medium, especially if it is more or less line-shaped, you can try to build something out of digital delay lines and try to get it to sound similar. For example, the Karplus-Strong string synthesis technique, for simulating plucked strings like guitars, falls into this category: a noise burst propagates along a delay line with feedback, and the result is a lot like what happens when a string is plucked and the waves bounce from end to end.
Another, partly related but also partly distinct, physical modelling technique focuses on the vibrational modes of objects, which (if the object has more than zero dimensions) may correspond to a spectrum with more complicated structure than the harmonics of a straightforward analog oscillator. FM synthesis (described above) amounts to creating a complicated spectrum in a way that is not particularly related to acoustics and just hoping that it will sound good, and the result often does sound a lot like real bells or drums or whatever; but one can also figure out the exact real-life spectrum of a bell or a drum and try to generate that spectrum, usually with resonant filters at different frequencies.
Mutable Instruments is a leader in Eurorack physical modelling synthesis, with the Elements (US$539) and Rings (US$335). The 4ms Spectral Multiband Resonator (US$475) does some of the same kinds of things. Dave Smith Instruments makes a DSM03 Feedback Module (US$275) aimed at Karplus-Strong synthesis. The ADDAC System Marble Physics (US$465) is interesting as a physical modelling modulation (not sound) generator.
Continue to Part 12 of this series.