Recipe for the best supersaw.

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

Post

Despite what one might think, I originally intended this thread to be a place of discussion about supersaws, not to show off my technique for supersaw... although I did not hesitate to do that too.

And I hope Urs releases that experimental supersaw plugin. If not, I'm sure he'll be including it in one of his new synths.

Post

My first priority with Moselle is to get version 0.1 released. But as soon as that happens I want to circle back and look at oscillators again and may look at supersaws.

http://moselle.invisionzone.com/ screenshots at http://moselle.invisionzone.com/index.php?/gallery/


Even without a dedicated oscillator module for supersaw, you can put lots of oscillators in a voice. Secondly, you can have multiple voices per note (like an 80s synth unison, but still polyphonic, if you follow), and each voice can vary in any way you choose from each other. Specifically, not just the normal fixed "detune" synths since the 80s have had but but also varying pitch envelopes, varying filter cutoffs, varying vibratos, varying delays before note starts, whatever distribution you want, etc.

As soon as I have something running, though, I hope to add various modules that could be used more efficiently for super-saw type sounds, including probably an implementation of my own "bump up circular buffer" which actually is an implementation method, not an algo for determining the sawtooth count and detunes per se. http://www.kvraudio.com/forum/viewtopic ... aw#4644051

But I also hope to implement any other use that is free of IP encumbrance.

Post

Swiss Frank wrote:Specifically, not just the normal fixed "detune" synths since the 80s have had but but also varying pitch envelopes, varying filter cutoffs, varying vibratos, varying delays before note starts, whatever distribution you want, etc.
i want that. Can you also implement an easy way of "I want 16 voices, but when I play 2 notes, 8 goes to one note, 8 goes to the other note. Likewise, if I play 3 notes, it's distributed 5/5/6, etc."

Also, key-based detune. So the farther away the note is from X note, the more detune... and make it able to be an exponential curve.

Post

Architeuthis wrote:Can you also implement an easy way of "I want 16 voices, but when I play 2 notes, 8 goes to one note, 8 goes to the other note. Likewise, if I play 3 notes, it's distributed 5/5/6, etc."

Also, key-based detune. So the farther away the note is from X note, the more detune... and make it able to be an exponential curve.
Thanks for your interest Architeuthis.

Your first request is a question of voice assignment, which I'm sorry to say isn't very flexible. Right now you can set the max number of notes and voices per note. You could make voices per note a variable expression in terms of notes currently being played, but the problem would be you'd get 16 voices for note 1, then 8 for note 2 but they'd be on top of the 16 already playing. You'd probably want half the voices for the previous note to stop, and I don't have a way to do that. Adding such a way wouldn't be hard, but then what happens when you release note 2? Would note 1 be back to 16 voices, and would they start "at the beginning"?

Your second request has worked in Moselle since like 2011. Since you request exponential, and frequency is exponential, I think you're asking for actually a set amount of detune added per octave?

The first way to do it is just to set a voice-wide detune. (Detune is part of the default pitch calculation which takes into account the tuning table, portamento, pitchbend, this Detune param, plus a Transpose param.) Lets add 10 cents per octave above A4:

Code: Select all

[Voice]
Detune = (Note-69)/12 * 10 cents
A second way would be to replace the default tuning module with one which uses your own formula. (The default tuning table has a "2" instead of the "2 + 10/1200". In effect, we're saying to increase the pitch by an octave an 10 cents for every 12 MIDI notes we go up.) Since this does the calculations at patch load time, its just a hair faster:

Code: Select all

[Tuning]
ValFormula = FreqA * (2 + 10/1200) ^ ( ( ValInput - 69 ) / 12 )
Those two ways would affect all your oscillators. If you just want one oscillator to detune you could say:

Code: Select all

[Osc1]
Frequency  = Voice:Frequency + (Voice:Note-69)/12 * 10) cents

Post

Swiss Frank wrote:Adding such a way wouldn't be hard, but then what happens when you release note 2? Would note 1 be back to 16 voices, and would they start "at the beginning"?
Maybe an easier way would be to have this:

midi channel 1 = 16 voices per note, and monophonic (to allow legato)
midi channel 2 = 8 voices per note, 2 voice polyphony (if you have 2-voice legato logic, that would be awesome)
midi channel 3 = 5 voices per note, 3 voice polyphony
midi channel 4 = 4 voices per note, 4 voice
midi channel 5 = 3 voices per note, 5
midi channel 6 = 2 voices per note, 8
midi channel 7 = 1 voice per note, 16

That way I can just send notes to different midi chanels, and I get total control.

Post

Architeuthis wrote:
Swiss Frank wrote:That way I can just send notes to different midi chanels, and I get total control.
Basically the Moselle IDE (integrated development environment: editor, oscilloscope, etc.) is meant to handle multiple channels so what you suggest as a "hack" would work. In fact I haven't quite finished that yet however; currently its hard-coded to channel 1 and mono-timbrality.

That said, I'm not dissing either of your suggestions--I want Moselle to be able to do "anything". It'd be much appreciated if you had time to put your reqeusts in the Moselle on-line forum. http://moselle.invisionzone.com

Post

Hyperstack vst manual suggests to run it through amp distortion. That would partially explain synth leads that stand out like guitar leads :) Does anyone here use a guitar amp sim on their synths?

Post

you haven't heard anything off the radio for the last ... years?
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

xoxos wrote:you haven't heard anything off the radio for the last ... years?
What kind of distortion plug would you use, like to help out a supersaw? I'm learning slowly :D I'm not talking about Linkin Park guitar synth.

Post Reply

Return to “DSP and Plugin Development”