resetCycles

do
setcps(120/60/4)
d1 $ gF1 $ gM1
  $ fix ((# lpf 150) . (|* gain 0.93)) "kick:5"
  -- $ midiOn "^42" (<| "k k k <k <k*2 [k k k ~]>>")
  $ midiOn "^41" (<| "k k k <k!3 <[~ k*<1!3 2>]!3 k*2>>")
  $ midiOff "^41" (<| "k ~ ~ [<~!3 [~ k]> <~ k*<1!7 2>>]")
  -- $ fix (|* gain 0.85) "rampleS57"
  $ "[house:0,kick:5]" -- TODO: Meilleur kick?
  -- # cut 1
  # gain 1.1
d2 $ gF1 $ gM2
  $ midiOn "^42"  (<| "~ c ~ c*<1!3 <1 <2 4>>>")
  $ midiOff "^42" (<| "~ . ~ c*<1!3 <2!3 4>>")
  $ "[cp:1,rampleM1:10]"
  # gain 1.3
  # pan 0.6
  # room 0.84 # dry 0.95 # sz 0.1
  # lpf 4650
d3 $ gF1 $ gM2 -- Highest hats
  $ midiOff "^43" (slow 2)
  $ arp "up"
  -- 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)
  -- $ "d(<8 10 12 <14 [16 32 [16 <16 32>]]>>,16,1)" -- FIXME IRREGULIER
  $ "d([16 <16 [8 <8 32 16 32>]>],32,0)" -- REGULIER :)
  -- # "[h2ogmsn:14]"
  # "[rampleS57:2]"
  # note (-12 + "3.5" + "e6")
  -- # cut 3
  # gain (0.9 * (range 0.85 1.05 (fast 4 perlin)))
  # pan 0.3
d4 $ gF2 $ gM3
  $ midiOn "^44" (mask "t(4,8)")
  $ midiOn "^76" (off "e" (|+ note 12))
  $ note ("e3 <b2!3 <ef3 g3>>" |+| "[0 ~ ~ 0 ~ ~ 0 ~] [0 ~ ~ 0 ~ <~ 0> 0 <~!3 0>]")
  # crushbus 41 (range 16 3.4 "^32")
  # roombus 42 (range 0 0.4 "^52") 
  # "bassWarsaw"
  # gain 1.4
d5 $ gF3 $ gM3 -- Piano guide premier
  $ midiOn "^89" (slice 4 "<2 ~> <1 <2 [2 1]>>" . (# n 60))
  $ midiOn "^57" (slice 4 "2(3,8,<0!3 1>) 1(<0 1 3 [3 5]>,8)" . (# n 60))
  $ "nujazz_keys120"
  # n "<61!24 60!8>"
  # pan 0.8
  # roombus 51 (range 0 0.4 "^33") # sz 0.14
  # lpfbus  52 (range 10000 400 "^33")
  # cut 5
  # gain 1.3
d11 $ gF2 $ gM3 -- Doubting bass
  $ chop 16
  $ loopAt 2
  $ "nujazz_bass120"
  # n "<33!64 34!64>"
  # pan 0.3
  # cut 4
  # att 0.06 # rel 2
  # crushbus 41 (range 16 3 (slow 16 $ perlin))
d6 $ gF3 $ gM3 -- Plucking doubts
  $ midiOn ("^58"-"^90") (stut 4 0.6 "q") 
  $ midiOn "^90" (stut 8 0.6 "q") 
  $ someCyclesBy "<1!32 0!32>" (|+ note "<e g bf b>")
  $ someCyclesBy "<0!32 1!32>" (|+ note "<e b bf g>")
  $ note (
    "[0 12 0(<1!3 <3 [3 1]>>,5)]"
    + "[0,12]"
    - 12
  )
  -- # cut 10
  # "cpluck:4"
  # octersubbus 62 (range 0 3 "^34")
  # crushbus 61 (range 16 3 "^54")
d7 $ gF1 $ gM2 -- SECOND BREAK!!?!
  $ midiOn "^91" (ply 2)
  $ chop 8
  $ midiOn "^35" (loopAt 1 . (|> "jungle_breaks:19"))
  $ midiOn "^59" (slice 8 (run "8 <8!3 16>"))
  $ loopAt 2
  $ "jungle_breaks:22"
  # pan "0.8 0.2"
d8 $ gF1 $ gM2 -- Le Beat, Nu
  $ midiOn "^92" (ply "2 <2 <4 [4 8]>>")
  $ chop 16
  $ midiOn "^60" (mask "f(4,8)" . chop 16)
  $ midiOn "^36" (loopAt 0.5 . (# "jungle_breaks:6"))
  $ midiOn "^56" (# "jungle_breaks:24")
  $ loopAt 4
  $ n "<10!8 11!8 12!8 10!8>"
  # pan "0.2 0.8 0.2 0.8"
  # "nujazz_beats120"
  -- # pan 0.26
  -- # gain 0.9
  -- # octersub 1.2
  -- # octersubsub 2
  # cut 8
  # gain 1.3
