-- Dub lancinante

do
setcps (60/60/4)
let gDeg = (degradeBy "0 1 0.8 1" . (|* gain 0.65))
let gLF = (whenmod 64 32 (# lpf (slow 32 $ range 200 10000 sine)))
let gHF = (whenmod 66 33 (# hpf (slow 33 $ range 0 2000 cosine)))
let gFx = (gLF . gHF . gDeg)
d1
  $ gFx
  $ fast 8
  -- $ fast "<1!16 2!4 4!12 8!16>"
  $ "h2ogmbd:3" # gain 1.2
d2
  $ gFx
  $ whenmod 64 48 (# lpf (slow 16 $ range 0 0.5 saw))
  $ fast "<4!3 [4 8]>" $ "~ h2ogmcp" # gain 0.75
d3 -- Drums left
  $ gFx
  $ degradeBy (slow 64 $ range 0 0.8 saw)
  $ "t(3,8) t(<1 5>,8)" # "h2ogmft:2" # gain 0.85
  # pan (slow 16 $ range 0 0.65 cosine)
d4 -- Drums right
  $ gFx
  $ sometimesBy (slow 32 $ range 0 0.8 saw) (juxBy 0.75 rev)
  $ "t(5,8,4) t(<1 3>,8,4)" # "h2ogmft:3" # gain 0.8
  # pan (slow 16 $ range 0.35 1 sine)
d5 -- Bassline
  $ superimpose gFx
  $ whenmod 64 48 (degradeBy "0 <0.25!4 0.5!4 0.75!4 0.85!4>")
  $ sometimesBy "<0.25!3 0.75> 0.8" (fast 2)
  $ note ("fs2*2 [a2 b2]  [~ <b2 <d3 fs2>>] ~")
  # "supersaw"
  # voice 0.1
  # gain 0.6 -- Warning superimposed twice
d6 -- Crazy hats
  $ gFx
  $ "h2ogmhh(12,16,<0!3 3>)"
  # n "[0|3|4]*16"
  # gain (slow 12 $ range 0.65 0.75 saw)
  # pan (slow 16 $ "<0.6 0.4>")
d7 -- Snare rush /32
  $ gFx
  $ mask "<f!24 t!8>"
  $ "h2ogmsn:7*<4 [4 4 8] 8 [8 16] 16 [16 32 32] 32 [32 64]>" # gain 0.75
d8 -- Piano regulier folie swing
  $ gFx
  $ whenmod 128 64 (
    swingBy "q" (slow 4 $ "<1!4 2 [1 2] [1 2 1 2]!2>")
  )
  $ fast 2
  $ whenmod 32 16 (off "h" id)
  $ superimpose (|+ note 12)
  $ note ("~ fs*2 <b b b a b a b b b a b d b d a b> ~")
  # "superpiano" # velocity 0.55 # legato 1.25
  # room 0.4 # sz 0.7
  # gain (slow 50 $ range 0.65 0.95 perlin)
  # pan 0.7
d9 -- Trompettes lancinantes
  $ gFx
  $ note ("<fs!2 ef!2> <es!7 as4> . ~")
  # "brass"
  # gain (slow 64 $ range 0.45 0.65 perlin)
  # legato 2
  # room (slow 64 $ range 0.4 0.7 saw)
  # sz (slow 32 $ range 0.4 0.8 saw)
  # pan 0.7
  # cut 9
