{
   "author" : "blaz.pavlica",
   "name" : "Diplopterys Cabrerana",
   "description" : "This is the code used for the first song on my album Blaž Pavlica - Virtual Entheogen\r\n\r\nhttps://zvocniprepihi.bandcamp.com/album/bla-pavlica-virtual-entheogen",
   "ancestor_list" : [],
   "labels" : [],
   "code" : "(\r\nSynthDef(\\sfgrain, {\r\n\targ bufnum1=0, bufnum2=1, pan=1.0, startPos=0.0, dur=0.04, amp1=0.5, amp2=0.5, lp=15000, hp=60, ap=1000, fb=0.0, main=0.5, fbmix=0.0, attack= 0.2, release=0.3, rate=0.5, bump1=200, rateG=20.0;\r\n\tvar grain1, grain2, grain11, grain22, snd, snd2, local, trig, trig2, env, chain, rateV;\r\n\tenv = (EnvGen.kr(Env.linen(attack,dur,release),doneAction:2)-0.001) * main;\r\n\trateV=BufRateScale.kr(bufnum1)*rate;\r\n\tgrain1= PlayBuf.ar(2,bufnum1, rateV, 1, BufFrames.ir(bufnum1)*startPos,1)* env;\r\n\tgrain2= PlayBuf.ar(2,bufnum2, rateV, 1, BufFrames.ir(bufnum2)*startPos, 1)* env;\r\n\tgrain11= PlayBuf.ar(2,bufnum1,rateV*2, 1, BufFrames.ir(bufnum1)*startPos,1)* env;\r\n\tgrain22= PlayBuf.ar(2,bufnum2, rateV*2, 1, BufFrames.ir(bufnum2)*startPos, 1)* env;\r\n\r\n\tlocal=LocalIn.ar(2);\r\n\r\n\ttrig=Amplitude.kr(local,0.05,0.05)+0.5;\r\n\ttrig2=Impulse.kr(trig*170)+Impulse.kr(rateG);\r\n\tlocal=local*fb;\r\n\tlocal=Delay1.ar(local);\r\n\tlocal=BAllPass.ar(local, ap,1);\r\n\r\n\tsnd = (grain1*amp1)+(grain2*amp2)+local+(grain11*amp1*0.7)+(grain22*amp2*0.7);\r\n\tsnd = BLowPass.ar(snd, lp*trig, 3);\r\n\tsnd = BHiPass.ar(snd, hp, 1);\r\n\tsnd = BPeakEQ.ar(snd, bump1,1,4);\r\n\r\n\tsnd2 = GrainIn.ar(2,trig2,dur*0.66,snd+local, pan,-1);\r\n\tsnd2 = BHiPass.ar(snd2,lp*1.05);\r\n\tsnd2= BLowPass.ar(snd2,lp*trig*0.9);//+lp*(trig*Decay.kr(trig2,0.3)*0.5));\r\n\tLocalOut.ar(snd);\r\n\tOut.ar(0,Pan2.ar((snd+snd2)*main, pan));\r\n}).add;\r\n)\r\n(//1\r\n~buf1 = Buffer.read(s, \"C:/TERensko/prepih/sel/Tisina_jama1.wav\");\r\n~buf2 = Buffer.read(s, \"C:/TERensko/prepih/sel/tery_poje2.wav\");\r\n)\r\n(\r\nSynth(\\sfgrain, [\\bufnum1, ~buf1.bufnum, \\bufnum2, ~buf2.bufnum, \\startPos,0.0, \\amp1, 1.0, \\amp2, 1.0, \\pan, 0.5, \\mix, 0.5, \\dur, 1]);\r\n)\r\n(\r\nvar w, slid, slid2, slid3, slid4, slid5, slid6, slid7, slid8, slid9, lastval, lastval2, ampval1,ampval2, work, pan, jump, hop, jumpF, allpF, feed, rate;\r\nlastval=0.2;\r\nlastval2=0.0;\r\nampval1=0.5;\r\nampval2=0.0;\r\npan=0.0;\r\njump=0.0;\r\njumpF=2;\r\nwork=inf;\r\nhop=1;\r\nallpF=20;\r\nfeed=0.0;\r\nw=Window(\"My Window\", Rect(100,300,1000,600));\r\nslid=Slider(w,Rect(10,10,400,40));\r\nslid.value_(0.2);\r\n~enac = ControlSpec(0,1,default:0.2);\r\nslid2=Slider(w,Rect(10,60,400,40));\r\nslid5=Slider(w,Rect(10,110,400,40));\r\n~hc = ControlSpec(1,20, step:1);\r\nh=slid6=Slider(w,Rect(10,160,400,40));\r\nslid3=Slider(w,Rect(10, 210, 40, 300));\r\nslid4=Slider(w,Rect(60, 210, 40, 300));\r\nslid7=Slider(w,Rect(460, 10, 400, 40));\r\n~apc = ControlSpec(10,20000,\\exponential);\r\nslid8=Slider(w,Rect(460, 60, 400, 40));\r\n~fbc = ControlSpec(0,0.99);\r\nslid9=Slider(w,Rect(460, 110, 400, 40));\r\n~rc = ControlSpec(0.2,2);\r\na = StaticText(w, Rect(10, 510, 200, 20));\r\na.string = \"amp1\";\r\na = StaticText(w, Rect(60, 510, 200, 20));\r\na.string = \"amp2\";\r\na = StaticText(w, Rect(420, 110, 200, 20));\r\na.string = \"hopAmt\";\r\na = StaticText(w, Rect(420, 160, 200, 20));\r\na.string = \"hopF\";\r\na = StaticText(w, Rect(870, 10, 200, 20));\r\na.string = \"apF\";\r\n\r\n\r\nslid.action_({lastval= ~enac.map(slid.value);});\r\nslid2.action_({lastval2= slid2.value;});\r\nslid3.action_({ampval1 = slid3.value;});\r\nslid4.action_({ampval2 = slid4.value;});\r\nslid5.action_({jump = slid5.value;});\r\nslid6.action_({jumpF = ~hc.map(slid6.value);});\r\nslid7.action_({allpF = ~apc.map(slid7.value);});\r\nslid8.action_({feed = ~fbc.map(slid8.value);});\r\nslid9.action_({rate = ~rc.map(slid9.value);});\r\n~fura={\r\n\tblock { |break|\r\n\t\tinf.do{arg i;\r\n\t\t\tvar prop, timestart, timeend, num, hip, all;\r\n\t\t\tnum=1100;\r\n\t\t\tprop= (i%num)/num;\r\n\t\t\thip=i%jumpF;\r\n\t\t\thop = (hop + if ( hip == 0,\r\n\t\t\t\t{ 1 },\r\n\t\t\t\t{ 0 }\r\n\t\t\t))%2;\r\n\t\t\t(jump*hop).postln;\r\n\t\t\ttimestart= prop*0.7;\r\n\t\t\ttimeend= prop*(0.7+(0.3*lastval*(jump*hop)));\r\n\t\t\tSynth(\\sfgrain,[\\bufnum1, ~buf1.bufnum,\r\n\t\t\t\t\\bufnum2, ~buf2.bufnum,\r\n\t\t\t\t\\startPos,timestart +(lastval2*(timeend-timestart)),\r\n\t\t\t\t\\pan, 0.0,\r\n\t\t\t\t\\dur, 0.3+(lastval2*1.5),\r\n\t\t\t\t\\amp1, ampval1,\r\n\t\t\t\t\\amp2, ampval2,\r\n\t\t\t\t\\apf, all,\r\n\t\t\t\t\\fb, feed,\r\n\t\t\t\t\\fbmix, 0.5,\r\n\t\t\t\t\\rate, rate\r\n\t\t\t]);\r\n\t\t\t(((lastval*0.3)+0.01).max(0.01)).wait;\r\n\t\t\tif(work==0, {break.value(1) } );\r\n\t\t};\r\n}\r\n};\r\nw.front;\r\n)\r\n~fura.fork;",
   "is_private" : null,
   "id" : "1-57J"
}
