{
   "ancestor_list" : [],
   "description" : "Today's attempt at making something with a beat.. Gets interesting when you slow the tempo way down :)\r\n[https://soundcloud.com/sluyterrific/industrial-bagpipe-army](https://soundcloud.com/sluyterrific/industrial-bagpipe-army)",
   "name" : "Industrial bagpipe army",
   "author" : "wondersluyter",
   "code" : "(\r\n{\r\n  var tempo = 100;\r\n  var bps = tempo / 60;\r\n  \r\n  var kik_phase = LFNoise1.kr(bps / 2, 0.03);\r\n  var kik_impulse = Impulse.ar(bps, kik_phase, LFNoise1.kr(bps).range(5, 15));\r\n  var kik, kik_low;\r\n  \r\n  var buzz_phase = Demand.kr(Impulse.kr(bps), 0, Dseq(0.5 ! 5 ++ 0, inf)) + LFNoise1.kr(bps / 2, 0.03);\r\n  var buzz_impulse = Impulse.ar(bps, buzz_phase, LFNoise1.kr(bps).range(5, 15));\r\n  var buzz;\r\n\r\n  var clap;\r\n  \r\n  var melody_phase = LFNoise1.kr(bps / 2, 0.08);\r\n  var melody_impulse = Impulse.ar(bps * 2, melody_phase);\r\n  var melody_ratio = Demand.ar(melody_impulse, 0, Drand((6..16), inf));\r\n  var melody, melody2;\r\n  var melody2_gate = LFPulse.kr(bps / 24, 0.5);\r\n  \r\n  var freq_root = LFPulse.kr(bps / 48, 0.125, 0.875, 12, 88);\r\n  \r\n  kik = Splay.ar({ |n|\r\n    var impulse = kik_impulse;\r\n    Ringz.ar(\r\n      LPF.ar(impulse, 200),\r\n      10 + Rand(0, 50).round(5), \r\n      bps.reciprocal\r\n    )\r\n    +\r\n    Ringz.ar(\r\n      PinkNoise.ar(Decay.ar(impulse, bps.reciprocal)),\r\n      LFNoise1.kr(bps).exprange(500, 1000),\r\n      0.01,\r\n      0.05\r\n    )\r\n    +\r\n    Ringz.ar(\r\n      PinkNoise.ar(Decay.ar(impulse, bps.reciprocal)),\r\n      LFNoise1.kr(bps).exprange(1000, 2000),\r\n      0.01,\r\n      0.1\r\n    );\r\n  }.dup(10)).tanh;\r\n  \r\n  kik_low = LPF.ar(kik, 200);\r\n  kik = kik + ([kik_low[1], kik_low[0]] * 0.8);\r\n  \r\n  buzz = Splay.ar({ |n|\r\n    var impulse = buzz_impulse;\r\n    Ringz.ar(\r\n      WhiteNoise.ar(Decay.ar(impulse, bps.reciprocal / 2)),\r\n      LFNoise1.kr(bps / 8).range(4 * freq_root, 7 * freq_root).round(freq_root).lag2(0.5) + (n * freq_root),\r\n      bps.reciprocal * (LFNoise1.kr(bps).range(3, 6) / ((n + 1) * 0.5))\r\n    );\r\n  }.dup(15).scramble).tanh;\r\n  \r\n  clap = Splay.ar({ |n|\r\n    var phase = LFNoise1.kr(bps, 0.05);\r\n    var pulse = LFPulse.ar(bps, phase, 0.5);\r\n    var impulse = Impulse.ar(bps, phase + 0.5);\r\n    (BPF.ar(\r\n      WhiteNoise.ar(Integrator.ar((pulse * 0.0001), 0.9999) * pulse),\r\n      800 + (n * 50),\r\n      0.4\r\n    ) * 5) \r\n    +\r\n    (BPF.ar(\r\n      WhiteNoise.ar(Decay.ar(impulse, bps.reciprocal / 2)),\r\n      800 + (n * 50),\r\n      0.4\r\n    ) * 7);\r\n  }.dup(5)).tanh;\r\n  \r\n  melody = Splay.ar({ |n|\r\n    var impulse = melody_impulse;\r\n    var ratio = melody_ratio.lag(0.25 * bps.reciprocal);\r\n    var freq = (ratio * freq_root) - (4 * freq_root);\r\n    Ringz.ar(\r\n      PinkNoise.ar(Decay2.ar(impulse, bps.reciprocal * 0.1, bps.reciprocal * 10)), \r\n      freq + (freq_root * n), \r\n      bps.reciprocal,\r\n      0.07 * ratio\r\n    )\r\n  }.dup(4)).tanh;\r\n  \r\n  melody2 = Splay.ar({ |n|\r\n    var impulse = melody_impulse;\r\n    var ratio = melody_ratio.lag(0.25 * bps.reciprocal);\r\n    var freq = (ratio * freq_root) - (4 * freq_root);\r\n    BPF.ar(PinkNoise.ar, freq * (n + 1), 0.05, 100);\r\n  }.dup(4));\r\n  \r\n  melody2 = Compander.ar(melody2, kik + buzz, -20.dbamp, 1, 0.05, 0.001, bps.reciprocal / 2);\r\n  \r\n  Limiter.ar((kik * -4.4.dbamp) + (buzz * -26.dbamp) + (clap * -10.dbamp) + (melody * -30.dbamp) + (melody2 * -3.dbamp * melody2_gate));\r\n}.play;\r\n)",
   "is_private" : null,
   "id" : "1-4VK",
   "labels" : [
      "subtractive synthesis"
   ]
}
