// title: Entities // author: grirgz // description: // code: ( Ndef(\ota, { arg freq=200, pan=0, amp=0.1; var sig; var env1, env2, env3, env4, env5, env6, env7, env8; var sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8; var fac = 1/SelectX.kr( SinOsc.kr(1/113).range(0,6), [1/2,1,2,4,8,64,128] )/8; env1 = EnvGen.ar(Env([42,21,42,30,84],[4,4,7.5,0.5]/fac).circle, 1); env2 = EnvGen.kr(Env([0,0,2,1],[4,4,4]).circle, 1); env3 = XLine.kr(1,0.1,20*1); freq = 8.collect({ arg x; freq + ( env1 * x ) + [0,SinOsc.kr(x+1, mul:env2).range(0,10*x)]; }); //freq.debug.shape.debug("freq"); sig = SinOsc.ar( freq / [1,2,4]); //sig.shape.debug("sig1"); sig = sig.collect({ arg isig, x; isig = SelectX.ar( SinOsc.kr(x+1/34).range(0,1), [isig, isig.fold2(env3)]); isig = SelectX.ar( SinOsc.kr(1/223, 3pi/2).range(0,1), [isig, ( isig * SinOsc.kr(1/48 * ( x + 1 )).range(1,100) ).tanh]); }); //sig.shape.debug("sig2"); sig1 = sig.flop[1]; sig = sig.flop[0]; //sig.debug("sig"); sig1 = Pan2.ar(sig1, SinOsc.ar(sig1.size.collect({ arg x; SinOsc.kr(x/10+1.2).range(0,8) })) * SinOsc.kr(1/48).range(0,1), amp).mean; sig = Pan2.ar(sig, SinOsc.ar(sig.size.collect({ arg x; SinOsc.kr(x/10+1.1).range(0,8) })) * SinOsc.kr(1/58).range(0,1), amp).mean; sig = sig + sig1; sig = sig / 2.0; sig = LPF.ar(sig, 1999); sig; }).play; );