{
   "id" : "1-5bd",
   "is_private" : null,
   "code" : "(\r\nSynthDef(\\fm7_timpani,\r\n{\r\n    arg  note = 60,out_bus=0,amp=0.5,sustain = 2,release = 0.5,cutoff = 10000,rq = 1,pan = 0,lfo_speed = 5,lfo_amp = 0;\r\n\tvar ctls, mods, chans,out,pitch,gate,\r\n\r\n        envAmp1,envAmp2,envAmp3,envAmp4,envAmp5,envAmp6,env1,\r\n\t\tenvEnv1,envEnv2,envEnv3,envEnv4,envEnv5,envEnv6,envAmp,envEnv,lfo;\r\n\r\n        gate = Trig1.kr(1, sustain + release);\r\n\r\n\t\tenvEnv1 = Env.new([0 ,1.0 ,0 ,0 ,0], [0.0008 ,sustain ,0.0 ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\tenvAmp1 = EnvGen.kr(envEnv1,gate,doneAction: 0);\r\n\r\n\t\tenvEnv2 = Env.new([0 ,0.3535 ,0 ,0 ,0], [0.0005 ,0.0829 ,0.0 ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\tenvAmp2 = EnvGen.kr(envEnv2,gate,doneAction: 0);\r\n        envEnv3 = Env.new([0 ,0.2985 ,0.029 ,0 ,0], [0.0005 ,0.0136 ,sustain ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\t//envEnv3 = Env.new([0 ,0.2985 ,0.029 ,0 ,0], [0.0005 ,0.0136 ,12.8286 ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\tenvAmp3 = EnvGen.kr(envEnv3,gate,doneAction: 0);\r\n        envEnv4 = Env.new([0 ,0.6332 ,0.0797 ,0 ,0], [0.0006 ,2.057 ,sustain ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\t//envEnv4 = Env.new([0 ,0.6332 ,0.0797 ,0 ,0], [0.0006 ,2.057 ,37.2485 ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\tenvAmp4 = EnvGen.kr(envEnv4,gate,doneAction: 0);\r\n\r\n\t\tenvEnv5 = Env.new([0.0 ,0.1151 ,0.0 ,0.0 ,0.0], [0.0003 ,1.0517 ,0.0 ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\tenvAmp5 = EnvGen.kr(envEnv5,gate,doneAction: 0);\r\n\r\n\t\tenvEnv6 = Env.new([0.0 ,0.1055 ,0.0 ,0.0 ,0.0], [0.0004 ,215.6751 ,0.0 ,0.0], [3.0 ,-3.0 ,-3.0 ,-3.0],3);\r\n\t\tenvAmp6 = EnvGen.kr(envEnv6,gate,doneAction: 0);\r\n\r\n        envEnv = Env.new([0,1,1,0], [0.0001,sustain,release],[0,0,0]);\r\n\t\tenvAmp = EnvGen.kr(envEnv,gate,doneAction:2);\r\n\r\n\t\tlfo = LFTri.kr(lfo_speed);\r\n\t\tlfo = LinLin.ar(lfo, 0, 1, lfo_amp.neg.midiratio  , lfo_amp.midiratio);\r\n\r\n\r\n        pitch = note.midicps;\r\n\r\n   ctls = [\r\n\t\t    [0.5 * 1 * (pitch  + ((7-7)/32))* lfo, 0, envAmp1],\r\n\r\n\t\t    [0.5 * 1 * (pitch  + ((10-7)/32))* lfo , 0, envAmp2],\r\n\r\n\t\t    [0.5 * 1.36 * (pitch  + ((4-7)/32))* lfo , 0, envAmp3],\r\n\r\n\t\t    [0.5 * 1.75 * (pitch  + ((7-7)/32))* lfo , 0, envAmp4],\r\n\r\n\t\t    [0.5 * 1 * (pitch  + ((7-7)/32))* lfo , 0, envAmp5],\r\n\r\n\t\t    [0.5 * 1.56 * (pitch  + ((7-7)/32))* lfo, 0, envAmp6]\r\n\t];\r\n\r\n\tmods = [\r\n\t\t[0, 12.5664, 12.5664, 0, 12.5664, 0],\r\n\t\t[0, 0, 0, 0, 0, 0],\r\n\t\t[0, 0, 0, 12.5664, 0, 0],\r\n\t\t[0, 0, 0, 0, 0, 0],\r\n\t\t[0, 0, 0, 0, 0, 12.5664],\r\n\t\t[0, 0, 0, 0, 0, 5.5418]\r\n\t];\r\n\tchans = [0, 1, 2, 3, 4, 5];\r\n\tout = FM7.ar(ctls, mods).slice(chans) * -12.dbamp;\r\n\tout = Mix.new([\r\n\t\t(out[0] * 1),\r\n\t\t(out[1] * 0),\r\n\t\t(out[2] * 0),\r\n\t\t(out[3] * 0),\r\n\t\t(out[4] * 0),\r\n\t\t(out[5] * 0),\r\n\t]);\r\n\tout = RLPF.ar(out,cutoff,rq);\r\n\tOut.ar(out_bus,Pan2.ar(out,pan,amp));\r\n}).add;\r\n)\r\n\r\nSynth(\\fm7_timpani);\r\nSynth(\\fm7_timpani,[\\sustain,5,\\release,0.1,\\amp,0.5,\\lfo_speed,5,\\lfo_amp,0.05]);\r\n\r\n(\r\nb = Pbind(\r\n\t\\instrument,\\fm7_timpani,\r\n\t\\note, Pseq([48, 55, 60, 67, 72, 79], inf),\r\n\t\\sustain,2,\r\n\t\\release,0.5,\r\n    \\pan,Pwhite(-1.0,1.0,inf),\r\n\t\\lfo_amp,0,\r\n\t\\dur, 0.5,\r\n\t\\amp, 0.5\r\n).play;\r\n)\r\n\r\nb.stop;",
   "labels" : [],
   "ancestor_list" : [],
   "description" : "",
   "author" : "Roberto Arletti",
   "name" : "Timpani sound with FM7 plugin"
}
