do
let gF1 =  (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask =  (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM1 = gMask . gMute
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
let gMaskEnd16 = mask "<t!7 [<t f> <f t> ]>"
let prog1 = "<b3 fs3 a3 e3>"
let prog2 = "<b2 d3 e3 <cf3 a2 cf3 <f3 fs3>>>"
-- DEBUG: Prog avec un copier coller sale
let prog = "<b3 fs3 a3 e3 b3 fs3 a3 e3 b3 fs3 a3 e3 b3 fs3 a3 e3                                 b2 d3 e3 cf3 b2 d3 e3 a2 b2 d3 e3 cf3 b2 d3 e3 <f3 fs3>>"
let prog = prog2
let prog = prog1
do
setcps(125/60/4)
d12 $ gM3 $ gF3 -- PIANO DE DEBUGGING
  $ struct "<t(3,8)!11 t>"
  $ note (prog + 5 - 12)
  # "FMRhodes1"
  # gain 1
  # velocity 2
  -- # room 0.3 # sz ("0.2 0.4 0.6")
d1 $ gF1 $ gMute2 -- KICK PLEIN
  -- $ fix ((# att 0.05) . (# lpf 4500) . (# gain 0.9)) "rampleR1:0"
  $ midiOn "^42" (<| "k k k <k!3 <k*2 [k*2 k] [k ~ k] [k*4]>>")
  $ midiOff "^42" (<| "k")
  $ "[rampleR1:0]"
d2 $ gF1 $ gM1
  $ midiOn "^42" (whenmod 64 8 (<| "~ s ~ s"))
  $ midiOff "^42" (<| "~ s")
  $ "snare:36"
  # lpf 4000
d3 $ gF1
  $ "~ hh ~ h*<1!4 2!3 1> ~ h ~ h*<1 2 1 [8 4]>"
  # "rampleS33:6"
d6 $ gF1 $ gM1-- La neige eternelle
  $ struct "~ <~ t(<1 <2 3>>,8)>"
  $ slow 16
  $ slice 16 (run 16)
  $ "drums_nes:13" # cut 3
  # pan (slow 16 $ range 0.9 0.3 saw)
d4 $ gF2 $ gM3 -- La gravite, inevitable
  $ note (prog
    + "[0 ~ <2 <-1 2>> ~ 0] <3!3 5>(1,2,<0!4 1!4>)"
    + 0
  )
  # "bassWarsaw"
  # octersubbus 41 (range 0 1.4 "^53")
  # cut 4
  # pan 0.3
d5 $ gF3 $ gM3 -- La lumiere, partout
  $ midiOn "^58" (chop 8)
  $ midiOff "^58" (chop 2)
  $ midiOn "^90" (ply "2 <2 4>")
  $ note prog
  # "90s_glassatm:0"
  # cut 5
  # pan 0.8
  # octerbus 51 (range 0.01 1.99 "^54")
d7 $ gF1 $ gM1 -- Les inevitables trolls
  $ fix ((|* gain 0.8) . (|- note 4) . (# "rampleR0:3")) "r0bd1"
  $ fix (# "rampleR0:2") "r0bd"
  $ fix ((# "90s_megafx") . (# cut 81) . (|* gain 1.1)) "fx"
  $ stack ["r0bd@7 <~!0 r0bd1!8>","~ fx:78"]
  # gain 0.5
d8 $ gF1 $ gM1
  -- $ ply "1 2"
  $ midiOn "^56" (# n "4")
  $ midiOn "^60" (slice 16 (run "<[8!3 4]!3 <4 [4 <8 16>]>>"))
  $ midiOn "^92" (ply 2)
  $ chop 16
  $ loopAt 2
  $ "jungle_breaks:30"
  # gain 0.6

  once $ note "b4"
    # "bassWarsaw"
    # cut 1
    # lpf 4000
    # gain 0.5
    # room 0.2 # sz 0.8