{
   "ancestor_list" : [],
   "description" : "A bunch noise bursts and clicks going through ringing filters, sequenced with patterns.\r\n\r\nmarimba and wood SynthDefs are taken from this blog https://thormagnusson.gitbooks.io/scoring/content/PartII/chapter11.html\r\n\r\nNeeds ChordSymbol quark to work.",
   "author" : "blaz.pavlica",
   "name" : "Noise bursts and clicks going through ringing filters",
   "id" : "1-5iM",
   "is_private" : null,
   "code" : "(\r\n// marimba and wood are taken from this blog https://thormagnusson.gitbooks.io/scoring/content/PartII/chapter11.html\r\nSynthDef(\\marimba, {arg out=0, amp=0.1, t_trig=1, freq=100, rq=0.006;\r\n    var env, signal;\r\n    var rho, theta, b1, b2;\r\n    b1 = 1.99 * 0.9889999999 * cos(0.09);\r\n    b2 = 0.998059.neg;\r\n    signal = SOS.ar(K2A.ar(t_trig), 0.3, 0.0, 0.0, b1, b2);\r\n\tsignal = RHPF.ar(signal*0.8, freq, rq) + DelayC.ar(RHPF.ar(signal*0.9, freq*0.99999, rq*0.999), 0.02, 0.01223);\r\n\tsignal = Decay2.ar(signal, 0.4, 0.3, signal)*20;\r\n\tsignal = signal * Env([0,1,1,0],[0.03,1,0.01]).kr;\r\n\tsignal = HPF.ar(signal,freq);\r\n    DetectSilence.ar(signal, 0.0001, doneAction:2);\r\n    Out.ar(out, signal*(amp*0.4)!2);\r\n}).add;\r\nSynthDef(\\wood, {arg out=0, amp=0.3, pan=0, sustain=0.5, t_trig=1, freq=100, rq=0.06;\r\n    var env, signal;\r\n    var rho, theta, b1, b2;\r\n    b1 = 2.0 * 0.97576 * cos(0.061447);\r\n    b2 = 0.9754.squared.neg;\r\n    signal = SOS.ar(K2A.ar(t_trig), 1.0, 0.0, 0.0, b1, b2);\r\n\tsignal = Decay2.ar(signal, 0.4, 0.8, signal);\r\n\tsignal = Limiter.ar(Resonz.ar(signal, freq, rq*0.5), 0.9);\r\n\tsignal = HPF.ar(signal,freq*0.75);\r\n    env = EnvGen.kr(Env.perc(0.00001, sustain, amp), doneAction:2);\r\n\tDetectSilence.ar(signal, 0.0001, doneAction:2);\r\n    Out.ar(out, Pan2.ar(signal, pan)*env);\r\n}).add;\r\nSynthDef(\\naizi, { arg gate=1, decay =0.2, freq = 500;\r\n\tvar click;\r\n\tvar a = Polar(\\aRho.kr(0.5),\\aTheta.kr(0.0)).asPoint;\r\n\tvar b = Polar(\\bRho.kr(0.5),\\bTheta.kr(0.0)).asPoint;\r\n\tvar nois = WhiteNoise.ar(1)!2*Decay.ar(Env([0,1,0],[0.000001,0.00001]).ar(gate:gate),decay+[0,0.02]);\r\n\tvar env = Env([0,1,1,0],[0,decay*3]).kr(gate:gate,doneAction:2);\r\n\tnois = SOS.ar(nois,1,a.x+[0.3,0],a.y+[0.4,0],b.x+[0,0.15],b.y+[0,0.15]);\r\n\tclick = nois* -24.dbamp * Env([0,1,0],[0.00001,0.03]).kr(gate:gate);\r\n\tclick = DelayC.ar(click,0.1,0.01);\r\n\tclick = LPF.ar(click,(freq*8).max(20).min(20000));\r\n\tclick = HPF.ar(click,(freq*0.25).max(20).min(20000));\r\n\tnois = Limiter.ar(Resonz.ar(nois, freq+[10,0], \\q.kr(0.2)), 0.9) + click;\r\n\t// nois = click;\r\n\tnois = nois + (nois.fold(-0.3,0.4)* -8.dbamp);\r\n\tnois = nois * \\amp.kr(1) * env;\r\n\tOut.ar(\\out.kr(0),nois);\r\n}).add;\r\n~fxBus = Bus.audio(server: s, numChannels: 2);\r\nTempoClock.default.tempo = 58/60\r\n);\r\nNdef(\\fx).play;\r\n(\r\nNdef(\\fx)[1] = { |sig, pitch=1, gat=1, dur=1 |\r\n\tvar in, verb, snd, lp;\r\n\tin = In.ar(~fxBus,2);\r\n\tsnd = in + DelayC.ar(in,0.2,0.001+LFNoise2.kr(0.2!2,0.001),-7.dbamp);\r\n\tsnd = snd + BAllPass.ar(snd,600+LFNoise2.kr(0.2!2,200),0.5+LFNoise2.kr(0.2!2,0.4),-8.dbamp);\r\n\tsnd = snd + DelayC.ar(snd,0.2,0.002+LFNoise2.kr(0.2!2,0.001),-7.dbamp);\r\n\tsnd = snd + BAllPass.ar(snd,700+LFNoise2.kr(0.2!2,200),0.5+LFNoise2.kr(0.2!2,0.4),-9.dbamp);\r\n\tsnd = snd + DelayC.ar(snd,0.2,0.0025+LFNoise2.kr(0.2!2,0.0015),-8.dbamp);\r\n\tsnd = BAllPass.ar(snd,700+LFNoise2.kr(0.2!2,200),0.5+LFNoise2.kr(0.2!2,0.4));\r\n\tverb = FreeVerb.ar(snd,1,0.8,0.9);\r\n\tsnd = snd + HPF.ar(verb * -18.dbamp,250);\r\n\tsnd = snd * -14.dbamp;\r\n\tlp = LPF.ar(in,150);\r\n\tlp = LeakDC.ar(lp.clip(-40.dbamp.neg,-35.dbamp))* 10.dbamp;\r\n\tsnd = in + (snd* -4.dbamp) + (lp * -9.dbamp);\r\n\tsnd;\r\n};\r\n);\r\n(\r\n~scale = Scale.locrian;\r\n~chords = [\\DM,\\Gm,\\Cm,\\Fm,\\DM,\\GM,\\Em,\\Fm,\\DM,\\Gm,\\GM,\\Em,\\DM,\\GM,\\CM,\\Fm]; // needs ChordSymbol quark to work\r\nPdef(\\teN,Pbind(\r\n\t\\instrument, \\naizi,\r\n\t\\db, -20,\r\n\t\\dur, 0.125,\r\n\t\\decay, 0.1,\r\n\t\\q, Pseg([0.2,0.4,0.05,0.2],4,\\lin,inf),\r\n\t\\note, Pstep(~chords.collect({arg b; (b++\"7\").asSymbol }),2,inf).collect({ arg chord;\r\n\t\tchord.collect({ arg note;\r\n\t\t\t([0,1,2,3].collect(note+(_*12)).select((_>11) && (_<30) )-12).sort\r\n\t\t}).flatten\r\n\t}),\r\n\t\\octave, [2,5,7,10], \\db, [-3,-18,-22,-33]+Pseq([[0,0,-50,0],[0,-50,0,0],[-6,-50,0,0]],inf)+Pseq([[0,0,0,-40],[0,0,-20,-40],[0,-5,-10,0],[-6,-10,0,-40]],inf)+Pseq([[2,-2,-10,0],[0,0,0,0]],inf),\r\n\t\\aRho, Pseq([0.5,0.7,0.98].scramble,inf),\r\n\t\\aTheta, Pseq([0,1,2,3].scramble,inf),\r\n\t\\aRho, Pseq([0.0,0.2,0.4,0.6].scramble,inf),\r\n\t\\aTheta, Pseq([pi,pi*0.8,pi*0.6,pi*0.4,pi*0.2,0.0].scramble,inf),\r\n\t\\scale, ~scale,\r\n\t\\out, ~fxBus,\r\n)).play;\r\nPdef(\\mari,Pbind(\r\n    \\instrument, \\marimba,\r\n\t\\note, Pstep(~chords.collect({arg b; (b++\"7\").asSymbol }),2,inf\t).collect({ arg chord;\r\n\t\tchord.collect({ arg note;\r\n\t\t\t[0,1,2,3].collect(note+(_*12)).select((_>6) && (_<25) ).sort\r\n\t\t}).flatten\r\n\t}),\r\n\t\\octave, Prand([6,6,7,[6,7],[7,6],6], inf),\r\n\t\\db, -17,\r\n\t\\dur, Pseq([0.25,0.5,0.25,0.25,0.125,0.125,0.25,0.25],inf),\r\n\t\\out, ~fxBus,\r\n\t\\scale, ~scale,\r\n\t\\rq, Pseg([0.008,0.015,0.002,0.01,0.008],4,\\exp,inf),\r\n)).play;\r\nPdef(\\wood,Pbind(\r\n    \\instrument, \\wood,\r\n\t\\note, Pstep(~chords.collect({arg b; (b++\"7\").asSymbol }),2,inf\t).collect({ arg chord;\r\n\t\tchord.collect({ arg note;\r\n\t\t\t[0,1,2,3].collect(note+(_*12)).select((_>14) && (_<29) ).sort\r\n\t\t}).flatten\r\n\t}),\r\n\t\\octave, Prand([5,4,[4,5],[5,4],5,4,4], inf),\r\n\t\\db, -13,\r\n    \\dur, Pseq([0.25,0.375,0.375,0.25,0.375,0.125,0.25],inf),\r\n\t\\out, ~fxBus,\r\n\t\\rq, Pseg([0.08,0.2,0.02,0.08],4,\\exp,inf),\r\n\t\\scale, ~scale,\r\n\t\\pan, Pwhite(-0.5,0.5,inf),\r\n)).play;\r\n);",
   "labels" : [
      "glass",
      "drums",
      "bells",
      "physical"
   ]
}
