-- Lendemain Divin
do
let gMute = (midiOn "^73" (mask "f*16"))
let gM = gMask . gMute
setcps (95/60/4)
d1 $ gM1 $ gF1
  $ fix (|* gain 0.9) "kick:6"
  $ midiOn  "^41" (<| "k <~!8 k!56> . <~!4 k!28> k*<1!3 2>")
  $ midiOff "^41" (<| "k . ~ ~ ~ <~ k*<1!3 2> ~ [~ k*<1 2 1 <1 2>>]>")
  -- $ "[techno:0,808bd:2,909,kick:6]"
  $ "[jazz,kick:4]" -- TODO REWORK KICK FOR LIGHTER VIBE
  # lpf 6000
  # gain 1.5
d2 $ gMute $ gF1
  $ midiOn "^42" (fast 2)
  $ midiOn "^75" (# "cp")
  $ fix (# note "-4") "snare"
  $ "~ s*<1!3 <2 4>>"
  # "[vec1_snare:16]"
  -- # lpf 2000
  # gain 1
d3 $ gF1 $ gMute
  -- FIXME(#94) d3 drives more controls than the grid gives it (BT3 only — BL1-3 are the family mutes). ^76 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^76 for its new owner also moves this. NOT commented out: this is a `$`-step and something above it is a partial application waiting for it, so removing it would stop the whole block compiling. Fold it onto d3's own control with gSel.
  -- FIXME(#94) d3 drives more controls than the grid gives it (BT3 only — BL1-3 are the family mutes). ^76 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^76 for its new owner also moves this. NOT commented out: this is a `$`-step and something above it is a partial application waiting for it, so removing it would stop the whole block compiling. Fold it onto d3's own control with gSel.
  $ midiOn "^76" (ply 2)
  $ midiOn "^43" (struct "t*[16!3 <8 [8 <16 32>]>]")
  -- $ midiOn "^76" (struct "t*[8 <8 16> <16 8 8 16> <16 [32 <64 128>]>]")
  $ fix ((|* gain (slow 32 $ range 0.3 1.3 saw))) "oh"
  -- $ midiOff ("^44" + "^76") (<| "~ h ~ h ~ h*<1!3 2 1 1 2 2> ~ h*<1!7 2>" )
  $ drumFrom "[rolandtr808,rolandtr606]" "[hh]"
  # n "0!3 <0!3 1>"
  # lpf 4500
  # att (slow 16 $ range 0.001 0.04 cosine)
  # rel 0.4
  # room 0.2 # dry 0.9
  # gain 1.05
d4 $ gF2 $ gM3 -- Basse complainte
  $ midiOn "^44" ((ply "8 <16 [16 8]>")
  -- . (# room "0 0.4")
  -- . (# sz "1 1.2")
  . (# cut 4))
  -- $ note "[c3,ef3,g3,as3,d4,f4]"
  -- Bassline habituelle
  $ midiOff "^76" (
    >| note "<<d4!6 [d4@7 <f4 g4>]!2> <a3!4 [a3@7 <c4 c3>]!4> [<g3 [g3@7 f3]>] d3>"
  )
  $ midiOn "^76" (
    >| note "<[d3@6 c3@2] <as3 as3*2> <[f4@6 f4 g4] [f4@5 g4 f4 c4]> d4>"
    )
  $ "bassWarsaw"
  # crushbus 41 (range 16 2.5 "^32")
  # octersubbus 42 (range 0 2.5 "^52")
  # room 0.2
  # cut "41 42 43 44"
  # gain 1.42
d5 $ gF3 $ gM3 -- SIDEKICK LEAD AMI FIABLE DE LA BASSE
  $ midiOn "^57" ((ply "4 <8 [8 4]>")
  -- . (# room "0 0.4")
  -- . (# sz "1 1.2")
  . (# cut 4))
  -- Bassline habituelle
  $ midiOff "^89" (
    |+| note "<<d4!6 [d4@7 <f4 g4>]!2> <a3!4 [a3@7 <c4 c3>]!4> [<g3 [g3@7 f3]>] d3>"
  )
  $ midiOn "^89" (
    |+| note "<[d3@6 c3@2] <as3 as3*2> <[f4@6 f4 g4] [f4@5 g4 f4 c4]> d4>"
    )
  $ note "0 7 <0!3 [0 15]> 12" # "FMRhodes1"
  # crushbus 51 (range 16 2.5 "^33")
  # modIndex (range 0 2.5 "^53")
  # room 0.2
  # cut "41 42 43 44"
  # gain 1.42
d7 $ gM3 $ gF3
  $ n "<0 0 <6 5> 0 1 1 2 7>"
  # "come_guitar" # cut 6
  # crushbus 61 (range 16 2.5 "^35")
  # lpfbus 62 (range 10000 7500 "^35")
  # room 0.3
d8 $ gM $ gF3
  $ midiOn "^60" (mask "t(4,8,1)" . chop 8)
  $ midiOn "^92" (ply "<4 4 8 16>")
  $ midiOn "^36" (loopAt 4 . (# n 11)) -- Submarine break
  -- FIXME(#54) d8 drives more controls than the grid gives it (B8 + C8). ^56 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^56 for its new owner also moves this. NOT commented out: this is a `$`-step and something above it is a partial application waiting for it, so removing it would stop the whole block compiling. Fold it onto d8's own control with gSel.
  $ midiOn "^56" (# "jungle_breaks:45") -- House Orleanaise
  $ midiOn "^56" (mask "t [t t <t f> <t!3 f>]" . loopAt 1 . (# n 16) . (# lpf 2500)) -- Jumper's break
  $ slice 8 "0 1 2 3*<1 2>"
  $ loopAt 2
  -- $ midiOn "^36" (# n 1)
  $ "jungle_breaks:13"
  # room 0
  # gain 1.2
  # cut 8
-- TODO: POTENTIEL INEXPLOITE EN CHACUN
d10 $ silence
d11 $ silence
d12 $ silence
