do
setcps (160/60/4)
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute1 = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM1 = gMask . gMute1
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
d1 $ gF1 $ gMute2
  $ midiOn "^42" (<| "k k k*<1 1 0 1 1 1 1 2> k*<1!3 2>")
  $ midiOff "^42" (<| "k . ~ k ~ ~")
  $ "[cpu,kick:5]"
  # gain 0.8
  # lpf 2000
d2 $ gF1 $ gM1 $ "~ sn ~ sn*<1!3 2>" # "snare:30" # lpf 4000
d3 $ gF1 $ gM1 $ "[~ hh]*4" # "h2ogmhh" # gain 0.8
d4 $ gF2 $ gMute3
  $ midiOn "^57" (struct "t(4,8)")
  $ midiOn "^89" (off "e" id)
  -- TODO Vary bassline, pas juste l'attente
  $ note "<a*2 ~> ~ <~ <<d6!4 c5!4>*<2 1>>> <~ <c6!4 bs5!4>>"
  # "bassWarsaw" |- note 36
  # crushbus 41 (range 11 2.8 "^53")
  # roombus  42 (range 0 0.8 "^53") # sz 0.8 # dry 1.1 # lpf 5000
  # legato 2
d5 $ gF3 $ gM3
  $ whenmod 16 8 (juxBy 0.5 (("e" ~>) . (|+ note 12) . (# cut 51)))
  -- $ whenmod 16 0 (superimpose ((# "FMRhodes2") . (|+ note 12)))
  $ note (
  "<[0(3,8) 0]!3 [0*4]>" -- Rythme
  |+ "<[gs a@2] [b c5@2] [e f@2] [f fs@2]>" -- Notes
  -- - "<12!8 0!8>"
  + 24 -- Octave
  )
  # "giorgio_syn:28"
  # octerbus 51 (range 0 1.5 "^54")
  # gain 1.5
  # pan "<0.2!4 0.8!4>"
  # cut 5
  # att 0.9
  # rel 2
-- d6 $
d8 $ gF1  $ gM1
  $ loopAt 2
  $ chop 8
  $ midiOff ("^60" + "^92") (mask "f(8,16)" . chop 8)
  $ midiOn "^56" (# n 23)
  $ midiOn "^92" (loopAt 0.5 . (# "breaks165"))
  $ slice 4 "<0!3 2> <1!3 3> 2 3"
  $ "jungle_breaks:22"
  # gain 0.9 # cut 8


gs a - b c - e f - f fs