An advanced application of oscillator sync.
Author: Rob Hordijk
As digital oscillators are so much more stable compared to their true analog counterparts, we have the opportunity to do types of synthesis that are practically impossible on analog systems. As an example we will build a patch that is capable of doing VOSIM-type synthesis. It is not exactly the original VOSIM as described by its inventor Dr. Werner Kaegi, but it is so close that for all practical purposes we will call it VOSIM although it will not fit entirely his mathematical model. But we want practical patches, so we don't bother.
The idea of VOSIM is to have a simple model with only a few control parameters, that will generate vowel-like sounds with strong controllable formants. Interesting fact is that we will not use any filters for this, we directly construct the necessary waveforms with only sinewaves and a sawtoothwave, using sync and multipliers. The VOSIM model uses a train of so called sin2 pulses. These look like bellshapes. In one period of the waveform there are a given number of these bellshapes with the same width, but decreasing amplitude. Here is where we deviate from the original model, we will not be able control the exact number of sin2 pulses, but we will "fade them out".
To start we will use a Master module and two OSC Slave A oscillators. The syncing oscillator is set to a sawtooth and the synced oscillator is set to a sinewave. To get the sin2 pulses we only have to multiply the sine by itself. We can use a ringmodulator to do that, we will however not use the Ringmodulator module but the Multiplier module from the mixer section. Connect the output from the synced oscillator to both inputs of the multiplier and the output is a sin2 waveform.
What we want to do next is to use the sawtooth waveform as an envelope over the sin2 pulses, effectively fading them out over one period of the waveform. That is easy to do as the synced oscillator has an AM input. This AM input actually acts as a multiplier, it is in fact a build-in ringmodulator! Only we can not directly use the sawtooth signal to sync the sineoscillator and modulate the AM input. The sawtooth ramps up, and what we actually need is a sawtooth that ramps down. During the up transient of this last wave the waveform crosses zero in the positive direction and that is the point where we want to sync. So we have to invert the sawtooth wave. That is easily done by connecting a Constant module to the AM input of the syncing sawtooth generator and setting the constant to a negative value of -64. Now the output is a sawtooth that ramps down. Connect the output to the sync input of the synced oscillator. We still cannot use the inverted sawtooth wave yet to modulate the AM input of the synced slave oscillator, we first have to shift up the level with a levelshifter. So connect the sawtooth output to the input of a level shifter/inverter module and the output to the AM input of the synced oscillator, and there it is: VOSIM. We can use the trick with the two amplifiers and X-Fade module to control the amount of sin2 pulses.
Variations on VOSIM
Now the fun begins, because we can start to variate on the basic patch. First we are going to do something about the sin2 waveform. Between the output of the synced slave oscillator and one of the inputs of the GainController we put a Diode module. As you can hear the settings influence the sound considerably.
Instead of the sinewave you can try the other waves and use them if you like them more. Note however that for the squarewave and sawtooth, both having strong transients, the aforementioned jitter at the syncpoint might be heard.
Nature gave us bread but Clavia gave us the OSC Sine Bank, and it does all that we needed for VOSIM. So lets exchange the Synced Sine slave oscillator for the Sine Bank and connect it e.g. as follows:
Now we can conveniently have up to six controllable formants. And like a good cook you can add more oscillators, filters, phaseshifers, overdrives, etc. etc. Add them to your taste.
Another related synthesis method is to use a sine waveform instead of a sawtooth waveform to sync and modulate the synced oscillator. It is simpler, cheaper in DSP count and gives even more strong formants. The basic patch looks like this:
We see the same tuning mechanism we used before to detune the synced oscillator over a 1:16 range. The tone control X-fade module's X-fade input can again be used to sweep the formant. As you can hear the formant is very pronounced, more so than with the VOSIM method. The way it works is actually pretty simple. When syncing a sinewave the transient that occurs when the frequencyratio between the two oscillators is not a whole number, is in too strong a contrast with the sound at a ratio that is a whole number. In this last case there is no transient at all in the resulting waveform. So what we will try to do is suppress any transient that may occur. The way to do it is to use the syncing oscillators waveform as an envelope over the synced oscillators waveform by multiplying them together with a ringmodulator or gain controller. The OSC Slave A module has a gain controller build in (the AM input) so we just connect the output of the syncing oscillator not only to the sync input of the synced oscillator but to the AM input as well. This does suppress the transient a great deal but not entirely. So we add another step where we convert the resulting waveform into a Sin^2 wave by multiplying the wave with itself in an additional gain controller module. This totally removes any transient that might be in the raw synced sinewave. Inserting a Diode module just before one of the gain controller's inputs gives us the choice of three types of multiplication which results in three optional distinctly different sound characters.
When replacing the OSC Slave A module with a Sinebank module we can use the six red AM inputs of the Sinebank. Each AM input of the Sinebank can be first separately modulated by it's own envelope, LFO, etc.
More synced oscillators can be added, parallel to the first synced oscillator or in series with the first synced oscillator. But connect all syn inputs to the output of the syncing oscillator to avoid increasing aliasing problems with the syncing signals. Here's an example where we added the Syncing OSC's sinewave as well to enhance the fundamental:
When connecting the syncing oscillators output to the FM input of the synced oscillator we can alter the sound dramatically. For the sake of DSP-cheapness we can replace the OSC Slave A module by a OSC Slave FM module. This last module does have a sync input but regrettably lacks an AM input, so we have to use an extra gain controller module.
This type of synthesis can be used to e.g. make wind instrument patches. The next example is such a patch that can be played with a MIDI Windcontroller like a Yamaha WX5 or Akai EWI. In the patch the breath control is set to MIDI CC #7 or MIDI Volume. If you play a MIDI Windcontroller you maybe have to set it to MIDI CC #2 or MIDI Breathcontrol, depending on how you configured your MIDI windinstrument.
Setting the partials of the two synced oscillators to different ratios gives a wide range of sound characters reminiscent of different real world acoustic windinstruments. Tweaking the FM-index and Tone-softening filter in the FM feedbackloop controls the loudness/brightness ratio. Some glissando and delayed vibrato are added to the patch.