SynthMaker

Make an OSC unstable (like old analog synths

Archive · 2010 12 old posts

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].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.