Classes (extension) | UGens > Generators > Chaotic

RosslerL : MultiOutUGen : UGen : AbstractFunction : Object
ExtensionExtension

Rossler chaotic generator

Description

A strange attractor discovered by Otto Rossler based on work in chemical kinetics. The system is composed of three ordinary differential equations:

x' = - y - z y' = x + ay z' = b + z(x - c)

The time step amounthdetermines the rate at which the ODE is evaluated. Higher values will increase the rate, but cause more instability. A safe choice is the default amount of 0.05.

Class Methods

RosslerL.ar(freq: 22050, a: 0.2, b: 0.2, c: 5.7, h: 0.05, xi: 0.1, yi: 0, zi: 0, mul: 1, add: 0)

Arguments:

in
freq

iteration frequency in Hertz

a, b, c

equation variables

h

integration time step

xi

initial value of x

yi

initial value of y

zi

initial value of z

Inherited class methods

Undocumented class methods

RosslerL.equation

Instance Methods

Inherited instance methods

Examples

These first examples treat RosslerL as a single-output UGen (i.e. using x only):

// vary frequency - these parameters are for "one-pulse" orbit
{ RosslerL.ar(MouseX.kr(20, SampleRate.ir), 0.36, 0.35, 4.5) * 0.3 }.play(s);

// randomly modulate params
(
{ RosslerL.ar(
    SampleRate.ir, 
    0.2, // First variable tends to lead to NaN if modulated in this example
    LFNoise0.kr(1, 0.01, 0.2),
    LFNoise0.kr(1, 0.2, 0.7)
) * 0.2 }.play(s);
)

// as a frequency control
{ SinOsc.ar(Lag.ar(RosslerL.ar(MouseX.kr(1, 200)))*800+900)*0.4 }.play(s);

An example utilising the three different outputs as pitch, PWM and pan values (respectively):

(
{
# x,y,z = RosslerL.ar(MouseX.kr(1, 200));
Pan2.ar(Pulse.ar(x.range(100,1000), y.range(0,1), 0.3), z)
}.play(s)
)