{
   "description" : "Migration from the old SourceForge wiki.",
   "ancestor_list" : [],
   "name" : "Gabun/Bavaria",
   "author" : "codepool",
   "is_private" : null,
   "id" : "1-56T",
   "code" : "/*\r\nall the patterns are just approximations, not part of 'real' songs.\r\nLicenced under Creative Commons 'some rights reserved'\r\nJulian Rohrhuber (jrh) 2002 / 2005\r\n*/\r\n\r\n// A simulation of a Beng (a Gabon mouth bow):\r\n\r\n(\r\nplay {\r\n  \t\tvar bowRoot, stick, bow, mouth;\r\n\t\tvar speed, stickPattern, rootStickPattern, rootStick, tstick, trigger, hi, lo;\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\tspeed = 0.7;\r\n\t\ttrigger = Impulse.kr(12*speed);\r\n\t\t\r\n\t\tstickPattern = Dseq([\r\n\t\t\t\t\t\tDseq(#[1, 0, 1, 0, 1, 1, 0, 1, 0.3, 1, 0], 8),\r\n\t\t\t\t\t\tDseq(#[1, 0, 1, 0, 0.2, 1, 0, 1, 1, 1, 0], 2),\r\n\t\t\t\t\t\tDseq(#[0, 1, 0, 1, 0, 1, 0, 0, 0.5, 1, 0], 2)\r\n\t\t\t\t], inf) * Dwhite(0.8, 1.2, inf);\r\n\t\t\r\n\t\thi = Dwhite(65.95, 66.05, 1);\r\n\t\tlo = 68;\r\n\t\trootStickPattern = Dseq([hi, hi, lo, hi, lo, lo, hi, lo], inf);\r\n\t\t\r\n\t\t\r\n\t\tstick = Demand.kr(trigger, 0, stickPattern) * trigger;\r\n\t\t\t\t\r\n\t\trootStick = PulseDivider.kr(stick, 3, 3);\r\n\t\tbowRoot = Lag.kr(Demand.kr(rootStick, 0, rootStickPattern).midicps, 0.05, 1/3.5);\r\n\t\t\r\n\t\tbow = CombL.ar(\r\n\t\t\t\t\t\tGrayNoise.ar(Decay2.kr(stick, 0.001, LFNoise1.kr(12, 0.05, 0.1), 0.3)),\r\n\t\t\t\t\t\t0.01,\r\n\t\t\t\t\t\tLag.kr(bowRoot, 0.15).reciprocal,\r\n\t\t\t\t\t\tLFNoise2.kr(0.32, 0.2, 0.5 - (0.2*ToggleFF.kr(rootStick)) * 4)\r\n                                                // Add a little mouse-magic (comment previous line, uncomment the following)\t\t\t\t\t\t\r\n                                                //LFNoise2.kr(0.32, MouseY.kr([0.2,0.005],[100,40],\\exponential), 0.5 - (0.2*ToggleFF.kr(rootStick)) * 4)\r\n\t\t\t\t);\r\n\t\ttstick = Trig.kr(stick,0.01);\t\t \r\n\t\tmouth = RLPF.ar(\r\n\t\t\t\t\t\tbow,\r\n\t\t\t\t\t\tLag.kr(\r\n\t\t\t\t\t\tDemand.kr(tstick, 1,\r\n\t\t\t\t\t\t\t\tDseq([Drand([\r\n\t\t\t\t\t\t\t\t\t\tDrand(#[3, 4, 5, 6], 2),\r\n\t\t\t\t\t\t\t\t\t\tDrand(#[2, 3, 5], 4 * 3),\r\n\t\t\t\t\t\t\t\t\t\tDrand(#[ 2, 4, 6, 3 ], 3 * 4),\r\n\t\t\t\t\t\t\t\t\t\tDseq(#[6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6], 2)\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t], 3)], inf)\r\n\t\t\t\t\t \t), 0.05) * bowRoot,\r\n\t\t\t\t\t\tLFNoise1.kr(0.8, 0.05, 0.1)\r\n\t\t\t\t );\r\n\t\tPan2.ar(LPF.ar(mouth, 2000), -0.3) +\r\n\t\tPan2.ar(HPF.ar(bow * 0.3, 5000), 0.4)\r\n                // If you're using \"mouse-magic\" you can leave out the first Pan2\r\n                // LPF.ar(mouth, 2000) +\r\n\t\t// Pan2.ar(HPF.ar(bow * 0.3, 5000), 0.4)\r\n\r\n\r\n};\r\n)\r\n\r\n// A Bavarian mouth harp:\r\n\r\n\r\n(\r\n\tplay {\r\n\t\t\tvar root, finger, harp, mouth;\r\n\t\t\tvar speed, trigger, troot;\r\n\t\t\tspeed = MouseX.kr(0.7, 1.0) * 6;\r\n\t\t\ttrigger = Impulse.ar(speed + LFNoise2.kr(0.1, 0.1));\r\n\t\t\ttroot = PulseDivider.ar(trigger, 24, 24);\r\n\t\t\troot = Demand.ar(troot, 1, Dseq([ 47, 52 ], inf)).midicps;\r\n\r\n\t\t\tfinger = Demand.ar(trigger, 0,\r\n\t\t\t\t\tDseq([\r\n\t\t\t\t\t\t\tDseq(#[1, 1, 0.05, 1, 0.7, 0.02, 1, 1, 0.1, 1, 0.1, 0.1], 4),\r\n\t\t\t\t\t\t\tDseq(#[1, 1, 1, 0.1, 0.1, 0.2, 1, 1, 0.1, 1, 1, 0.1], 5),\r\n\t\t\t\t\t\t\tDseq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 2] ++ (0 ! 16+2))\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t])\r\n\t\t\t) * trigger;\r\n\t\t\t\r\n\t\t\tharp = Saw.ar(Lag.ar(root, 0.15), Decay.ar(finger, LFNoise1.ar(0.4, 0.3, 0.8), 0.2));\r\n\t\t\tmouth = RLPF.ar(\r\n\t\t\t\t\t\t\tharp,\r\n\t\t\t\t\t\t\tLag.ar(\r\n\t\t\t\t\t\t \t Demand.ar(finger, 0, \r\n\t\t\t\t\t\t\t\t\tDseq([\r\n\t\t\t\t\t\t\t\t\t\tDseq([\r\n\t\t\t\t\t\t\t\t\t\t\tDseq(#[4, 5, 6], 2),\r\n\t\t\t\t\t\t\t\t\t\t\tDseq([6, 5, Drand(#[8, 7], 1)], 4),\r\n\t\t\t\t\t\t\t\t\t\t\tDseq(\r\n\t\t\t\t\t\t\t\t\t\t\t\t#[3, 5, 6, 7, 6, 5, 7, 5, 6, 9, \r\n\t\t\t\t\t\t\t\t\t\t\t\t8, 7, 5, 6, 4, 3], 2)\r\n\t\t\t\t\t\t\t\t\t\t], 3)\r\n\t\t\t\t\t\t\t\t\t], inf)\r\n\t\t\t\t\t\t\t), 0.1) * root,\r\n\t\t\t\t\t\t\tLFNoise1.kr(0.3, 0.05, 0.08),\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tLPF.ar(harp, 2000) * 0.4\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\r\n\t\t Pan2.ar(\r\n\t\t \tLPF.ar(mouth, 4000), \r\n\t\t \tLFNoise1.kr(0.5, 0.3)\r\n\t\t );\r\n\t\t\t\r\n\t};\r\n)\r\n\r\n// Using patterns rather than Demand Ugens:\r\n\r\n\r\n(\r\nSynthDef(\"mursing\", { |freq, harm, t_trig, gate=1, metal=0.5, base=0.5, out, pan, amp=0.1|\r\n\t\t\tvar env, harp, mouth, trigger;\r\n\t\t\tenv = Linen.kr(gate,  doneAction:2);\r\n\t\t\ttrigger = Impulsar.ar(t_trig);\r\n\t\t\tamp = amp * Decay2.ar(trigger, \r\n\t\t\t\t\t\tLFNoise1.kr(5).range(0.0001, 0.01), \r\n\t\t\t\t\t\tLFNoise1.kr(5).range(0.4, 0.8), \r\n\t\t\t\t\t\t0.2\r\n\t\t\t\t\t);\r\n\t\t\tharp = Saw.ar(Lag.kr(freq, 0.15));\r\n\t\t\t\r\n\t\t\tharp = harp + PinkNoise.ar(harp.max(0) * 0.2) * amp * 10;\r\n\t\t\t\r\n\t\t\tmouth = RLPF.ar(\r\n\t\t\t\t\t\t\tharp,\r\n\t\t\t\t\t\t\tLag.kr(harm, LFNoise1.kr(2).range(0.2, 0.3)) * freq,\r\n\t\t\t\t\t\t\tLFNoise1.kr(0.3).range(0.01, 0.05),\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tLPF.ar(harp, 2000) * 0.4\r\n\t\t\t);\r\n\t\t\t\r\n\t\t\tOut.ar(out,\r\n\t\t\t\t Pan2.ar(\r\n\t\t \t\t\tLPF.ar(mouth, 4000) + \r\n\t\t \t\t\t(HPF.ar(harp, 2000) * metal) +\r\n\t\t \t\t\tLPF.ar(harp, 400, 14 * base), \r\n\t\t \t\t\tpan,\r\n\t\t \t\t\tenv\r\n\t\t \t\t)\r\n\t\t\t);\r\n\r\n}).store;\r\n)\r\n\r\n\r\n(\r\nvar a, b;\r\na = 0;\r\nb = 5;\r\nPmono(\\mursing,  \r\n\t\\note, Pseq([Pseq([Pn(a, 24), Pn(b, 24)], 2), Pseq([Pn(a, 12), Pn(b, 12)], 2)], inf),\r\n\t\\octave, 4,\r\n\t\\harm,  Pseq([\r\n\t\t\t\tPseq([ Pseq([4, 1, 5]), Pseq([4, 6, 2]) ], 24),\r\n\t\t\t\tPseq([ Pseq([7, 6, 5]), Pseq([1, 7, 4]) ], 24),\r\n\t\t\t\tPseq([ Pseq([4, 1, 5]), Pseq([4, 6, 2]) ], 12),\r\n\t\t\t\tPseq([ Pseq([7, 6, 5]), Pseq([6, 1, 1]) ], 12)\r\n\t\t\t], inf),\r\n\t\\t_trig, Pswitch([\r\n\t\t\tPseq([1, 0.3, 0.3, 1, 0, 0]), Pseq([1, 0.3, 0, 0, 1, 0])],\r\n\t\t\tPseq([0,0,1,0,1,1,0], inf)\r\n\t),\r\n\t\\metal, Pbrown(0.3, 0.8, 0.01, inf),\r\n\t\\base, Pwrand([1, 0.3], [0.1, 0.8], inf),\r\n\t\\dur, 0.14\r\n).play;\r\n)",
   "labels" : [
      "beng",
      "mouth harp"
   ]
}
