{
   "code" : "(\r\nNdef(\\sandlizard).fadeTime = 0.2;\r\nNdef(\\sandlizard).quant = 1;\r\nNdef(\\sandlizard).put(0, { arg amp=0.1;\r\n\tvar sig;\r\n\tvar sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8;\r\n\tvar freq = 170;\r\n\tvar size;\r\n\tvar time;\r\n\tvar env1, env2, env3;\r\n\tvar env0;\r\n\tvar osig;\r\n\tvar chords;\r\n\tvar bufnum = LocalBuf(s.sampleRate * 4,2);\r\n\tvar bufgate, stuttrig, choosetrig, recordtrig;\r\n\tvar attack, decay, stutter;\r\n\tvar env;\r\n\tbufnum.clear;\r\n\tchords = Duty.kr(4, 0, Dseq([\r\n\t\tDseq([\r\n\t\t\t[0,4,7],\r\n\t\t\t[0,3,6],\r\n\t\t],1),\r\n\t\t[0,5,8,3+24],\r\n\t\t[2,5,8],\r\n\r\n\r\n\t\tDseq([\r\n\t\t\t[0,4,7],\r\n\t\t\t[0,3,6],\r\n\t\t],2),\r\n\t\t[1,4,8,14],\r\n\t\t[0,9,6],\r\n\t\t[0,5,8,3+24],\r\n\t\t[2,5,8],\r\n\t],inf)).lag(0.4).midiratio ;\r\n\tfreq = freq * [1/2,1/4,1/8,1,2,3,4];\r\n\tfreq = freq *.t chords;\r\n\r\n\r\n\t// gen\r\n\r\n\tsig = SinOsc.ar(freq);\r\n\tsig = sig.flat;\r\n\r\n\t// stage1\r\n\r\n\tsig1 = Friction.ar(sig, friction: 0.41322e-7 * SinOsc.kr(0.01/(1..sig.size)).range(1,11111), mass: 1.05501 * SinOsc.kr(0.1/(1..sig.size)+0.01).range(1,41));\r\n\tsig = SelectX.ar(SinOsc.kr(1/(1..sig.size)+0.01).range(0.5,1) , [sig, sig1]);\r\n\r\n\tsig = Limiter.ar(sig, (-1).dbamp);\r\n\r\n\t// stage2\r\n\r\n\tsig1 = sig * sig.clip2(0.1);\r\n\tsig = SelectX.ar(SinOsc.kr(0.1/(1..sig.size)+0.001+(pi/14)).range(0.5,1) , [sig, sig1]);\r\n\tsig = sig * SinOsc.kr(1/(1..sig.size)+(pi/100)).range(0,1);\r\n\r\n\t// panning\r\n\r\n\tsig = Pan2.ar(sig, {LFNoise1.kr(1/2).range(-1.0,1.0)} ! sig.size, amp).flop;\r\n\r\n\t// fx1\r\n\r\n\tbufgate = Duty.kr(1/2, 0, Dseq([\r\n\t\t0,0,0,0, 0,0,0,0,\r\n\t\t0,0,0,0, 0,0,0,0,\r\n\t\t0,0,0,0, 0,0,0,1,\r\n\t\t0,1,0,0, 0,0,0,0,\r\n\t\t0,0,0,1, 0,0,0,1,\r\n\t\t0,1,1,1, 0,0,1,0,\r\n\t\t1,\r\n\t],inf));\r\n\tchoosetrig = bufgate > 0;\r\n\tstutter = Duty.kr(1, 0, Dseq(1/[\r\n\t\t2,16,4,8,\r\n\t\t4,8,3,10,\r\n\t\t8,8,2,12,\r\n\t\t6,2,8,16,\r\n\t\t4\r\n\t],inf));\r\n\tstuttrig = TDuty.ar(stutter , choosetrig + Changed.kr(stutter), 1);\r\n\trecordtrig = Trig1.kr(choosetrig, 0.01);\r\n\r\n\r\n\tsig = sig.flop.sum;\r\n\tattack = 0.01;\r\n\tdecay = 0.01;\r\n\tenv = EnvGen.ar(Env([0,1,1,0],[attack, stutter-attack-decay, decay]), stuttrig);\r\n\tRecordBuf.ar(sig, bufnum, 0, 1, 0, run:1,loop:1,trigger: recordtrig,doneAction:0);\r\n\tsig1 = PlayBuf.ar(2, bufnum, rate:1/2, trigger:stuttrig,startPos:0, loop:1) * env;\r\n\tsig1 = sig1 * 1.2;\r\n\tsig = SelectX.ar( bufgate.lag(0.01)/1.2, [sig, sig1]);\r\n\r\n\t// fx2\r\n\r\n\tsig1 = sig.round(0.1 * SinOsc.kr(1/7).range(0,1));\r\n\tsig1 = BPF.ar(sig1 ! freq.flat.size, freq.flat, 0.1).sum;\r\n\tsig = SelectX.ar( Duty.kr(1, 0, Dseq([\r\n\t\t0,0,0,0, 0,0,0,0,\r\n\t\t0,0,0,0, 0,0,0,0,\r\n\t\t0,0,1,0, 0,0,0,0,\r\n\t\t0,1,0,0, 1,1,0,0,\r\n\t\t1,0,1,0, 0,0,1,0,\r\n\t\t1\r\n\t],inf)).lag(0.41)/1.2, [sig, sig1]);\r\n\r\n\t// fadein\r\n\r\n\tsig = sig * Line.ar(0.001,1,20).explin(0.001,1,0,1);\r\n\r\n\tsig;\r\n}).play;\r\n\r\n\r\n)",
   "id" : "1-4X8",
   "is_private" : null,
   "labels" : [
      "pad",
      "lizard",
      "church"
   ],
   "description" : "",
   "ancestor_list" : [],
   "name" : "sandlizard",
   "author" : "grirgz"
}
