d1 $ ""


do
-- resetCycles
setcps (90/60/4)
let gDJFBreak = (whenmod 32 24 (# djfbus 1 (slow 8 (range 0.05 0.45 saw))))
let whenMask33 = (someCyclesBy "<f!32 t f!31>")
let mask33 = whenMask33 (mask "t!3 f") -- TODO Retravailler Mask+FX
let mask8 = whenmod 8 7 (mask "f!3 t")
let m = mask8 . mask33
let g = gDJFBreak
d1 $ g
  $ mask "<f!3 t!31>" -- Intro
  $ someCyclesBy "<f!8 t!24>" (
    superimpose (
      (# "[reverbkick,kick:5]")
      . (|- note 8)
      . (# lpf 2000)
      . (# att 0) . (# rel 0.7)
      . (|* gain (slow 4 $ range 0.5 0.75 saw))
      )
  )
  $ "k*<1 1 2 <1 2>> . k(<3!3 <5 [5 <3 [3 6]>]>>,8)"
  # "dr55:1" # gain 0.95
d2
  $ mask "<f!8 t!24>" -- Intro
  $ g $ mask8 -- Phantom Snare
  $ whenMask33 ( -- mask33 fx
    (# speed (range 2 0.135 saw))
    . (ply "1!7 <2!3 4>")
    . degradeBy "0 0.23!6 0"
    .  (>| (n "[0 .. 15]" # "amencutup"))
  )
  $ mask "<t!16 f!8 t t f t t!4> <t!24 t t f f t!4>"
  $ fix ((# att 0) . (# rel 0.4)) ("snare")
  $ fix ((|- note 2) . (* gain 0.7)) ("clap")
  $ fast 2 $ "~ <s!3 s?>" # "[snare:1,clap:1]"
  # room 0.8 # dry 1 # sz 12
  # pan 0.8
  # gain 0.6
d3
  $ mask "<f!16 t!48>" -- Not until first drop
  $ g $ m -- Drumroll basique
  $ mask "<t!8 f!8> <t!16 f!4 t!4 f!4 t!4>"
  $ "d d d [d . <d ~> d]"
  # "drum:2"
  # gain 0.58
  # pan 0.1
d4 $ g $ mask33 -- Baseline bassline
  $ note "<c c*2 f*2 f*2> ~ ~ <~!3 g>"
  # "bass3"
  # gain 0.79
  # room 0.6
  # dry 1.2
  # legato 2
  # sz 0.9
d5
  $ mask "<f!8 t!64>" . someCyclesBy "<t!16 f!16>" (|* gain (slow 16 saw)) -- Intro
  $ g
  $ note (
    "<c <c*2 [c@2 d c]> [f f] [f@2 g f]> ~ ~ <~!3 <g b5>>"
    + "[0,12]"
    - 24
  )
  # "blip1"
  # pan 0.8
  # gain 0.5
