{
   "name" : "chillinoisy",
   "author" : "vividsnow",
   "description" : "background sound inspired by rukano [tweet](http://goo.gl/ttj30)",
   "ancestor_list" : [],
   "labels" : [
      "experimental",
      "background"
   ],
   "code" : "(\r\nvar max_spawn = 40; // reduce if get high load\r\nvar r_prob = 0.5; // prob of field rotation\r\nfork { loop { // original rukano tweet: http://goo.gl/ttj30\r\n\tvar len = 16.rrand(3.5);\r\n\tvar h = [100,800,3000].choose;\r\n\tplay {\r\n\t\tvar sig = Splay.ar({\r\n\t\t\t    SinOsc.ar(exprand(60,h),0,0.1)\r\n\t\t    } ! max_spawn.rrand(2), \r\n\t\t\t1, \r\n\t\t\tLFGauss.ar(len,1/4.rrand(2.0),0,0,2)\r\n\t\t);\r\n\t\tr_prob.coin.if({ Rotate2.ar(sig[0],sig[1],LFSaw.kr((len/8).rrand(len).reciprocal * [-1,1].choose)) },{ sig });\r\n\t};\r\n\tlen.wait;\r\n}};\r\nfork { loop {\r\n\tvar len = 16.rrand(3.5);\r\n\tvar top_freq = Array.rand(10, 100, 7000).choose;\r\n\tvar ugens = [LFPulse,SinOsc,LFSaw,LFNoise2];\r\n\tvar kind = 0.5.coin.if({ugens},{[ugens.choose]}); // mixed or not\r\n\tplay { \r\n\t\tvar sig = Splay.ar({ kind.choose.ar(\r\n\t\t\t0.5.coin.if({\r\n\t\t\t\tLine.kr(\r\n\t\t\t\t\ttop_freq.linlin(100, 7000, 40, 300).perform(0.5.coin.if({ \\exprand },{ \\rand }), top_freq),\r\n\t\t\t\t\ttop_freq.linlin(100, 7000, 40, 300).perform(0.5.coin.if({ \\exprand },{ \\rand }), top_freq),\r\n\t\t\t\t\tlen.rrand(len/4)\r\n\t\t\t\t)},{\r\n\t\t\t\t\ttop_freq.linlin(100, 7000, 40, 300).perform(0.5.coin.if({ \\exprand },{ \\rand }), top_freq)\r\n\t\t\t\t}\r\n\t\t\t), \r\n\t\t\tmul: 0.5.coin.if({0.05.rrand(0.25)},{Line.kr(0.3.rrand(0), 0.3.rrand(0), (len/4).rrand(len))})\r\n\t\t)} ! 5.exprand(max_spawn))\r\n\t\t*\r\n\t\tLFGauss.kr(\r\n\t\t\tLine.kr(\r\n\t\t\t\t(1..20).choose.linexp(1, 20, 1/10, 20), \r\n\t\t\t\t(1..20).choose.linexp(1, 20, 1/10, 20), \r\n\t\t\t\tlen.rrand(len/4)\r\n\t\t\t), \r\n\t\t\t(3,3.2..6).choose.reciprocal, \r\n\t\t\tloop: 0.7.coin.binaryValue\r\n\t\t)\r\n\t\t*\r\n\t\tEnvGen.kr(Env([0,1,0],[0.03.exprand(2), len.rrand(len/2)],[4.rrand(-4)]), doneAction: 2);\r\n\t\tr_prob.coin.if({ Rotate2.ar(sig[0],sig[1],LFSaw.kr((len/8).rrand(len).reciprocal * [-1,1].choose)) },{ sig });\r\n\t};\r\n\tlen.postln.wait;\r\n}};\r\nfork { loop { \r\n\tvar len = 40.rrand(5.0);\r\n\tvar ugens = [Klank, DynKlank];\r\n\tvar kind = 0.5.coin.if({ugens},{[ugens.choose]}); // mixed or not\r\n\tplay {\r\n\t\tvar sig = LPF.ar(\r\n\t\t\tSplay.ar({ kind.choose.ar(\r\n\t\t\t\t`[\r\n\t\t\t\t\tArray.perform(0.5.coin.if({\\rand},{\\exprand}), 10, 60.exprand(300), 18000.rrand(4500)),\r\n\t\t\t\t\tArray.rand(10, 0.05, 0.25),\r\n\t\t\t\t\tArray.rand(10, 0, pi),\r\n\t\t\t\t],\r\n\t\t\t\tImpulse.ar(TExpRand.kr(0.1, 10, Dust.kr((2,4..16).choose/len))),\r\n\t\t\t\t0.5.coin.if({1},{Line.kr(1, 0.5.rrand(3), 0.5.rrand(len))})\r\n\t\t\t) } ! 1.exprand(max_spawn)),\r\n\t\t\t2000.rrand(18000),\r\n\t\t\tEnvGen.kr(\r\n\t\t\t\tEnv(\r\n\t\t\t\t\tArray.rand(8, 0.2, 0.01).add(0).normalize * 0.1.rrand(0.33), \r\n\t\t\t\t\tArray.rand(7, 0, 1.0).add(1).normalizeSum * len,\r\n\t\t\t\t\tArray.rand(8, -4, 4.0) \r\n\t\t\t\t), \r\n\t\t\t\tdoneAction: 2\r\n\t\t\t)\r\n\t\t);\r\n\t\tr_prob.coin.if({ Rotate2.ar(sig[0],sig[1],LFSaw.kr((len/8).rrand(len).reciprocal * [-1,1].choose)) },{ sig });\r\n\t};\r\n\tlen.postln.wait; \r\n}};\r\n)",
   "id" : "1-1gt",
   "is_private" : null
}
