A couple of comments sparked my curiosity about the sounds and characteristics of the PPG Wave, and how it could be replicated on the Virus TI. And since the Virus TI also offers Wavetable oscillators it didn't seem that far out of reach. At first. Then I spend a couple of hours watching YT videos and reading the original PPG Wave 2.2 Manual, and the documentation for the VST recreations offered by Waldorf. From all that, I understood that the Wave 2.2 (8 Bit) and Wave 2.3 (12 Bit) are actually pretty simple and pretty restricted regarding their VCO, VCA and VCF structure.
Here's a compilation of the basic concepts:
- There are 8 main oscillators, used to create the 8 voice polyphony. These oscillators can be split into two groups. Each group has their own settings for its oscillators. In general, this means that either all voices are used to create one sound with 8 voice polyphony or some of them are used to create a different sound, e.g. 2 sounds with a 4 voice polyphony. The groups can either be used for a keyboard split or as a layer. A main oscillator can be set to use any of the 31 available wavetables, or an additional fix wavetable called "Upper Waves" which is always loaded in memory.
- Each of the main oscillators has a so-called "suboscillator". These, in contrast to common understanding, do not create a sub octave, but are more like a twin or derivate of the main oscillator which can be tweaked. The suboscillator always uses the same wavetable as the main oscillator, or the "Upper Waves".
- All wavetables offer the basic waveforms Triangle, Pulse, Square, Saw as the last four waves (60 - 63).
- There are 2 ADSR envelopes and one AD envelope available: Envelope 1 is used for the Filter cutoff and Wavetable position, Envelope 2 for the oscillator volume. Envelope 3 controls the pitch of the main and/or the suboscillator, or the Wavetable position of the suboscillator.
- Each voice has their own analog 24db Low pass filter available. These 8 filters are digitally calibrated to match each other, but in reality have some differences and may drift.
- The oscillators where digital with a 8 Bit (v2.2) or 12 Bit (v2.3) resolution. The audio signal was then sent to analog amplification and filter stages, which smoothed some of the digital graininess, but not all.
- A very characteristic feature is the stereo panning of polyphonic voices. Each voice sounds at a different location in the stereo panorama, thus creating a wide spread when used with chords.
- There is one LFO available per voice, which can generate Triangle, falling Saw, rising Saw and Square waves. It is also calculated digitally and therefore rather grainy to be less heavy on the CPU. The LFO can be used to modulate the pitch of oscillator and/or suboscialltor, the wavetable index of oscillator and/or suboscillator, the filter cutoff and the volume. The mod wheel always controls the depth of the LFO, the current setting of the mod wheel is saved with a patch.
- Collecting all the available sources and destinations reveals a quite elaborate modulation matrix:
Control | Filter | Wavetable | Volume | Pitch |
Key | X | X | X | |
Velocity | X | X | ||
Mod Wheel | X | X | X | |
Pitch Bend | X | X | both or only SUB | |
Aftertouch | X | X | X | |
Env ADSR 1 | X | OSC and/or SUB | ||
Env ADSR 2 | X | |||
Env AD | SUB | OSC and/or SUB | ||
LFO | X | OSC and/or SUB | X | OSC and/or SUB |
Collecting all these informations, it may not seem too difficult to set up the Virus TI in a similar way:
- Set OSC 1 to Wavetable
- Set OSC 2 to:
- Wavetable using the same wavetable as OSC 1 to use it as "suboscillator". Set the balance either to -64 ("suboscillator" off) or 0 ("suboscillator" on)
- Wavetable using a different wavetable than OSC 1 to use it as main oscillator for Group B, use Unison set to "Twin", to create "suboscillator" doubling for both. Make sure that the Unison LFO Phase is set to 0.
- Classic and use Triangle, Saw or Square to replicate using these basic wave forms which are available in every PPG wavetable. Set the balance either to -64 ("suboscillator" off) or 0 ("suboscillator" on).
- Set the balance either to -64 ("suboscillator" off) or 0 ("suboscillator" on)
- Use only LFO 1 or LFO 2 set to Triangle or Square and use the Mod Matrix to modulate additional destinations.
- Use a Mod Matrix slot with Random source to modulate the Panorama to approximate the original stereo spread of the 8 voices.
- Use a Mod Matrix slot with Filter Envelope source to modulate the Shape/Index of OSC 1 & OSC 2 independently.
- Set Filter Saturation to "Bit Reducer" to achieve some of the grainy 8 Bit character. On the PPG, the digital oscillators go into an analog 4 pole filter, so some of the graininess is smoothed out. Unfortunately, we can not change Filter 2 to 4 pole. Therefore the closest we can do is either to run Filter 1 and 2 with cutoff and filter link in Serial 4 mode thus applying the Bit Reducer between the filters. Or use only Filter 1 in Seres 6 mode apply the Bit Reducer with a less severe setting.
- Since the PPG Wave included a sequencer capable to record modulation parameter changes, you can use a Mod Matrix slot with the Arp Input source and destinations like Shape/Index and Filter cutoff.
However, fact is that the two main ingredients for the PPG Wave sound are missing: The original wave tables (!!!), and the characteristic SSM 2044 24dB filter. Since some highly regarded sound designers claim that not even the Waldorf Blofeld, which offers all the original PPG wavetables and an emulation of the PPG filter, is able to properly replicate the PPG wave sound, this whole exercise is more about how to create "PPG style" sounds than to replicate any of its factory patches or well known sounds from world famous songs.
Anyway, just for fun, I tried to do that typical "PPG Choir" using the "Pingvox" wavetable and ended up with a couple of variations which sound acceptable to me.
Enjoy and share your thoughts and experiences.