Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / LatoocarfianN.schelp
blob0815cee94cd2a26eb7de790664e75488d4e4a6f5
1 class:: LatoocarfianN
2 summary:: Latoocarfian chaotic generator
3 categories:: UGens>Generators>Chaotic
4 related:: Classes/LatoocarfianL, Classes/LatoocarfianC
6 description::
7 A non-interpolating sound generator based on a function given in Clifford Pickover's book Chaos In Wonderland, pg 26. The function is:
9 code::
10         x[n+1] = sin(b * y[n]) + c * sin(b * x[n])
11         y[n+1] = sin(a * y[n]) + d * sin(a * x[n])
13 warning:: revise formulae conversion to c like code ::
15 According to Pickover, parameters code::a:: and code::b:: should be in the range from -3 to +3, and parameters code::c:: and code::d:: should be in the range from 0.5 to 1.5. The function can, depending on the parameters given, give continuous chaotic output, converge to a single value (silence) or oscillate in a cycle (tone).
17 note::This UGen is experimental and not optimized currently, so is rather hoggish of CPU.::
19 classmethods::
20 method:: ar
21 argument:: freq
22 Iteration frequency in Hertz
23 argument:: a
24 Equation variable
25 argument:: b
26 Equation variable
27 argument:: c
28 Equation variable
29 argument:: d
30 Equation variable
31 argument:: xi
32 Initial value of x
33 argument:: yi
34 Initial value of y
35 argument:: mul
36 argument:: add
38 examples::
39 code::
40 // default initial params
41 { LatoocarfianN.ar(MouseX.kr(20, SampleRate.ir)) * 0.2 }.play(s);
44 code::
45 // randomly modulate all params
47 { LatoocarfianN.ar(
48         SampleRate.ir/4,
49         LFNoise2.kr(2,1.5,1.5),
50         LFNoise2.kr(2,1.5,1.5),
51         LFNoise2.kr(2,0.5,1.5),
52         LFNoise2.kr(2,0.5,1.5)
53 ) * 0.2 }.play(s);