do
-- resetCycles
setcps (165/60/4)
let gMute = (midiOn "^73" (mask "f*16"))
let gM = gMask . gMute
let gDJF = (whenmod 64 32 (# djfbus 1 (slow 16 $ range 0.01 0.45 saw)))
let gDJF = id
d1 $ gDJF $ gM1 $ gF1 -- KICK SOUTENANT
  $ midiOn "^42" (<| "k . ~ k ~ ~")
  $ fix ((# drumFrom "rolandtr909" "bd:3")) "909bd"
  $ "[jazz,909bd]"
  # midiG' "^78" 0 1.9
d2 $ gDJF $ gF1 $ gM -- FIXME Meilleure dialectique kick/snare
  $ fix (whenmod 4 3 (ply "4 [4 <1 2>]") . (|* gain 0.8) . (# rel 0.1)) "clap"
  $ fix ((# n 2) . (# pan 0.2) . (# note "-24")) "glitch"
  $ fix ((|* gain 0.85) . (# note "-2")) "snare"
  $ whenmod 32 0 (superimpose ((# "snare:22")))
  $ "~ s ~ s*<1!3 2>"
  # "glitch"
  # begin 0.02
  # end 0.15
  # pan 0.8
  # midiG' "^79" 0 1.9
d3 $ gDJF $ gM $ gF1
  $ midiOn "^76" (mask "t(16,32)" . ply 2 . off "e" id)
  $ "~ h ~ h*<1!3 2> ~ h ~ h"
  # "h2ogmhh"
  # attbus 31 (range 0.2 0.05 "^52")
  # midiG' "^80" 0 1.9
  |* gain (range 0.85 1 (fast 2 perlin))
d4 $ gF2
  $ superimpose (# crushbus 41 (range 16 3 "^53"))
  $ note "<d4 e4 a3@2>"
  # "90s_matrix:3"
  # cut 4
  # pan 0.2
  # triodebus 42 (range 0 4 "^33")
  # midiG' "^81" 0 2
d5 $ gDJF $ gF1
  $ whenmod 8 7 (# delay 0.6)
  $ someCyclesBy "<<f t? t t> t f>" (off "e" ((|+ pan 0.1) . (|* gain 0.75) . (|+ note 7)))
  $ note ("0(3,8,1)" |+ "<e <c d f c  c f a c > <a4!4 d!3 a4>@2>")
  # "FMRhodes1"
  # pan 0.8
  # room 0.2
  # midiG' "^82" 0 1.9
d6 $ gF3
  $ mask "<[t <t f>. f]!8 [t . f t]!8 t!16>"
  $ whenmod 64 32 (
    fix (|* gain (slow 32 $ range 0.15 1 saw)) "cpluck:4"
    . fix (|* gain (slow 32 $ range 0.5 1 saw)) "cpluck:6"
    )
  $ fix (|* gain (slow 32 $ range 0 1 cosine)) "cpluck:5"
  $ fix (|* gain (slow 32 $ range 0.5 0 sine)) "cpluck:6"
  $ note ("e@2 c@2 e <f g c b4>")
  # hbrickbus 61 (range 0 0.4 "^55")
  # "[cpluck:4,cpluck:5,cpluck:6]"
  # rel 2
  # pan 0.2
  # att 0.01
  # midiG' "^82" 0 1.3
d7 $ gF3
  $ note ("0(<3!2 [3 5] <3 5>>,8)" + "<<d!3 g> [e <e f>] a4@2>")
  # "moog:1"
  # pan (slow 16 $ range 1 0.7 saw)
  # gain 0.7
  # room 0.4
  # delay (slow 8 $ range 0.5 0.5 saw)
  # delayt (1/8)
  # delayfb (slow 16 $ range 0.1 0.8 saw)
  # cut 7
  # crushbus 71 (range 16 2.4 "^55")
  # lpf 4000
  # midiG' "^83" 0 1.3
d8 $ gM $ gF1
  $ midiOn "^92" (ply 2)
  $ slice 8 (run "8 . <8!6 4 [4 8]> <8 8 16 <16 32>>")
  $ loopAt 2
  $ "jungle_breaks:20"
  # cut 8
  # midiG' "^84" 0 1.9
