-- Hardcore noisy
-- TODO guitare

do
  resetCycles
  setcps (90/60/4)
  let masked = sometimes (degradeBy "0 0!6 <0!3 1>")
  d1
    -- $ masked
    -- $ whenmod 64 32 (slow "<2!8 4!7 1>")
    -- $ mask "<f!4 t(<1 1 2 2>,8)!4 t!120>"
    $ mask "t(<16!3 4 16!3 [16 4]>,16)"
    $ superimpose (
      (# "hardkick:2") . (# gain 0.75) . (# sz 0.9)
      . (# legato (slow 4 "<0!8 0.125 0.25 0.5 0.75 1!4>"))
    )
    $ "k k? k*[1|1|2] k <k k?> k k <k!3 k*2>"
    # "jazz" # gain 1.5
  d2 -- Snare variƩ sur 12 temps
    $ masked
    $ mask "<f!4 t(1,8)!4 t!120>"
    $ fast "<1!4 2!4 4 4 8 8>"
    $ every' 8 7 (ply 2)
    $ "~ snare:21"
    # room 0.5 # dry 1.1
    # gain 0.8
    # note (slow 3 "<-8 -12>")
  d4 -- Bassline electro-folle
    $ masked
    $ whenmod 64 32 (|* gain (slow 32 $ range 1 0.7 isaw))
    $ whenmod 16 12 (superimpose (rev . (# cut 41) . (# pan 0.4)))
    $ whenmod 4 2 (fast 2)
    $ slice 8 (run 4 + "<0 4>") $ slow 2 "fbass:60"
    # cut 4
    # room (slow 8 $ range 0.2 0.8 saw)
    # dry (slow 16 $ range 0.1 1 perlin)
    -- # crush (slow 32 "<8 6 4 2>")
    # pan 0.25
    # gain (slow 32 "<0.8 0.8 0.75 0.7>")
  d8
    $ masked
    $ mask "<t(<1 2 3 4>,8)!4 t!124>"
    $ superimpose (
      (|+ pan 0.5)
      . (# room 0.2) . (# dry 0.9)
    )
    $ "glitch:2(<3 5 [3|5] <8 [8 16]>>,8)"
    # gain (slow 4 $ range 0.5 0.75 saw)
    # pan (slow 8 $ range 0.05 0.95 sine)
  d5
    $ juxBy 0.8 (# cut 51)
    $ mask "<f!32 t!32>"
    $ slice 8 (cat [
      "~ 0", "~ 0*2", "~ 0", "~ 0*4",
      "4 5", "0 4 5 3", "4 5", "0 4 5 4",
      "4 5*4", "0 3 4 5", "4 4 5 5", "0 4 5 4",
      "~ 0", "~ 0*2", "~ 0", "~ 0*4",
      "4 5!3"
      ])
    $ "fguitar:61"
    # cut 5
    # gain 0.6
    # room 0.2
    # crush (slow 4 $ range 2.5 3.5 perlin)