{
   "ancestor_list" : [],
   "description" : "Polyrhythmic and dynamic FM drone.\r\n\r\nMore detailed info (in Spanish) at https://recarteblog.wordpress.com/2021/02/23/example-post-2/",
   "author" : "Oscar Recarte",
   "name" : "droneFM01",
   "id" : "1-5f5",
   "is_private" : null,
   "code" : "// https://recarteblog.wordpress.com/\r\n//droneFM01\r\n\r\n// 1. Añadir al servidor\r\n(\r\nSynthDef(\\droneFM, {\r\n\targ f1Freq=0.1, f2Freq=1.1, f3Freq=2.2, nFreq=440, m1Ratio=1, m2Ratio=2, m3Ratio=3,\r\n\tamp=0.1, dur=55, ampM=0.84 , pan=0;\r\n\tvar sig, car1, mod1, car2, mod2, car3, mod3, env, index;\r\n\tindex = LFNoise1.kr(0.2).range(2, 12);\r\n\tenv = EnvGen.kr(Env.new([0, 0.70, 0.70, 0], [dur*0.333, dur*0.333, dur*0.333]), doneAction:2);\r\n\tmod1 = SinOsc.ar([nFreq * m1Ratio, nFreq+0.7 * m1Ratio], mul:nFreq * m1Ratio * index) * ampM;\r\n\tcar1 = SinOsc.ar(f1Freq + mod1);\r\n\tmod2 = SinOsc.ar([nFreq * m2Ratio, nFreq+1.4 * m2Ratio], mul:nFreq * m2Ratio * index) * ampM;\r\n\tcar2 = SinOsc.ar(f2Freq + mod2);\r\n\tmod3 = SinOsc.ar([nFreq * m3Ratio, nFreq+0.35 * m3Ratio], mul:nFreq * m3Ratio * index) * ampM;\r\n\tcar3 = SinOsc.ar(f3Freq + mod3) * 0.4;\r\n\tsig = car1 + car2 + car3 * env * amp;\r\n\tsig = Pan2.ar(sig, pan);\r\n\tOut.ar(0, sig);\r\n}).add;\r\n)\r\n\r\n// 2. Ejecutar los Synths\r\n(\r\nSynth(\\droneFM, [\\nFreq, 50.midicps]);\r\nSynth(\\droneFM, [\\nFreq, 57.midicps]);\r\nSynth(\\droneFM, [\\nFreq, 41.midicps]);\r\n)",
   "labels" : [
      "beats",
      "drone",
      "fm",
      "instrument",
      "synthesis",
      "synthdef",
      "synthesis techniques",
      "frequency modulation",
      "sound design"
   ]
}
