
do
-- resetCycles
setcps (90/60/4)
let blues = ["c", "f", "c", "c", "f", "f", "c", "c", "g", "f", "c", "c", "g", "f", "c", "g"]
-- Modified blues to add a seventh with bflat
let bluesM = ["c", "f", "c", "c", "f", "f", "c", "c", "g", "f", "c", "c", "g", "f", "bf", "c"]
-- let blues = bluesM
let gDJF = (# djfbus 1 (slow 32 $ range 0.2 0.8 saw))
let gDJF = id
d1 $ gF1 $ gM1
  $ midiOn "^41" (<| "k k k <k k*2>")
  $ midiOff "^41" (<| "k . k(3,8)")
  $ fix ((|* gain 0.6) . (# hpf 200)) "jazz"
  -- $ "<k!16 k*2!16 k*4!16 [k . k(3,8)]!16>"
  $ "[jazz,cpu]" # gain 1
  -- # midiG' "^78" 0 1.5
d2 $ gF1 $ gM2
  $ midiOff "^42"  (<| note ("~ ~ ~ <~ ~ -2 -2>. 0" - 8))
  $ midiOn "^42"  (<| note ("~ 0 ~ 0"))
  $ "[snare:60,snare:21,snare:51]"
  # gain 0.56
  # pan 0.3
  -- # room 0.2 # dry 1.1 # sz 0.8
d3 $ gF1 $ gM2
  $ midiOn "^43" (ply 2)
  -- 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)
  $ "drum:2*[4 <4 <8 16>>]"
  -- $ "drum:2*[6 12]"
  # att 0.03
  # rel 0.9
  # pan 0.3
  # gain 0.85
d8 $ gF1 $ gM2
  $ midiOn "^92" (ply 2)
  $ chop 8
  $ midiOn "^36" (loopAt 1 . (# "break:5"))
  $ midiOn "^56" (loopAt 1 . (# "break:9"))
  $ loopAt 2
  $ "jungle_breaks:8"
  # gain 0.8
  # pan 0.7
d4 $ gF2 $ gM3
  $ midiOn "^44" (|+| note "0 <7 7 12 12>(3,8) 0 <7 12>([5 <3 2>],8)")
  $ midiOn "^76" (superimpose (|+| note "[0 0(<3!3 5>,8)]"))
  $ note (
    cat blues + "[0]"
  )
  -- # "bass3:4"
  -- # "modalMarimba" |+| note "0*4"
  # "bassWarsaw" |- note 24
  # octersubbus 41 (range 0 2 "^32")
  # pan 0.3 # crush 16
  -- # room 0.1
  -- # voice 0.8
  -- # cut 1
  # gain 1.075
  # lpf 300
d5 $ gF3 $ gM3
  $ swing 4 -- TODO Replace with sampled guitar wahwah
  $ arp "updown"
  $ note (
    cat (blues) + "c'maj'4"
    + 12
  )
  # "cpluck:2"
  # pan 0.3
  # cut 5
  # gain 1.75
  # lpf 300
d10 $ gF3 $ gM3
  -- $ superimpose (|+| note "[0 0(<3!3 5>,8)]")
  $ note (
    cat blues + "[0*4]"
  )
  # "moogBass"
  # pan 0.7 # crush 16
  # cut 10
  # gain 0.75
  # lpf 300

-- TODO Recover this guitar and make it midi-agnostic
d5 $ gF3 $ note (
  "<0 [0, [~@3 <2 0 0 2>@3 0@2]] [0@4 0@2] 0([1 3],8)>"
  -- TODO: Pk pas la reecrire offbeat plutot que onbeat
  -- "0(5,8)"
  |+| cat blues
  - 3.25 -- Decalage au do
  -- + 12
  )
  # cut 51
  # room 0
  # crushbus 51 (range 16 3 "^33")
  # "come_guitar:0"
  # midiG' "^82" 0 1.7

once $ "cpluck:3"
