{
   "name" : "risset bells",
   "author" : "Fredrik Olofsson",
   "description" : "an exact port of a pd (pure-data) example patch.",
   "ancestor_list" : [],
   "labels" : [
      "metallic",
      "bell"
   ],
   "is_private" : null,
   "id" : "1-4Q6",
   "code" : "//additive synthesis bell\r\n//port of the pure-data example: D07.additive.pd\r\n(\r\ns.waitForBoot{\r\n\tSynthDef(\\risset, {|out= 0, pan= 0, freq= 400, amp= 0.1, dur= 2, t_trig= 1|\r\n\t\tvar amps= #[1, 0.67, 1, 1.8, 2.67, 1.67, 1.46, 1.33, 1.33, 1, 1.33];\r\n\t\tvar durs= #[1, 0.9, 0.65, 0.55, 0.325, 0.35, 0.25, 0.2, 0.15, 0.1, 0.075];\r\n\t\tvar frqs= #[0.56, 0.56, 0.92, 0.92, 1.19, 1.7, 2, 2.74, 3, 3.76, 4.07];\r\n\t\tvar dets= #[0, 1, 0, 1.7, 0, 0, 0, 0, 0, 0, 0];\r\n\t\tvar src= Mix.fill(11, {|i|\r\n\t\t\tvar env= EnvGen.ar(Env.perc(0.005, dur*durs[i], amps[i], -4.5), t_trig);\r\n\t\t\tSinOsc.ar(freq*frqs[i]+dets[i], 0, amp*env);\r\n\t\t});\r\n\t\tOut.ar(out, Pan2.ar(src, pan));\r\n\t}).add;\r\n};\r\n)\r\n\r\na= Synth(\\risset, [\\freq, 72.midicps, \\dur, 4])\r\na.set(\\t_trig, 1)\r\na.set(\\freq, 100.midicps, \\dur, 3, \\t_trig, 1)\r\na.set(\\freq, 60.midicps, \\dur, 1, \\t_trig, 1)\r\na.set(\\freq, 90.midicps, \\dur, 0.5, \\t_trig, 1)\r\na.free\r\n\r\n(\r\nRoutine({\r\n\tvar a= Synth(\\risset);\r\n\t20.do{\r\n\t\tvar dur= 0.2.exprand(3.0);\r\n\t\tvar fre= 60.0.exprand(5000.0);\r\n\t\t(\"dur:\"+dur+\"fre:\"+fre).postln;\r\n\t\ta.set(\\t_trig, 1, \\freq, fre, \\dur, dur);\r\n\t\tdur.wait;\r\n\t};\r\n\ta.free;\r\n\t\"done\".postln;\r\n}).play;\r\n)"
}
