Page 1 of 1

Chaotic oscillator based on Lorenz function

Posted: Sat Mar 05, 2016 5:01 am
by noisenerd
An implementation of Russel Borogove's "LorenzOsc" from the MusicDSP source code archive. I can't claim any credit here, I just "translated" it, partly as a learning tool, and partly because it sounded cool. :) I figured other folks here might get some use out of it as well.

Based on the Lorenz system, it uses an iterated chaotic function that never repeats the same pattern. At low frequencies, it may be useful as a random modulation source. At higher frequencies, it could be used as an alternate noise source.

Image

Feel free to use as you see fit.

EDIT: I should probably also note that I have no connection with Tiny God software or Russel Borogove, other than using his plugins and ripping off his ideas. ;)

Re: Chaotic oscillator based on Lorenz function

Posted: Sat Mar 05, 2016 9:40 am
by Spogg
Hey thanks for that!

I read about this Lorenz chaos thing when I was looking into synthetic IR waves but didn't have the skills to make one. I shall try this in my IRA as an alternative source for making IRs.
Is there any way you or someone could make this go more towards the higher frequency end, so sounding something like white or pink noise? You do say that there seems to be an upper limit so could it be improved if done in optimised assembler for example?

At present it's a great source for thunder or explosions!

Many thanks for sharing this.

Cheers

Spogg

Re: Chaotic oscillator based on Lorenz function

Posted: Sat Mar 05, 2016 11:32 am
by noisenerd
You're welcome, and thanks for the comments! Mr. Lorenz and Borogove were the real talents/skills, I was just using this as a way to help me learn by doing.

I don't actually understand the math at work here well enough to say more than this: the "center frequency" is set by the relationship between 2 numbers. In this case, one of those is the value of the "Freq" knob ("a" in the code), and the other is the sampling rate. I suspect that if you were to oversample it (or just run it at a higher native sampling rate), you could get more high frequencies. I'm not sure if it would actually allow you to extend the range of the knob, but essentially that range should get "wider" if my understanding is correct (I hope that makes sense).

Note that if you try this, you will have to change the line of code that reads "rate = 44100;" to the new sampling rate, or at least something higher, in order to see any change in the output.