Roland Supersaw - any idea how the original was done?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Hi all:

The JP-8000 just crossed my awareness, and I was wondering if anyone had any thoughts about how Roland would have generated this waveform. I know that plenty of virtual synths have such a waveform nowadays, but I am looking for an efficient solution. I have my doubts that Roland would have generated the waveform via seven bandlimited oscillators, or seven separate table look up oscillators, or seven interpolating delay lines processing a BLIT summing into a single integrator, or anything like that. I could be totally wrong, but I have a gut feeling that it is a cheaper technique that is being used.

Is it possible that it was done via table lookup, where the wavetable had 2 dimensions - frequency, and some random sweep? I could see such a technique being used for simulating pulse wave modulation, with a cyclical sweep through one dimension of a wavetable with different stored pulse widths. For the supersaw, maybe random (or slewed random) access of the stored wavetables could be used to select different cancellations of the waveforms, with the speed of the randomness controlling the detuning.

Any thoughts appreciated. I'm not planning on doing a synth anytime soon, but I am always interested in efficient solutions to audio DSP requirements.

Thanks,

Sean Costello

Post

I think they just took a regular saw from a planet with a red sun and brought it here.
Zerocrossing Media

4th Law of Robotics: When turning evil, display a red indicator light. ~[ ●_● ]~

Post

i can only say what i used for my supersaw osc..
a normal sawtooth lookuptable (2D, for bandlimited)
and i have 7 different phases which are detuned in a special pattern
but that might be not what you wanted..
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post


Post

I found an article that was deleted from Wikipedia for being "dubious". Doesn't really make sense to me but maybe will light some lightbulbs for you.
Random guy on the Internet wrote:The actual process that goes into the supersaw effect is known as Phase Desync. Phase Desync is a synthesis technique to achieve a "chorus" sound. It can be done by using a carrier wave "saw oscillator for example," and modulating its signal using a comb filter where the filter cutoff frequency is usually modulated with an LFO, which the LFO's depth (or amplitude) is equal to the saw oscillator's current frequency. It can also be done by using a copied signal and have the copy run throught a delay which the delay's time is modulated again by an LFO where the LFO's depth is equal to the saw oscillator's current frequency.
How can the mod depth be equal to a frequency ?

I read somewhere how to do it analog. I'll try and see if i can find that article. It was pretty easy as i recall it but i doubt it is as easy to convert to digital.

EDIT: http://www.doepfer.de/a1372.htm
This was the article i was talking about. I still don't get how it works but maybe you can tell me.

Post

I think they mean that it's a 50/50%mix of a single voice chorus, where the mod depth is 100%, and it's cycle length in samples matches the sample-length of one period of the saw wave in question.

Potentially you could have a number of these choruz voice, each with a different phase offset in their modulation.

When I first read Seans post, that was actually the first method I thought of for a cheap supersaw, so I'm glad I wasn't alone in that (otherwise I must be hugely tea deficient.. well, better put the kettle on to make sure I'm OK..)

DSP
Image

Post

duncanparsons wrote:Potentially you could have a number of these choruz voice, each with a different phase offset in their modulation.
Wouldn't 2 be enough ? And then you can feed back the output from one into the other and get and arbitrary amount of waveforms ?

Oh wait,that wouldn't work. Or would it ?

Time for another cup of coffee. (Where's the sleepy smilie?)

Post

zerocrossing wrote:I think they just took a regular saw from a planet with a red sun and brought it here.
Or when dude asked "Do you want to supersize that saw order?", Roland said "YES!" :)
"You don’t expect much beyond a gaping, misspelled void when you stare into the cold dark place that is Internet comments."

---Salon on internet trolls attacking Cleveland kidnapping victim Amanda Berry

Post

jupiter8 wrote:I found an article that was deleted from Wikipedia for being "dubious". Doesn't really make sense to me but maybe will light some lightbulbs for you.
Random guy on the Internet wrote:The actual process that goes into the supersaw effect is known as Phase Desync. Phase Desync is a synthesis technique to achieve a "chorus" sound. It can be done by using a carrier wave "saw oscillator for example," and modulating its signal using a comb filter where the filter cutoff frequency is usually modulated with an LFO, which the LFO's depth (or amplitude) is equal to the saw oscillator's current frequency. It can also be done by using a copied signal and have the copy run throught a delay which the delay's time is modulated again by an LFO where the LFO's depth is equal to the saw oscillator's current frequency.
How can the mod depth be equal to a frequency ?
This makes it sound like some sort of FM, as opposed to just chorusing. Although it sounds like the modulation depth is being varied at an audio rate.
EDIT: http://www.doepfer.de/a1372.htm
This was the article i was talking about. I still don't get how it works but maybe you can tell me.
I originally saw this in an Electronotes article. Forgot about this. I will look up the article and describe in more detail. It seems like one of those things that would work with oversampling, but maybe not with other bandlimited waveform tricks, but I will post the details so we can discuss it.

Thanks,

Sean Costello

Post

I should note that a string ensemble type chorus, applied globally, would probably be an efficient way of generating a "supersaw" sound, instead of any per-note technique. Still, I'm curious about the Roland method. If you used nonlinear filters processing the sawtooth waves, there will be sonic differences between the two methods.

Sean Costello

Post

EDIT: http://www.doepfer.de/a1372.htm
This was the article i was talking about. I still don't get how it works but maybe you can tell me.
I just knocked up a version of this module in SuperCollider, and it produces an reasonable supersaw. Should be pretty efficient too, as you only need one low-frequency saw LFO for each additional 'voice'. Sean is correct though, it seems to run into problems when used with band-limited saws.


Here's my SC code, in case anyone is interested:

Code: Select all

(
{var input,mix,shift1, shift2, shift3, shift4 ,comp1,comp2, comp3, comp4, output;
input = LFSaw.ar(MouseX.kr(40,4000));
shift1 = LFSaw.ar(4);
shift2 = LFSaw.ar(7);
shift3 = LFSaw.ar(5);
shift4 = LFSaw.ar(2);
comp1 = input > shift1;
comp2 = input > shift2;
comp3 = input > shift3;
comp4 = input > shift4;
output =  (input - comp1) + (input - comp2) + (input - comp3) + (input - comp4) - input;
output = LeakDC.ar(output*0.25);
Out.ar([0,1],output );
}.scope
)

Post

I found a simple version of the Doepfer circuit, in:

Hutchins Jr., Bernard A. "Analog Circuits for Sound Animation"JAES Volume 29 Issue 11 pp. 814-820; November 1981

For analog circuits, it makes a lot of sense, as voltage-controlled oscillators require expensive parts (matched transistor pairs, fast comparators, etc.). For digital, it makes less sense. Even working with non-bandlimited sawtooth oscillators, each phase shifted voice will require an LFO, an addition (to sum the LFO with the master sawtooth), and a "wrap" mechanism to wrap the summed LFO + sawtooth into the original sawtooth range. Meanwhile, simply calculating an additional non-bandlimited sawtooth would require an addition (phase increment), and the wrap mechanism. So it is cheaper just to compute a bunch of parallel sawtooth oscillators in the digital realm.

Sean Costello

Post

what LFO? each of the 7 saws of the supersaw are modulated by LFOs, not just detuned staticaly?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote:what LFO? each of the 7 saws of the supersaw are modulated by LFOs, not just detuned staticaly?
The LFOs are in reference to the comparator-based method we've been talking about in the last few posts. This method produces phase-shifted extra saws rather than detuned saws, and therefore you need to modulate the phase-shift amount with an LFO in order to produce something that sounds detuned.

Post

antto wrote:what LFO? each of the 7 saws of the supersaw are modulated by LFOs, not just detuned staticaly?
That's what I was wondering too...

If you use an LFO to compute a "circular" phase offset between a bunch of sawtooths then you quickly get a repetitive pattern. Some sawtooths will shift phase in an "aligned" manner at nearly the same speed to each other which will result in phasing. You'd need several LFOs at different rates to compute a good supersaw, which - if I', not mistaken - is just way easier to accomplish by detuning a bunch of sawtooths.

Might be worth exploring though...

;) Urs

Post Reply

Return to “DSP and Plugin Development”