{
   "name" : "Detuneable fat-saw with a pattern",
   "author" : "moncrey",
   "description" : "",
   "ancestor_list" : [],
   "labels" : [
      "pattern",
      "synth"
   ],
   "code" : "(\r\nSynthDef(\\fatsaw,\r\n\t{\r\n\t\targ freq=440, amp=0.3, fat=0.0033, ffreq=2000, atk=0.001, dec=0.3, sus=0.5, rls=0.1,gate=1;\r\n\r\n\t\tvar f1,f2,f3,f4,synth;\r\n\r\n\t\tf1=freq-(freq*fat);\r\n\t\tf2=freq-(freq*fat/2);\r\n\t\tf3=freq+(freq*fat/2);\r\n\t\tf4=freq+(freq*fat);\r\n\r\n\t\tsynth = LFSaw.ar([f1,f2,f3,f4],[0,0.001,0.002,0.004,0.008]);\r\n\t\tsynth = synth * EnvGen.kr(Env([0,1,sus,0],[atk,dec,rls],'lin',2),gate,doneAction:0);\r\n\t\tsynth=Splay.ar(synth,0.7);\r\n\t\tsynth=RLPF.ar(synth,ffreq*Linen.kr(gate,0.1,0.4,0.2,0),0.4);\r\n\t\tOut.ar([0,1],synth*amp);\r\n},[0.1,0.3,4,2]).add;\r\n)\r\n(\r\nTempoClock.default = TempoClock.new(2);\r\nfork{\r\n\r\n\tz = Synth(\\fatsaw,[\\gate,0,\\ffreq,500,\\fat,0.5]);\r\n\r\n\ta=Pseq([0,7,12,5],inf).asStream; // musical degrees\r\n\tc = Pseq([40,38,45,47],inf).asStream; // root midi notes\r\n\te = Pseq([0.825,0.375,0.25,0.25],inf).asStream; // note durations\r\n\tf = Pseq([1000,1500,2000,2500],inf).asStream; // filter freq value\r\n\r\n\t0.1.wait;\r\n\tz.set(\\gate,1);\r\n\r\n\t//set first root note\r\n\td = c.next;\r\n\r\n\t8.do{\r\n\r\n\t\t// move filter freq once every 4 notes\r\n\t\tz.set(\\ffreq, f.next);\r\n\t\t4.do {\r\n\t\t\tz.set(\\gate,1);\r\n\t\t\tz.set(\\freq,(a.next + d).midicps);\r\n\t\t\tx=[0.451,0.45,0.449].choose;\r\n\t\t\tx.wait;\r\n\t\t\tz.set(\\gate,0);\r\n\r\n\t\t\te.next.wait;\r\n\t\t};\r\n\r\n\t\td = c.next;\r\n\t};\r\n\t2.wait;\r\n\tz.free;\r\n};\r\n)",
   "is_private" : null,
   "id" : "1-4Vt"
}
