{
   "description" : "Posted at the request of Jonathan Reus.\r\n\r\nMelodic components generated with a simple fm based synth. A nice kick drum sound, some swirly noise and a bit of granular ambience.",
   "ancestor_list" : [],
   "author" : "willschrimshaw",
   "name" : "Melodic, beat driven, evening synthesis.",
   "code" : "s.boot;\r\n\r\n\r\n(\r\n\r\n\r\nb = Buffer.alloc(s, 96000*10, 1);\r\n\r\n\r\n\r\nSynthDef(\\kick, {\r\n\t| out = 0, peakFreq = 90, attack = 0.01, decay = 0.95, pos = 0, amp = 0.33|\r\n\tvar multipliers, pitchEnv, snd;\r\n\tmultipliers = [1,1.015, 0.502];\r\n\tpitchEnv = EnvGen.ar(Env.new([40, peakFreq, 20], [attack, decay], 'exp'), doneAction:2);\r\n\tsnd = Mix(SinOsc.ar(pitchEnv*multipliers, 0, EnvGen.ar(Env.perc(attack, decay)) * 1/multipliers.size));\r\n\tsnd = Compander.ar(snd, snd, 0.001, 1, 0.6, 0.012, 0.25, 7.5);\r\n\tOut.ar(out, Pan2.ar(snd, pos, amp));\r\n}).add;\r\n\r\n\r\n\r\n\r\nSynthDef(\\fmTone, {\r\n\r\n\t| out = 0, amp = 0.8, freq = 940, modRate = 2000, index = 5, attack = 0.01, dur = 1, pos = 0 |\r\n\r\n\tvar env, mod, snd;\r\n\r\n\t// mod = LFSaw.ar(LFNoise2.ar(0.12, 2000, 20).abs, 0, LFSaw.ar(0.3, 0, 1000)).abs;\r\n\r\n\tenv = EnvGen.ar(Env.perc(attack, dur-attack), doneAction:2);\r\n\r\n\t// mod = EnvGen.ar(Env.triangle(dur));\r\n\r\n\tmod = Phasor.ar(0, TRand.ar(0.01, 1, Impulse.ar(0)), 0, index);\r\n\r\n\tsnd = Mix([\r\n\t\tSinOsc.ar(freq, 0, 0.3),\r\n\t\tSinOsc.ar(freq + mod, 0, 0.5),\r\n\t\tSinOsc.ar((freq*3) + (mod), 0, 0.1),\r\n\t\tSinOsc.ar((freq*6) + (mod), 0, 0.1)\r\n\t]);\r\n\r\n\tOut.ar(out, Pan2.ar(snd, pos, env * amp));\r\n\r\n}).add;\r\n\r\n\r\n\r\n\r\nSynthDef(\\distortion, { | out = 0, in = 10, smoothing = 1, amp = 0.6, pos = 0 |\r\n\tvar snd;\r\n\t// snd = CrossoverDistortion.ar(In.ar(in), 0.35, XLine.ar(1, 0.01, 60, doneAction:2), LFNoise2.ar(0.15));\r\n\tsnd = CrossoverDistortion.ar(In.ar(in), 0.35, smoothing, LFNoise2.ar(0.15));\r\n\tOut.ar(out, Pan2.ar(snd, pos, amp));\r\n}).add;\r\n\r\n\r\n\r\n\r\nSynthDef(\\grains, { |amp = 0.15, out = 0, pos = 0 |\r\n    var snd, trate, dur, rate;\r\n\t    trate = LFNoise2.ar(0.5, 50, 2).abs;\r\n    dur = 7 / trate;\r\n    rate = Drand([-12, -7, 5, -24, -8, 11, 12, 24].midiratio, inf);\r\n\tsnd = Mix(TGrains.ar(2, Impulse.ar(trate), b, rate, LFNoise2.ar(0.1,BufDur.kr(b)), dur, 0, SinOsc.ar(0.1), 2));\r\n\tOut.ar(out, Pan2.ar(snd, pos, amp));\r\n}).add;\r\n\r\n\r\n\r\n\r\nSynthDef(\\verb_1, { |out = 0, in = 20|\r\n\tvar snd;\r\n\tsnd = GVerb.ar(\r\n\t\tLPF.ar(In.ar(in), LFNoise2.ar(1, 6000, 500).abs),\r\n\t\t10,\r\n\t\tLFNoise2.ar(1, 5, 0.2).abs,\r\n\t\t0.965,\r\n\t\t1,\r\n\t\tLFNoise2.ar(1, 25, 1).abs,\r\n\t\t1, 0.2, 1, mul: 0.2\r\n\r\n\t);\r\n\r\n\tOut.ar(out, snd);\r\n\r\n}).add;\r\n\r\n\r\n\r\nSynthDef(\\verb_2, { |out = 0, in = 20|\r\n\tvar snd = GVerb.ar(\r\n\t\tLPF.ar(In.ar(in), 200),\r\n\t\t49,\r\n\t\tLFNoise2.ar(0.5, 15, 0.2).abs,\r\n\t\t0.91,\r\n\t\t0.7,\r\n\t\tLFNoise2.ar(1, 25, 1).abs,\r\n\t\t1, 0.2, 1, mul: LFNoise2.ar(0.8, 0.225, 0.1).abs\r\n\r\n\t);\r\n\r\n\tOut.ar(out, snd);\r\n\r\n\r\n}).add;\r\n\r\n\r\n\r\nSynthDef(\\noise, {\r\n\r\n\t| decay = 0.1, maxRate = 50, amp = 0.08, out = 0 |\r\n\tvar snd, rate, trig;\r\n\r\n\trate = LFNoise2.ar(2, maxRate, 1).abs.clip(0, maxRate);\r\n\ttrig = Impulse.ar(rate);\r\n\r\n\tsnd = Resonz.ar(\r\n\t\t// Input, AD enveloped white noise:\r\n\t\tDecay.ar(trig, LinExp.ar(rate, 0, maxRate, 5, 0.01), WhiteNoise.ar),\r\n\r\n\t\t// Freq:\r\n\t\tLinLin.ar(rate, 0, maxRate, 2500, 10000),\r\n\r\n\t\t// RQ:\r\n\t\tLinLin.ar(rate, 0, maxRate, 1, 0.001)\r\n\t);\r\n\r\n\tOut.ar(out, Pan2.ar(snd, snd, amp));\r\n\r\n}).add;\r\n\r\n\r\n\r\n\r\n)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n(\r\n\r\n~fxBus = 20;\r\n\r\n/*\r\n\r\nFor outputting to Ardour for further editing:\r\n\r\n~kickOut = 4;\r\n~synthOut = 6;\r\n~grainsOut = 8;\r\n\r\n~noiseOut = 10;\r\n\r\n~verb1Out = 12;\r\n~verb2Out = 14;\r\n~distortionOut = 16;\r\n*/\r\n\r\n~kickOut = 0;\r\n~synthOut = 0;\r\n~grainsOut = 0;\r\n\r\n~noiseOut = 0;\r\n\r\n~verb1Out = 0;\r\n~verb2Out = 0;\r\n~distortionOut = 0;\r\n\r\nSynth(\\verb_1, [\\out, ~verb1Out]);\r\n\r\nSynth(\\verb_2, [\\out, ~verb2Out]);\r\n\r\n\r\nSynth(\\distortion, [\\in, ~fxBus, \\out, ~distortionOut, \\smoothing, 0.65, \\amp, 0.026]);\r\n\r\n\r\nSynthDef(\\sampler, {RecordBuf.ar(In.ar(~fxBus), b.bufnum, loop:1)}).play;\r\n\r\n\r\nPdef(\\kick,\r\n\tPbind(\\instrument, \\kick,\r\n\r\n\t\t\\out, [~kickOut,~fxBus],\r\n\t\t\\amp, [0.65, 0.24],\r\n\t\t\\peakFreq, [102, 282],\r\n\t\t\\attack, Pwrand([0.0035, 0.5], [0.95, 0.05], inf),\r\n\r\n\t\t// \\delta, Pstutter(8, Prand([0.1, 0.2, 0.4], inf)),\r\n\r\n\t\t\\delta, Pwrand([\r\n\t\t\tPseq([0.8, 0.8, 0.4, 0.2, 0.4], 1),\r\n\t\t\tPseq([1.6, 0.4, 0.2, 0.2, 0.2], 1),\r\n\t\t\tPseq(0.1!12, 1)\r\n\t\t], [0.4, 0.4, 0.2], inf),\r\n\r\n\t\t\\decay, Pkey(\\delta) * Pexprand(0.7, 4)\r\n\r\n\t)\r\n).play(quant:1);\r\n\r\n\r\n\r\n\r\nPmono(\\noise, \\out, [~fxBus, ~noiseOut], \\amp, 0.025).play;\r\n\r\n\r\n\r\n\r\nPdef(\\melody,\r\n\r\n\tPbind(\\instrument, \\fmTone, \\out, [~synthOut, ~fxBus],\r\n\r\n\t\t\\midinote,\r\n\r\n\t\tPstutter(Pexprand(1, 12),\r\n\r\n\t\t\tPtuple([\r\n\r\n\t\t\t\tPseq([61, 64, 71], 1),\r\n\t\t\t\tPrand([61, 64, 71]+5, 1),\r\n\t\t\t\tPrand([61, 64, 71]+7, 1),\r\n\t\t\t\tPrand([61, 64, 71]+12, 1),\r\n\t\t\t\tPrand([61, 64, 71]+24, 1)\r\n\r\n\t\t], inf)) - 2,\r\n\r\n\t\t\\dur, Pexprand(0.12, 4), \\delta, Pstutter(4, Prand([0.1, 0.2, 0.4], inf)),\r\n\r\n\t\t\\strum, Pwrand(\r\n\t\t\t[\r\n\t\t\t\t0,\r\n\t\t\t\tPkey(\\delta)/Prand([0.5,1,2,4,8], 5)\r\n\t\t\t],\r\n\t\t\t[0.85, 0.15], inf),\r\n\r\n\t\t\\index, Pexprand(5, 50),\r\n\t\t\\attack, 0.01,\r\n\t\t\\amp, 0.15)\r\n\r\n).play(quant:1);\r\n\r\n\r\nPmono(\\grains, \\out, [~fxBus, ~grainsOut], \\amp, 0.13).play;\r\n\r\n)",
   "id" : "1-5bQ",
   "is_private" : null,
   "labels" : [
      "fm synthesis",
      "kick drum",
      "melodic"
   ]
}
