Roland Supersaw - any idea how the original was done?
- KVRAF
- Topic Starter
- 3426 posts since 15 Nov, 2006 from Pacific NW
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
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
- KVRAF
- 14994 posts since 26 Jun, 2006 from San Francisco Bay Area
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. ~[ ●_● ]~
4th Law of Robotics: When turning evil, display a red indicator light. ~[ ●_● ]~
- KVRAF
- 2554 posts since 4 Sep, 2006 from 127.0.0.1
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..
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
..as long as it has BASS and it's LOUD!
irc.libera.chat >>> #kvr
-
- Banned
- 3299 posts since 20 Dec, 2008
Try these out; look at the settings on the GUI
http://www.kvraudio.com/get/708.html
http://www.kvraudio.com/get/1200.html
http://www.kvraudio.com/get/708.html
http://www.kvraudio.com/get/1200.html
- KVRAF
- 9453 posts since 17 Sep, 2002 from Gothenburg Sweden
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.
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.
How can the mod depth be equal to a frequency ?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.
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.
-
- KVRAF
- 8388 posts since 11 Apr, 2003 from back on the hillside again - but now with a garden!
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
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
- KVRAF
- 9453 posts since 17 Sep, 2002 from Gothenburg Sweden
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 ?duncanparsons wrote:Potentially you could have a number of these choruz voice, each with a different phase offset in their modulation.
Oh wait,that wouldn't work. Or would it ?
Time for another cup of coffee. (Where's the sleepy smilie?)
-
- KVRAF
- 5524 posts since 5 May, 2007 from Mars Colony
Or when dude asked "Do you want to supersize that saw order?", Roland said "YES!"zerocrossing wrote:I think they just took a regular saw from a planet with a red sun and brought it here.
"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
---Salon on internet trolls attacking Cleveland kidnapping victim Amanda Berry
- KVRAF
- Topic Starter
- 3426 posts since 15 Nov, 2006 from Pacific NW
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.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.
How can the mod depth be equal to a frequency ?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.
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.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.
Thanks,
Sean Costello
- KVRAF
- Topic Starter
- 3426 posts since 15 Nov, 2006 from Pacific NW
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
Sean Costello
-
- KVRer
- 15 posts since 22 Oct, 2005
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.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.
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
)
- KVRAF
- Topic Starter
- 3426 posts since 15 Nov, 2006 from Pacific NW
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
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
- KVRAF
- 2554 posts since 4 Sep, 2006 from 127.0.0.1
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
..as long as it has BASS and it's LOUD!
irc.libera.chat >>> #kvr
-
- KVRer
- 15 posts since 22 Oct, 2005
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.antto wrote:what LFO? each of the 7 saws of the supersaw are modulated by LFOs, not just detuned staticaly?
- u-he
- 28065 posts since 8 Aug, 2002 from Berlin
That's what I was wondering too...antto wrote:what LFO? each of the 7 saws of the supersaw are modulated by LFOs, not just detuned staticaly?
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