{
   "name" : "Dirty FM Shuffle",
   "author" : "Schemawound",
   "ancestor_list" : [],
   "description" : "Just a dirty FM bass shuffling",
   "labels" : [
      "bass",
      "fm",
      "dirty",
      "shuffle"
   ],
   "code" : "(\r\nfork{\r\n\tSynthDef(\\basicFM, {|out = 0, gate = 1, amp = 1, carFreq = 1000, modFreq = 100, modAmount = 2000, clipAmount = 0.1|\r\n\t\tvar modEnv = EnvGen.ar(Env.adsr(0.5, 0.5, 0.7, 0.1, peakLevel: modAmount), gate);\r\n\t\tvar mod = SinOsc.ar(modFreq) * modEnv;\r\n\t\tvar car = SinOsc.ar(carFreq + mod);\r\n\t\tvar ampEnv = EnvGen.ar(Env.adsr(0.1, 0.3, 0.7, 0.2, peakLevel: amp), gate, doneAction: 2);\r\n\t\tvar clip = clipAmount * 500;\r\n\t\tOut.ar(out, (car * ampEnv * clip).clip(-0.7, 0.7) * 0.1);\r\n\t}).add;\r\n\r\n\ts.sync;\r\n\r\n\tPbind(*[\r\n\t\tinstrument: \\basicFM,\r\n\t\tout: [0, 1],\r\n\t\tdur: Pseq([1/7, 1/3] / 1.2, inf),\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tamp: 1/4,\r\n\t\tcarFreq: Pseq([1, 1, 1, 2] * 350, inf),\r\n\t\tmodFreq: Pkey(\\carFreq) * (1/8),\r\n\t\tmodAmount: Pseq([2, 1, 0.5, 2, 1, 0.5, 2, 1, 2, 1, 0.5, 2, 1, 0.5, 2, 4] * 500, inf),\r\n\t\tclipAmount: Pseq([Pn(0.1, 32), Pn(1, 32)], inf)\r\n\t]).play;\r\n}\r\n)",
   "id" : "1-4Tq",
   "is_private" : null
}
