-- HardCor printamnier

setcps 1

d1 -- kick
$ whenmod 64 62 ( -- 80s drumroll
  -- const $ every 4 (off 0.25 (# n 2))
  -- $ n "[2 3] . 2 . 3 . 3 2" # s "electro1"
  const $ n "[2 <[3 2] [2 3]> ~] [3 2 <3? ~>]" # s "electro1"
)
$ whenmod 64 60 (# gain 0)
$ whenmod 8 4 ( -- sometimes double
  sometimesBy (slow 16 $ 0.25 + sine * 0.5)
  (off (1/8) id))
$ s "k*2"
# s "kick:5"
# gain 0.8

d2 -- snare glitche noisy
$ whenmod 64 60 (# gain 0)
$ whenmod 64 8 (# gain 0)
$ whenmod 64 0 (# gain 0)
$ whenmod 8 6 ( -- add glitch
  superimpose ((|- gain 0.1) . (# s "glitch:7"))
)
$ (0.25 ~>)
$ s "snare:1"
# gain 0.8

d3 -- drum-fucking-roll
$ whenmod 64 61 (# gain 1)
$ whenmod 64 60 (# gain tri)
$ whenmod 64 55 (# gain 0)
$ whenmod 64 54 (# gain (1-tri))
$ degradeBy ("<0 0 0.25 0> 0 <0 0.25 0.75 1> <0.25 0.2 0.15 0>")
$ fast (slow 8 $ "<2 4 8 4>")
$ s "drum:8"
# gain (slow 64 $ sine * 0.5 + 0.6)

d4
$ whenmod 64 32 ( -- traine aigue
  superimpose (rev . (|+ note 12) . (0.125 ~>))
)
$ whenmod 64 48 (fast 2)
$ whenmod 64 32 (slow 2 . (swing 2))
$ whenmod 64 0 (slow 2)
$ whenmod 64 4 (# gain 1)
$ whenmod 64 0 (# gain 0)
$ s "<n n*2> . [n*2|n] . n n . <n [n|n*2]> n"
# note (
  scale "major" "<0 4> .. <3 1> <5 5 4 4> .. <5 6>"
)
# s "superpiano"
# velocity 0.5

d5 -- trompete joyeuse courte
$ whenmod 64 50 (# gain 0)
$ whenmod 64 48 (# gain "<0.5 0.4 0.3>")
$ whenmod 64 16 (# gain 0.6)
$ whenmod 64 16 (# gain 0.6)
$ off 0.5 (|+ note (slow 4 $ "<5 -4>"))
$ note "<0 2>/4"
# s "brass:4"
# gain 0

d6 -- saxo lent lancinant
$ whenmod 64 48 (# gain 0.6)
$ whenmod 64 32 (# gain 0.5)
$ note "<2 <7 0>>/4"
# s "brass:2"
# gain 0

d7 -- toy conclusif joyeux trompete
$ whenmod 64 62 (# gain 0)
$ whenmod 64 60 (# gain 0.5)
$ whenmod 64 50 (# gain 0.6)
$ whenmod 64 48 (# gain 0.5)
$ s "[~ brass:6]/2"
# gain 0

d8 -- tension!
$ whenmod 32 30 (# gain 0.8)
$ whenmod 32 0 (# gain 0)
$ s "brass:8/2"
# legato 1