Dave ·
Hi,
how can i add a feature like "unstable" or "drift" that makes the OSC go unstable like old analog synths do?
Thanks, Dave
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Dave ·
Hi,
how can i add a feature like "unstable" or "drift" that makes the OSC go unstable like old analog synths do?
Thanks, Dave
trogluddite ·
Easiest way is with the random number generator like this...
The random generator gives an integer from 0-32767 each time it gets a trigger, so you have to divide by a lot to make it usable - the de-zipper then smooths the output so you don't hear nasty stepping - you can change the speed of the drift by editing the de-zipping time in its properties panel. The numbers aren't truly random, so if you have several oscillators, you will need to put a different number into the 'Seed' input of multiple random number generators so that the oscillators don't all drift in sync with each other.
oddson ·
Trog's suggestion seems to suggest it would lurch more than drift...
It might work (either with the dezipper or some other lowpass) but there are an almost infinate number of ways of approaching this...
Here's mine: Drift should have some feedback so where it goes next depends on where it is now... (from my economics days I recall this as a 'random walk').
But for an OSC you'd want to contain the drift with some sort of break mechanism that stop it from continuing to drift way out of bounds.
something like
x == input frequency y == output frequency (lagged when on RHS) c1 == drift coefficient c2 == correction coefficient
y = y + c1*rand(-1,1) + c2*(x-y);
c1 controls the amount of randomness while c2 imposes constraints on the drift and causes the signal to stay closer to the input value.
But there's no rand() function in the code module so you need a noise generator (I 'borrowed' one from the denormal module - I left a line of code in I don't understand in case it's important).
Since the noise is at sample rate you can hear it as it acts as a source of frequency modulation. A low-pass filter afterwards to cut down on this.
You might prefer to filter or otherwise prepare the randomness before it's used in the drift... to this end you could combine Trog's method and mine by feeding his random source into my code and remove the noise generator (I don't think you'd need the dezip particularly if you keep the lowpass from mine).
(With a low c2 value it can take the code a bit of time to approach the input frequency... so you might want to consider starting from there -- but that would take a lagged x value and bit of masking to see if the x value has suddenly shifted.)
Hope this gives you something to think about...
MichaelBenjamin ·
here is some cpu light noise stuff that i use, posted some year at the forum, slighlty modified:
streamout brownnois; float lpcoef1=0.999; float lpcoef2=0.001; //for sr changes both coefs should be normalized outside in green float scaled=0; float rand=0.600001; //can be modulated or randomized, but may then break the code below if outside some range
//cool pseudo random function rand = rand*3; rand = rand-(rand>2)&1; rand = rand-(rand>1)&1; //mixing scaled = rand*2-1; //lp filter brownnois = (brownnois*lpcoef1+scaled*lpcoef2);
MegaHurtz ·
N1, looks very simple indeed. A nice aternative to the three square roots two sines and a cosine thats for a wite gen. going to plot it asap 😈
Edit: and oh.. slight pitch drift at 50 hz. And if it uses "amplification" slight drift there aswell.
TomC ·
Dave wrote: Hi,
how can i add a feature like "unstable" or "drift" that makes the OSC go unstable like old analog synths do?
Thanks, Dave
Actually, old synthesizers get their charm not from random changes but from very slow sinusoidal and root or log functions when warming up.
Play around with a sine somewhere in the 0.001 Hz (or smaller) range.
Tom
MichaelBenjamin ·
TomC wrote: Actually, old synthesizers not only get their charm not from random changes but also from very slow sinusoidal and root or log functions when warming up.
tweaked a bit, ok?
MegaHurtz ·
Dunno about the lowpass, but thats a very uniform white. Class act this.
MegaHurtz ·
TomC wrote: Dave wrote: Hi,
how can i add a feature like "unstable" or "drift" that makes the OSC go unstable like old analog synths do?
Thanks, Dave
Actually, old synthesizers get their charm not from random changes but from very slow sinusoidal and root or log functions when warming up.
Play around with a sine somewhere in the 0.001 Hz (or smaller) range.
Tom
Ooh the passing of electrons based on the temperature and friction of materials they like to pass through. Not to forget the load to come and take these electrons away, and cause some feedback if they dont. If done right I suppose the math so big it`s a computer of it`s own.
MegaHurtz ·
Had a little play around. Why I want triangular noise I dunno 😈 And I can do with less points than this. But interesting nonetheless.
This are the results. For uniform white noise.
For MB`s uniform whitenoise.
It looks and sounds white at first. is way more efficient then anyting ive met before. But why this happens beats me?
trogluddite ·
MichaelBenjamin wrote: here is some cpu light noise stuff that i use,
Thanks for that one - very nice. I've often wondered what clocking your soundcard through a S?PDIF input from a crappy RC oscillator on a bit of veroboard might sound like - you could stick it in a mug of tea (a la Douglas Adams) when you wanted an infinitely improbable random patch! 😀
philter5 ·
can somebody help me adding that to my KORG monotron emulation? the original monotron is a true analog synth that drifts after startup.. and my KORG Monoklon project is just a fun project so WHY not add this little "feature" ,too hehe.
OSM here: korg monotron emulation
Wrote something here? To have a post removed or your name hidden, write to [email protected].