Recipe for the best supersaw.

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

Post

Urs wrote:I've built a little mini-plug that does supersaw with several different laws. I might add some more and get it out tomorrow maybe. Some differences are surprisingly subtle.
That would certainly keep some of us busy, while we wait for the next Diva update with the 'digital' oscillator for the JP8K supersaw. ;)

May I also suggest trying a combination of the techniques: instead of creating a supersaw from plain sawtooth oscillators, how about using the PWM-able sawtooth oscillator that we know and love from the Alpha Juno series (and is already modelled very well in Diva) instead? Before there was such a thing as a supersaw, afaik this was the best way to make a single oscillator sound fatter than a plain sawtooth - apart from adding a chorus effect afterwards, of course. Especially when using the MKS-50 module, where one can use 'Chord Mode' to play the *same* 6 notes with a single key, one can achieve some quite 'fat' sounds (although it is not really a proper unison mode, since there is no additional detuning; using pitch bend also results in some sort of 'randomization' of the oscillators' relative phases). I would guess that combining these approaches could result in a more 'hoover'-ish flavour to the supersaw.

Gabber-trance, anyone? :D

Post

Well, I'm just now about to compile a Windows version of our Supersaw laboratory (which has become my weekend project it seems). It isn't the be all end all of Supersaw, but for a certain kind of algorithm it might be very useful.

The DCO in Diva is, well, extremely CPU hungry - rectifiers and flip flops don't come easy - I can't see how we'd fit 32 or so into a typical supersaw-centric synth environment :oops:

Post

:hyper:

Post

Urs wrote:Well, I'm just now about to compile a Windows version of our Supersaw laboratory (which has become my weekend project it seems). It isn't the be all end all of Supersaw, but for a certain kind of algorithm it might be very useful.
Windows-only? Meh, bummer. It seems that my next weekend project has become doing a (virtual) Windows install, then. :P
Urs wrote:The DCO in Diva is, well, extremely CPU hungry - rectifiers and flip flops don't come easy - I can't see how we'd fit 32 or so into a typical supersaw-centric synth environment :oops:
No... that's not what I'm suggesting - that would compare to stacking 32 plain sawtooths by brute force, instead of using the much smarter unison oscillator technique like the JP8K supersaw does. What I'm thinking of, is to try and add some sort of PWM to the unison oscillator itself. So the question seems to be if you could fit in up to 7 DCO's (Diva certainly can, although one may need to lower the quality setting), and if the resulting sound is worth the cost. I would guess that adding PWM to the main sawtooth wave in the supersaw unison oscillator only could already have quite a distinct sonic effect, and then it should not cost much more CPU than the load of one DCO plus one such 'digital oscillator'?

Post

Ch00rD wrote:Windows-only? Meh, bummer
Uhm, no, because the Mac version was finished all along...

I found a crucial bug in one of the algorithms though, so I'm a bit back to square one with this. (All algorithms have PWM here though, they work for arbitrary waveforms)

#-----

I have two more ideas for Supersaw detuning laws that I think haven't been implemented, and I'm too tired to do so myself today. I might need to do that next weekend or so.

Post

I've also expiremented with the SuperSaw ideas in this thread during the weekend. I'm a seasoned programmer but new to DSP coding (started less than a week ago) so the results weren't great at first but now it sounds like your average softsynth osc to me.

This is my first post on this forum and I can't find the rules about sharing links, anyway here is the link to the CrappySaw Vst DLL :
http://www.filesnack.com/files/chn0gllj

Windoze only, I can't be arsed to pay the Apple tax or build a Hackintosh development environment at the moment so please bear with me. The plugin is monophonic and assume a sample rate of 44100khz with stereo output channels. You may get a stuck note if you try to play polyphonic, if it happens don't worry the note will get unstuck on next note off event.

The CrappySaw plugin has 3 parameters (detune, mix and random detune).

It follows this algorithm:
1. Build 14 bandlimited wavetable saw oscillators. Randomize their starting phase on each note-on event.

2. Center osc frequency is fixed, others are detuned according to a not so 'secret' golden ratio. Detune param controls the frequency spread amount of the golden ratio. 0 = no detune, max = full detune

3. Random detune adds a random frequency offset to each saw including center oscillator. The maximum random range is -20 to +20 hertz. The random frequency offset is re-applied at each ProcessReplacing call so it acts like a crude sample and hold. No slew at the moment so I suspect there might be artefacts due to sharp frequency changes happening. Set Detune to 0 if you want to test only random detune. You can set both Detune and Random Detune to start with a golden ratio spread and add a random frequency offset afterward.

4. Mix oscillators together. Setting the mix parameter at 0 will sharply attenuate all osc except the center one. At maximum all osc will be roughly the same amplitude.

5. Panning, first 7 saws are panned hard left and last 7 saws are panned hard right. It's basically supersaw voices.

--------------------

OP's demo sound astounding to me. If he can get that sound out of KarmaFX I think he must be doing something good. It also shows how effect processing is crucial to achieve a good supersaw lead.

During testing, I've noticed that an equal spread ratio generates way too much phasing artefacts compared to a golden ratio spreading. Right now I don't think random detune offset is clearly superior but it's certainly not bad either. Maybe keeping center osc at a fixed frequency and adding slew to frequency change will improve it.

I'm still having trouble keeping the final amplitude normalized after mixing, is it due to phasing/beating artefacts?

Looking for ideas to improve the algorithm, all comments welcomed.

Thanks,
Yuri

Post


Post

Architeuthis wrote:thee you go.
Sounds promising, thanks Architeuthis.

I'll work on making random detune smoother along with varying sample and hold time parameter. Adding a little frequency randomization in there seems to reduce repeating patterns but as it is now it also introduce harsh noise.

Post

Oden wrote:Hmm... Can someone explain what URS is saying here. In my mind beating and "phasing" is the same thing not the opposite. To be honest I am not sure what you guys are referring to as "phasing".
For all I know I'll try to explain it, feel free to correct me if I'm wrong and talking nonsense.

Phasing occurs when two (or more) similar signals are delayed in phase. If you're not familiar with phase, think of it as the moment in time when the sound wave rises from zero amplitude or drop from maximum amplitude. Mixing slightly detunes oscillators is bound to produce phasing artifacts and this is somehing we're trying to avoid with supersaw because it sounds like a slow filter sweep.

Beating occurs when two (or more) signals get to their lowest and/or highest phase at roughly the same time. This will create a tremolo effect where the volume will rise and fall throughout playback. When beating occurs it creates an annoying pulsating pattern at a regular beat interval hence the name 'beating'. For example, if an oscillator is at frequency X and an other is at frequency 2X they will beat against each other every two cycles producing a noticeable pattern.

This video is a great demonstrating of beating :
https://www.youtube.com/watch?v=5hxQDAmdNWE

Supersaw is a mix of the same waveform so they will either tend toward phasing or beating when the phases and frequencies are static. Striking a good balance between the two is what I'm trying to achieve.

The OP's idea is making phase and frequencies dynamic (using random numbers) so oscillators will not exhibit phasing or beating in a discernible regular pattern. However the randomization introduces other problems and has to be carefully harnessed so it doesn't introduce too much noise in the signal. I share the idea that if oscillators are randomly phasing and beating it's not a big deal because they don't do it in a regular pattern. On the other hand without randomization it seems really hard (impossible?) to remove phasing and beating patterns.

Post

Oh goodie. Another supersaw thread :love:

While i was noodling around with synthesis experiments few years ago i had a go at making some kind of a supersaw. I used prime numbers in detuning the saws to get a smoother sound. Here's a short demo:
https://soundcloud.com/matti-kotala/sawing
www.mkdr.net

MophoEd - the BEST DSI Mopho Editor VSTi

Post

mkdr, that's how the Crappy Saw VST DLL sounds when you don't use the random detune, this is a good example of static detuning. It's a weird sound, but could sound good in certain contexts, IMO.

Edit: Actually the sound reminds me of Sylenth or JP8000 vst recreations... or am I wrong?
Last edited by Architeuthis on Mon Aug 05, 2013 4:37 pm, edited 1 time in total.

Post

The best supersaw I've heard is the string section of an Orchestra! :D

I'll get my coat... :)

Post

DaveHoskins wrote:The best supersaw I've heard is the string section of an Orchestra! :D

I'll get my coat... :)
Are you reading this thread? That's what I've been trying to say!.. kinda... sorta... somewhat... something like that.

Post

I did just skim the thread. :oops:

Each violin has so many differences that they'll never be acoustically similar.
Pitch only plays a small part in it, timbre, bow resin (fly-back shape?), differences in size and cut of the wood, the shape of the people around it and placement in a hall, all change the sound from each instrument. Not to mention playing style and finger placement.
I've never made a super-saw so I can't say for sure, but I'd guess that random oscillators and random walk dithering are the way to go, and use them in everything, including phase differences for each harmonic.

Post

Architeuthis wrote:mkdr, that's how the Crappy Saw VST DLL sounds when you don't use the random detune, this is a good example of static detuning. It's a weird sound, but could sound good in certain contexts, IMO.
Oh it's crappy?
I was trying to demo how good it sounds :D



Btw. For your audio demos: It would be easier to spot what you are trying to tell here if you'd keep things simple. Not that much effects for example.
www.mkdr.net

MophoEd - the BEST DSI Mopho Editor VSTi

Post Reply

Return to “DSP and Plugin Development”