{
   "description" : "A little fork. I left all the old code for historical reasons",
   "ancestor_list" : [
      "1-4VB"
   ],
   "name" : "Re: Algorithmic melancholy",
   "author" : "grirgz",
   "code" : "(\r\n\r\nSynthDef(\\plop, { arg out=0, amp=0.1, gate=1, pan=0, freq=200, t_trig=1,\r\n\t\targ1=100, arg2=200, decay=0.01, flag=0.1, pluckdecay=3.1;\r\n\tvar sig;\r\n\tsig = Formant.ar( \r\n\t\tLFNoise0.kr( 0.05, 2.5, 7) * arg1, \r\n\t\targ2,\r\n\t\t500.0.rrand(700) \r\n\t) * Trig.kr(t_trig, decay);\r\n\r\n\r\n\tsig = Pluck.ar( \r\n\t\tBrownNoise.ar(0.5), \r\n\t\tsig, \r\n\t\t0.025, \r\n\t\tfreq.reciprocal.lag(flag), \r\n\t\tpluckdecay\r\n\t) * 0.6;\r\n\tsig = sig * EnvGen.ar(\\adsr.kr(Env.adsr(0.4,0.1,0.8,7.1)),t_trig,doneAction:0);\r\n\tEnvGen.ar(Env.adsr(0.4,0.1,0.8,7.1),gate,doneAction:2);\r\n\tsig = LeakDC.ar(sig);\r\n\tsig = Pan2.ar(sig, pan, amp);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n\r\n)\r\n\r\n(\r\n~baseFreq = 220;\r\n~scale = Scale.nikriz.ratios * ~baseFreq;\r\n//~scale = Scale.dorian.ratios * ~baseFreq;\r\n//~scale = Scale.minor.ratios * ~baseFreq;\r\n\r\n8.do { arg nn;\r\n\tvar nnn = nn+1;\r\n\r\nPdef((\\plop++nn).asSymbol, Pmono(\r\n\t//\\instrument, \\plop,\r\n\t\\plop,\r\n\t\\arg1, 100,\r\n\t\\arg2, Pwhite(40,4000),\r\n\t\\arg2, 3000,\r\n\t\\decay, Pwhite(0.01,0.1),\r\n\t\\decay, 0.01*nnn,\r\n\t\\decay, 0.1/nnn,\r\n\t\\adsr, Pseq([\r\n\t\t[ Env.adsr(0.1,0.1,0.8,3.3) ],\r\n\t],inf), \r\n\t\\freq, Pwhite(100,1500),\r\n\t\\freq, Prand([100,1500,200,500,100],inf) * 0.7,\r\n\t\\freq, Prand([100,1500,200,500,100],inf) * 1,\r\n\t\\freq, Prand([100,1000,200,500,300,1000],inf) * 1,\r\n\t\\freq, Pseq([100,1500,200,500,2000,100,250],inf),\r\n\t\\freq, Pseq([\r\n\t\t100,1500,200,500,\r\n\t],inf),\r\n\t\\freq, Pseq([\r\n\t\t100,1500,200,500,\r\n\t\t100,1500,200,500,\r\n\t\t100,1500,200,500,\r\n\t\t1000,100,1000,\r\n\t],inf) * Pseq([1.7,0.2,0.7,0.5],inf) * 1.0,\r\n\t\\freq, Pseq([\r\n\t\t90,250,470,\r\n\t\t110,150,270,\r\n\r\n\t\t90,150,270,\r\n\t\t110,750,270,\r\n\t],inf) * Pseq([\r\n\t\t3,1,4,1.5,\r\n\t\t6,4,0.8,1.5,\r\n\t],inf) * Pseq([1,0.8,0.5,1.2],inf).stutter(32),\r\n\t\\freq, Pseq([\r\n\t\t//Pser([100,1000],16),\r\n\t\t//Pser([100,2000],16),\r\n\t\t//Pser([200,1000*nnn],16),\r\n\r\n\t\tPser([200,100]*nnn,16),\r\n\t\tPser([200,400]*nnn,16),\r\n\t\tPser([20,40]*nnn,16),\r\n\t\t//100*nnn\r\n\t],inf),\r\n\t\\freq, Pseq([\r\n\t\t//200*log(nnn+1)\r\n\t\tPser([Pfuncn({~scale.foldAt(nn)},1)],inf) * Pseq([1,2,1/6],1).stutter(16),\r\n\r\n\t\tPser([200,100]*nnn,16),\r\n\t\tPser([200,400]*nnn,16),\r\n\t\tPser([20,40]*nnn,16),\r\n\r\n\t\tPser([log(nnn+7)*200],32),\r\n\t],inf),\r\n\t\\flag, Pseq([\r\n\t\tPrand([\r\n\r\n\t\t//Pser([1,0.1,1,0.1],16),\r\n\t\t//Pser([1,0.1,1,0.1]/2+0.3,16),\r\n\t\t0.05*nnn,\r\n\t\t0.1,\r\n\t\t//0.7*nnn,\r\n\t\t],inf)\r\n\t\t//Pser([1.12],16),\r\n\t\t//Pser([0.08],16),\r\n\r\n\t],inf),\r\n\t\\lag, Pseg(Pseq([0,0.31],inf), 8)*nn,\r\n\t\\arg2, Pkey(\\freq),\r\n\t\\arg1, Pkey(\\freq),\r\n\t\\sustain, 0.4,\r\n\t\\dur, Pwhite(0.1,0.4) * 0.8,\r\n\t\\dur, Pseq([0.5,1,1,0.5],inf) * 0.2,\r\n\t\\dur, Pseq([0.5,1,1,0.5],inf) * Pseg(Pseq([3,0.2,0.1],inf), 16),\r\n\t\\amp, min(1,Pkey(\\dur)*3) * 1.7\r\n)).play;\r\n\r\n}\r\n)",
   "is_private" : null,
   "id" : "1-4VC",
   "labels" : [
      "code fork",
      "generative"
   ]
}
