{
   "description" : "Synthdefs inspired by FM8",
   "ancestor_list" : [],
   "author" : "grirgz",
   "name" : "FM bell and bass",
   "code" : "(\r\nSynthDef(\\fmbell, { arg out=0, amp=0.1, gate=1, pan=0, freq=200;\r\n\tvar sig;\r\n\tvar sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8;\r\n\tfreq = freq * EnvGen.kr(Env([1,1.002,0.998,1],[0.1,0.8]), 1);\r\n\tsig1 = SinOsc.ar(freq * 2.6706 + 0.13) * 2 + 1; \r\n\tsig2 = SinOsc.ar(freq * 0.9998 * sig1);\r\n\tsig3 = SinOsc.ar(freq * 2.6629 * sig1 + 2.04);\r\n\tsig4 = LFCub.ar(freq * 0.9991 * sig1 + 2.14);\r\n\tsig5 = SinOsc.ar(freq * 2.6656 * sig1 - 2);\r\n\tsig6 = SinOsc.ar(freq * 1 * sig1 + 1.84);\r\n\t//sig = sig2 + sig3 + sig4 + sig5 + sig6;\r\n\tsig = [sig1, sig2, sig3, sig4, sig5, sig6] * DC.ar([0,0.5,0.5, 0.5,0.5,0.5]);\r\n\t//sig.debug(\"sig\");\r\n\t//sig = sig /34;\r\n\tsig = sig * EnvGen.ar(\\adsr.kr( Env.adsr(0.01,0,1,2.1,1,-1) ),gate,doneAction:2);\r\n\tsig = Pan2.ar(sig, pan + [ 0, -0.5, -0.5, 0.5, 0.5, 0], amp).sum;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n\r\nSynthDef(\\chorus, { arg out=0, amp=0.1, gate=1, pan=0, freq=200;\r\n\tvar sig;\r\n\tvar in = InFeedback.ar(\\inbus.kr(100), 2); \r\n\tsig = LocalIn.ar(2) * \\fb.kr(0.4);\r\n\tsig = sig + in;\r\n\tsig = DelayC.ar(sig, \\maxdelay.ir(0.2), \\delay.kr(0.0001) * ((0..7)/7 - 0.5 * \\diff.kr(0.4001) + 1) * ( SinOsc.kr(\\modfreq.kr(8.1)) * \\modamp.kr(0.48) + 1 )).mean;\r\n\t//sig = LPF.ar(sig, \\dif.kr(7500));\r\n\tLocalOut.ar(sig);\r\n\r\n\tsig = LPF.ar(sig, \\lpf.kr(15000));\r\n\tsig = HPF.ar(sig, \\hpf.kr(50));\r\n\tsig = SelectX.ar(\\mix.kr(0.5), [in, sig]);\r\n\tsig = sig * EnvGen.ar(\\adsr.kr( Env.adsr(0.01,0.1,0.8,0.1) ),gate,doneAction:2);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n\r\nSynthDef(\\fmbass, { arg out=0, amp=0.1, gate=1, pan=0, freq=200;\r\n\tvar sig;\r\n\tvar sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8;\r\n\tvar env1, env2, env3, env4, env5, env6, env7, env8;\r\n\tfreq = freq / 4;\r\n\tfreq = freq * ((0..1)/1 - 0.5 * 0.0007 + 1);\r\n\tenv1 = EnvGen.kr(Env([0,1,0.051,0],[0.001,0.01,0.8], [4,-8]), 1);\r\n\tenv2 = EnvGen.kr(Env([0,1,0.051,0],[0.005,0.5,1.5], [0,-8], releaseNode:2), 1);\r\n\tenv3 = EnvGen.kr(Env([0,1,1,0],[0.01,0.01,0.2], [0,0,-4], releaseNode:2), gate);\r\n\tenv4 = EnvGen.kr(Env([0,1,0],[0.002,2.8], [0,-4]), 1);\r\n\tenv5 = EnvGen.kr(Env([0,1,1,0],[0.001,0.1,0.8], [4,0,-4], releaseNode:2), gate);\r\n\tenv6 = EnvGen.kr(Env([0,1,0],[0.001,3.0], [0,-4]), 1);\r\n\t//freq = freq * EnvGen.kr(Env([1,1.002,0.998,1],[0.1,0.8]), 1);\r\n\tsig1 = SinOsc.ar(freq * 11 + 0) * env1; \r\n\tsig2 = SinOsc.ar(freq * 6 * ( sig1 * 2.5 + 1 )) * env2;\r\n\tsig3 = SinOsc.ar(freq * 2 * 1 + 0) * env3;\r\n\tsig4 = SinOsc.ar(freq * 1 * ( sig3 * 2.5 + 1 ) + 0) * env4;\r\n\tsig5 = SinOsc.ar(freq * 1 * ( sig2 * 2.5 + 1 ) * (sig4 * 2.5 + 1)) * env5;\r\n\tsig6 = SinOsc.ar(freq * 2) * env6;\r\n\t//sig = sig2 + sig3 + sig4 + sig5 + sig6;\r\n\tsig = [sig1, sig2, sig3, sig4, sig5, sig6] * DC.ar([0.0, 0.0, 0.0,  0.0, 0.5, 0.5]);\r\n\tsig.debug(\"sig\");\r\n\tsig = sig /2;\r\n\tsig = sig.flop.sum;\r\n\tsig = sig * EnvGen.ar(\\adsr.kr( Env.adsr(0.001,0,1,0.01, 1,-1) ),gate,doneAction:2);\r\n\tsig = sig * AmpComp.kr(freq);\r\n\tsig.debug(\"sigx\");\r\n\tsig = Pan2.ar(sig, pan + [ 0, 0, 0, 0, 0, 0], amp).sum;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n\r\n~fxbus = ~fxbus ?? { Bus.audio(s,2) };\r\n~t = 135/4/60; TempoClock.default.tempo = ~t;\r\n);\r\n\r\n(\r\nPdef(\\fm, \r\n\tPpar([\r\n\t\tPbind(\r\n\t\t\t\\instrument, \\fmbass,\r\n\t\t\t\\note, Pseq([\r\n\t\t\t\t0,5,2,3,1,-12,-5,1,-2,0,1,\r\n\t\t\t],inf),\r\n\t\t\t\\legato, Pseq([\r\n\t\t\t\t\t4,0,0,0, 0,0,1,1,\r\n\t\t\t],inf)*0.9,\r\n\t\t\t\\isRest, Pfunc({ arg ev; ev[\\legato] <= 0 }),\r\n\t\t\t\\dur, 1/4,\r\n\t\t\t\\amp, 0.2,\r\n\t\t),\r\n\t\tPbind(\r\n\t\t\t\\instrument, \\fmbell,\r\n\t\t\t\\note, Pseq([\r\n\t\t\t\t2,9,5,-4,\r\n\t\t\t],inf),\r\n\t\t\t\\octave, 4,\r\n\t\t\t\\sustain, 0.1,\r\n\t\t\t\\dur, 1,\r\n\t\t\t\\out, ~fxbus,\r\n\t\t\t\\amp, 0.1/2,\r\n\t\t),\r\n\t\tPmono(\\chorus,\r\n\t\t\t\\inbus, ~fxbus,\r\n\t\t\t\\delay, Pseq([\r\n\t\t\t\t0.003,\r\n\t\t\t\t0.00007,\r\n\t\t\t],inf).stutter(8),\r\n\t\t\t\\dur, 1,\r\n\t\t\t\\amp, 0.1,\r\n\t\t),\r\n\t])\r\n)).play;\r\n)",
   "id" : "1-57S",
   "is_private" : null,
   "labels" : [
      "bass",
      "fm",
      "bell"
   ]
}
