From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Martijn Deluxe ·
So ive seen some post about free running oscillators. What i didn see was the why we need it and what it means sound wise.
All analog synths i know have freerunning oscillators. moogs oberheimers prophet5 yamaha cs80 etc etc. Oscillator Key Sync was not available. Only synths like the Yamaha DX series had key syncable oscillators as a option. But thats a Digital Synth...
Now the idea in software synths is to stop oscillators from running if the sound ended. Why would ya wanna have a module use CPU if ya dont hear it... good point... However the way it works out now is that all oscillators start in exactly the same phase when theyre voice gets allocated.
What does this mean soundwise?
Say i play a 6 note chord on a memory moog where each voice has 3 oscillators, than all 18 oscillators start playing the appropriate frequencies at all different phases.
If ya d build something like that in Synth Maker, all 18 oscillators start with exactly the same phase.
This sounds completly diffrent regardless of how cool youre filter is and how cool youre oscillators are.
Now as far as i'm concerned it doesnt realy the exact phase they are in after geting the chord so nevermind about doing the calcules based on sample position etc. The big important thing is that they are all diffrent and no all the exact same.
So it would be realy nice if the realocation of voices would be able to not reinitialize. So instead of freeing and creating a voice, pausing and unpausing... That would do the trick.
Sofar the only thing i came up with withing the SynthMaker is A never dealocate the voices so they are always running or B at initialisation of my oscs set them to a random phase. The last one is a lot of administration sinds oscillators need theyre own random seeded by samplepos or so that is diffrent from eatchother and if more voices start at the same time they also need to be diffrent from eachother... than when playing a chord all oscs start at a random phase... Way to complicated though...
So ya does this make sense?
Greetings,
-Martijn-
MegaHurtz ·
Yes it really does make sense.
There are aspects that utilize this feat , like having your waveform square in the scope.
But I agree this should be delt with.. and most of all cannot be delt with right now.
I do see the drawback though, so im afraid this wont be solved.
But yes..
You can try to randomise the phase for each voice.
Acrobat ·
sorry, what do you mean for "free running" ?
Can you show up how the GATING would occur in such cases, please?
It could be helpful to understand if it can be implemented in SM or not.
trogluddite ·
Acrobat wrote: sorry, what do you mean for "free running" ?
Can you show up how the GATING would occur in such cases, please?
Free running oscillators are part of what gives old analogue synths their 'organicness'.
Let's say you have a two osc synth with the two oscillators detuned very slightly - that gives you that classic chorus sound as the stwo oscillators drift in and out of phase with each other...
In SM...
Each time you play a note the oscillators always start the note in phase with each other, so every time you play a particular note it will sound exactly the same.
Free Running...
The oscillators are always active, the keyboard just opens the amp/filter so that you can hear them. So each time you play a note, the phase of the oscillators will be different as the key is pressed - so the note will sound slightly different each time you play it.
Both of Martijn's solutions would give this effect. Keeping the oscillators always running would mimic it perfectly, but as he says, very CPU expensive (you'd need oscillators running at every possible pitch for a poly synth in theory).
The other way is to assign each oscillator a phase shift whenever there's a new note - which could come either from a random number generator, or from a sample counter/system time etc.
trogluddite ·
I've knocked up a little module for assigning a random phase to oscillators as each note begins - I've put it inside the example synth so it's easy to play with. I'm sure it can be improved - the random phase generator isn't really all that random. (Sorry it's in assembly, but bitmasking was a quick way to get a psuedo-random number)
I've set the first patch to be two detuned sawtooth osc's with no filter - try playing repeated low notes and you'll hear how each note is different due to the phase shift (you can turn Random Phase on and off to hear the difference).
MegaHurtz ·
Althoug I do think the flow it should generate sounds better.
xmidiman ·
For unison in my synth, I use a LFO -->mono2poly to the phase on osc2, and set the LFO to a very slow rate and you can play around with the depth, usually setting it max should be ok.
To me the best way is to use this LFO method, because that simulates a "constant" osc running(because the phase is moving with the constant LFO speed).
I think the main difference from a random phase method is that the phase of osc2 is going to remain the same for all notes, which shouldn't matter since different notes are going to be all out of phase.(because of the frequency)
MegaHurtz ·
Currently im doing a mono Electribe ish synth, and having it monophonic sorts this out aswell.
infuzion ·
xmidiman wrote: For unison in my synth, I use a LFO -->mono2poly to the phase on osc2, and set the LFO to a very slow rate and you can play around with the depth, usually setting it max should be ok.
To me the best way is to use this LFO method, because that simulates a "constant" osc running(because the phase is moving with the constant LFO speed).
I was thinking the same idea; likely the best bet. Eats some CPU though.
aliasant ·
I have always wanted to build a Polyphonic synth the old way using mono oscillators.
1 oscillator/pack of oscillators per voice in mono but I never got it to work.
Some how I needed the polyphonic voice assignment to work with the mono oscillators.
It was a couple of years ago so I forgot most of it but it would be interesting to hear if anyone else managed to do this?
Using monophonic oscillators would allow us full control over them.
We can also use the mono pack so building a nice vintage style 8voice synth with maybe 3 oscillators / voice shouldnt be to cpu hungry.
Anyone has any ideas about this?
xmidiman ·
Here is a quick example of what I believe I used... I added some volume control with the on/off switch so you can get a better idea(RMS) of the difference, beside the normal loudness.
*EDIT*: This is in reference to the Free Running OSCs
MegaHurtz ·
aliasant wrote: I have always wanted to build a Polyphonic synth the old way using mono oscillators.
1 oscillator/pack of oscillators per voice in mono but I never got it to work.
Some how I needed the polyphonic voice assignment to work with the mono oscillators.
It was a couple of years ago so I forgot most of it but it would be interesting to hear if anyone else managed to do this?
Anyone has any ideas about this?
Its the enveloppes that are going to get ya, these are triggered by a hidden boolean.
So they wont work.. in the past year the midi mono is tweaked to work better.
maybe they even used my snh trick to do it 🙂
but.. let me digg my files for one I did lately.
[/attachment=0]ADSR.osm[/attachment]
It`s not sensetive to velocity, but theres a workaround to sample the velocity of the current voice 😉
MegaHurtz ·
Here`s the same with a gate V to eg*V tool thingy.
aliasant ·
Nice!
Gonna have a look when i get back from my mini photo safari 🙂
MegaHurtz ·
aliasant wrote: Nice!
Gonna have a look when i get back from my mini photo safari 🙂
Sounds fun 🙂
Wrote something here? To have a post removed or your name hidden, write to [email protected].