{
   "ancestor_list" : [],
   "description" : "SynthDef & Pbind bass line demo made for SCLOrk in 2021",
   "name" : "Herbie Hancock's Chameleon",
   "author" : "Bruno Ruviaro",
   "id" : "1-5cF",
   "is_private" : null,
   "code" : "// Herbie Hancock's Chameleon\r\n// SynthDef and Pbind\r\n// made for SCLOrk in 2021\r\n\r\n(\r\nSynthDef(\"bassy\", {arg out=0, freq=440, amp=0.1, att = 0.01, rel = 0.01, gate=1, pan=0;\r\n\tvar snd, env, saw, sine;\r\n\tenv = Env.asr(attackTime: att, sustainLevel: amp, releaseTime: rel).kr(gate: gate);\r\n\tsaw = Saw.ar(freq: freq * Array.rand(16, 0.99, 1.01), mul: env / 3);\r\n\tsine = SinOsc.ar(\r\n\t\tfreq: freq * [0.5, 1, 2],\r\n\t\tmul: env * [1, 0.5, 0.4]\r\n\t).tanh.distort / 4;\r\n\tsnd = saw + sine;\r\n\tsnd = FreeVerb.ar(snd, 0.3, 0.4, 0.9);\r\n\tsnd = LPF.ar(snd, XLine.kr(15000, 700, 0.3));\r\n\tsnd = Pan2.ar(Mix(snd), pan);\r\n\tsnd = Limiter.ar(snd);\r\n\tDetectSilence.ar(snd, doneAction: 2);\r\n\tOut.ar(out, snd);\r\n}).add;\r\n)\r\n\r\n~bpm = TempoClock.new(90/60).permanent_(true);\r\n\r\n(\r\np = Pbind(\r\n\t\\instrument, \"bassy\",\r\n\t\\dur, Pseq([\r\n\t\t0.25, Rest(0.5), 0.25, // beat 1\r\n\t\tRest(0.5), 0.25, Rest(0.25), // beat 2\r\n\t\tRest(0.5), 0.5, // beat 3\r\n\t\t0.5, 0.5 // beat 4\r\n\t], inf),\r\n\t\\midinote, Pseq([\r\n\t\t34, \\rest, 44, // 1\r\n\t\t\\rest, 46, \\rest, // 2\r\n\t\t\\rest, 36, // 3\r\n\t\t37, 38, // 4\r\n\t\t39, \\rest, 46, // 1\r\n\t\t\\rest, 49, \\rest, // 2\r\n\t\t\\rest, 31, // 3\r\n\t\t32, 33 // 4\r\n\t], inf),\r\n\t\\amp, Pseq([\r\n\t\t1, \\rest, 1, // 1\r\n\t\t\\rest, 1, \\rest, // 2\r\n\t\t\\rest, 1, // 3\r\n\t\t1, 1, // 4\r\n\t\t1, \\rest, 1, // 1\r\n\t\t\\rest, 1, \\rest, // 2\r\n\t\t\\rest, 1, // 3\r\n\t\t1, 1 // 4\r\n\t], inf) * 0.2,\r\n\t\\att, 0.001,\r\n\t\\rel, 0,\r\n\t\\legato, 0.9,\r\n).play(~bpm);\r\n)\r\n\r\np.stop;",
   "labels" : [
      "sclork",
      "chameleon",
      "hancock"
   ]
}
