// title: asylum appearance // author: vividsnow // description: // lunatic asylum band during moon eclipse // // p.s. slightly different sounding on each run ) // code: ( var base = 2.6; // or TempoClock.tempo; // set tempo thisThread.randSeed = 1000000.rand.postln; // to recall interesting variants f = { |out = 0| var sig = Pan2.ar( Klank.ar( `[ Array.rand(30, 50, 10000), Array.rand(30, 0, 1.0), Array.rand(30, 0, 1.0) ], [ LFBrownNoise2.ar( LFDNoise3.kr(base / 4).range(20, 10000), 0.005), GbmanL.ar( MouseX.kr(0, Array.geom(5,2,2).choose), 3.0.rand2, 3.0.rand2 ) / 3, Impulse.ar( A2K.kr(GbmanL.ar(MouseY.kr(0, Array.geom(5,2,2).choose), 3.0.rand2, 3.0.rand2)) * base / 4 ) / 4, Dust.ar( Array.geom(4,base/2,2).choose ) / 4, Impulse.ar( Array.geom(4,base/2,2).choose ) / 4, LFPulse.ar( LFDNoise3.kr(base).range(62.rrand(100), 110.rrand(350)), mul: 0.003 ) ].choose ) * SinOsc.kr( Demand.kr(Impulse.kr(base / 16), 0, Dxrand(Array.geom(5, base / 4, 2), 8)), mul:0.1 * A2K.kr(GbmanL.ar(Array.geom(5,1/8,2).choose, 3.0.rand2, 3.0.rand2)), add:0.1 ), LFTri.kr(base / (4,6..24).choose, mul: 0.7.rrand(0.2), add: 0.3.rand) ); Out.ar(out, sig ); }; { ReplaceOut.ar(0, Limiter.ar(FreeVerb.ar(In.ar(0,2), 1.0.rrand(0.33)))) }.play( addAction:\addToTail ); { f.play(args:[out:0]) } ! 4.rrand(8); )