{
   "ancestor_list" : [],
   "description" : "",
   "author" : "grirgz",
   "name" : "kick feedback",
   "code" : "~bus = Bus.audio(s,2);\r\n\r\n(\r\n~name = \\kickfb;\r\n\r\nSynthDef(~name, { |out=0, amp=0.1, pan=0, release=0.26, fratio=1.5, freqpan=0.01, spread=0.8, timeScale=1|\r\n\tvar env0, env1, env1m, son;\r\n\r\n\t//freqpan = [-1,0,1] * freqpan;\r\n\tfreqpan = [1,0,-1] * freqpan;\r\n\tenv0 = \\env0.kr(Env.new([9.5, 1, 0.5, 0], [0.105, 0.16, 00.2], [-4, -2, -4]));\r\n\tenv1 = \\env1.kr(Env.new([210, 29, 59], [0.105, 0.29], [-4, -5]));\r\n\t\r\n\tenv0 =  EnvGen.ar(env0, doneAction:2, timeScale:timeScale);\r\n\tenv1 = EnvGen.ar(env1, timeScale:timeScale);\r\n\tenv1m = env1.midicps;\r\n\t\r\n\tson = LFPulse.ar(env1m * freqpan, 0, 0.5, 1, -0.5);\r\n\tson = son + WhiteNoise.ar(1);\r\n\tson = LPF.ar(son, env1m*fratio, env0);\r\n\tson = son + SinOsc.ar(env1m, 0.5, env0);\r\n\t\r\n\tson = son * 1.2;\r\n\tson = son.clip2(1);\r\n\r\n\tson = son * amp;\r\n\tson = Splay.ar(son, spread, amp, pan);\r\n\t\r\n\tOffsetOut.ar(out, son);\r\n}).add;\r\n);\r\n\r\n(\r\n\r\nPdef(~name, Pbind(\r\n\t\\instrument, ~name,\r\n\t\\env0, [ Env.new([0.5, 1, 0.5, 0], [0.005, 0.16, 0.01], [-4, -2, -4]) ],\r\n\t\\env1, [ Env.new([110, 53, 29], [0.015, 0.29], [-4, -5]) ],\r\n\t\\pan, Pseq([\r\n\t\tPser([0],17),\r\n\t\tPwhite(-1.0,1.0,16-1)\r\n\t],inf).stutter(1) * 0.5,\r\n\t\\spread, 0.1,\r\n\t\\dur, 1/4,\r\n\t\\out, ~bus,\r\n\t\\amp, 0.51,\r\n\t\\isRest, Pseq([1,0,1,0, 0,0,0,0],inf).coin.not,\r\n)).play;\r\n\r\nNdef(~name, {\r\n\tvar in = InFeedback.ar(~bus,2);\r\n\tvar sig = in;\r\n\r\n\tsig = Fb({ arg fb;\r\n\t\tvar del;\r\n\t\tvar freqshift;\r\n\t\tfb = sig + (fb * 0.97 * \\fb.kr(1));\r\n\t\tfreqshift = \\freqshift.kr(1);\r\n\t\tfreqshift = Duty.ar(1, 0, Dseq([10,0,-20,0]*freqshift,inf) + Dstutter(8,Dseq([0,-50,0,50],inf)));\r\n\t\tfb = fb + FreqShift.ar(fb, (0-[1,2,3,4,5,6,7,8,9].clump(2).scramble*freqshift)).sum/6;\r\n\t\tfb;\r\n\r\n\t},\\delay.kr(0.1));\r\n\tsig = Normalizer.ar(sig, 0.99,0.01);\r\n\tsig = sig / 2;\r\n\t\r\n\tsig;\r\n}).play;\r\n);\r\n\r\nNdef(~name).edit\r\nNdef(~name).end\r\nNdef(~name).play\r\nNdef(~name).set(\\fb, 1, \\delay, 0.1, \\freqshift, 1)",
   "id" : "1-4Wl",
   "is_private" : null,
   "labels" : [
      "effect",
      "feedback",
      "kick"
   ]
}
