One of my favorite things about electronic dance music is how tirelessly and mindlessly popular synth sounds are exploited. It’s awesome! One of the big sounds of the turn of the millennium was the so-called supersaw, an extremely bright, cold, digital, huge lead sound. You rarely hear it now in non-ironic music, but anyone who was listening to anything dancey and stupid around 2003 will surely recognize it.
Here’s a fairly typical example:
The canonical synth for producing this kind of sound is the Roland JP-8000 (or the rack-mount JP-8080), released in the mid 90s. As the sound became trendy in dance music, the ability to produce these obnoxious, blindingly bright monstrosities quickly became a bullet-point feature for competing synths – Novation’s Supernova 2, and the later Virus TI had similar features.
So, what is the supersaw? According to roland’s marketing material, it “sounds like seven saw waves sounding simultaneously”.
Okay, fine. But what is it really? It’s important to remember this was the mid-90s, processing power was tight, and running 7 saws for each note sounds pretty expensive. There must have been some trickery at play.
I always think it’s awesome when products of economical engineering remain relevant long after their shortcuts are no longer needed. This seems to happen a lot with music equipment, and Roland had a pretty good run of devices in this category – the TB-303, D-50 and the Juno series all remained popular long after the constraints they were designed for no longer applied. Once you get into the digital era, these stories of engineering ingenuity get harder to tell. With discrete circuitry, you can just look at the circuit to see what choices the designers made, and how those choices create the sound you hear. With software, all you really have to go on is the output of the device – which can sometimes be a bit inscrutable.
I had sort of resigned myself to never knowing how wonders like the supersaw were produced, until I stumbled upon this awesome thread on KVR. It turns out there are some tell-tale signs that give pretty strong indications of how the supersaws were produced – and the engineering is just as goofy, simplistic, and beautiful as I had hoped, and I’ll spend the rest of this post reviewing the results from that discussion, and re-creating a JP-style oscillator in pure data.
The fundamental problem of digital oscillator design, at least for simulating analog waveforms, is aliasing. Directly synthesizing a saw wave produces harsh noise all over the spectrum. There are lots of ways of getting around this – wavetables and oversampling are probably the most popular commercially, but academia has given us other options too. A lot of hobby programmers use something called BLEP. Korg recently patented a variant of BLEP, too.
Of course, another path is to do nothing to the aliasing and embrace its roughness for what it is. There’s good reason to believe that’s exactly what Roland did in the supersaw.
First, for reference, here’s a nice, modern, anti-aliased (bandlimited) saw wave at 130hz, generated by the free TAL Noisemaker.
As you can see in the spectrogram above, there’s defined peaks at each harmonic and not much noise in between.
You can hear it’s a bit more nasally and unpleasant. It doesn’t sound too different because the frequency of the note is relatively low – the aliased harmonics aren’t very loud. In the spectrum above, you’ll see more differences: the harmonics are still there, there’s lots of aliasing noise between them.
If you turn down the “mix” slider for the supersaw, it becomes a simple saw wave – but with some interesting properties. Here’s the JP-8000’s attempt at a non-super saw at 130 hz.
As you can see and hear, it’s closer to the aliased saw wave from than the saw from band-limited synthesis. There is a notable difference, though, pointed out by the folks at KVR – the noise *below* the first harmonic is significantly less. To make this more clear, here’s the PD aliased saw at 520 Hz:
And the JP at a similar frequency:
Now the low-frequency noise is quite different between the two. It seems that the JP generates an aliased saw and then runs it through a high-pass filter set to only pass frequencies at or above the fundamental of the note. This leaves in all the aliasing noise above the fundamental, so it’s still pretty nasty/noisey sounding, but there’s no energy below the frequency of the note to distract you from the pitch.
Let’s try to approximate that with PD:
Clearly not exactly the same as the filtering scheme is different (the JP seems more like a biquad hi-shelf), but it’s still not a bad likeness.
Now let’s try to reverse-engineer the spread of the saws – originally in the KVR thread people were suggesting complicated schemes based on a chorus effect, but it seems clear from the spectrum of a fully detuned supersaw wave that no, the JP really is generating 7 saw waves:
This makes sense when you think about it – efficiency was king, and it’s hard to beat the efficiency of two extra adds per sample – things are a lot easier when you embrace aliasing rather than reject it, huh?
Int the spectrogram above, we can see that there are indeed 7 peaks at each harmonic – indicating that there are 7 saw waves. Each peak is pretty well defined, indicating that there’s not a lot of low-frequency vibrato going on.
The third harmonic seems like the easiest to pick out the peaks, we’ve got:
(rounded to whole numbers):
350, 368, 384, 392, 400, 417, 435.
So, the detuning ratios are then
(.893, .939, .980, 1.0, 1.020, 1.064, 1.110), or slightly assymetrical.
Again, let’s try this in PD.
Not entirely dissimilar, huh? To be fair, a lot of detuned waveforms have a spectrum that kinda looks like that. But if I use my ears I can definitely hear some similarities.
Now that we have no-detune and max detune in the bag, lets look at what happens at other detune settings. At 0% detune on the slider, there’s still a little bit of audible detune, but not quite enough to see it on the spectrum. We can’t see anything on the spectrum until about 3/4 of the way on the slider, which has a spread of around 15hz at the harmonic at 520 hz:
That means the total spread is around 0.987 – 1.013 rather than the full value of 0.893 – 1.110. This dramatic increase in detune at the end of the sweep of the slider implies there’s some sort of exponential scaling occuring.
To simulate this in PD, I’m just making a guess about the endpoints of the detuning and the fact that it uses log2 scaling.
Sounds pretty good! This PD patch definitely captures the major character points of the JP supersaw oscillator. Here’s some sweeps of the detune knob: