do
setcps (80/60/4)
let gF =  (# djfbus 1 (range 0.05 0.95 "^49"))
let gMute = (midiOn "^73" (mask "f*16"))
let gM = gMask . gMute
let progAlt = "<[c,e,g,b] [c,e,gf,a4] [c,ef,g,bf5] [c,e,g,d5]>"
let prog = "<[c,e,g,b] [c,e,g,bf] [c,ef,g,bf] [c,e,g,b]>"
d1 $ gF $ gMute
  $ midiOn  "^41" (struct "t t t <t!3 <t*2 t*[4 2]>>")
  $ midiOff "^41" (struct "t*[<1!4 [8 <8 4>]!4> . 2] . ~ ~ ~ <~!3 t>")
  $ "[808bd:13,jazz]" -- 11
  -- # midiG' "^78" 0 1.42
  -- # room 0.2 # sz 0.2
--   # dry 0.99
d2 $ gF $ gM -- Snare clockwork
  $ fix (|* gain 0.9) "clap"
  $ midiOn "^75" (struct "~ t ~ t ~ t ~ t*2")
  $ midiOff "^75" (
    midiOn  "^42" (struct "~ t(<3 [3 <1 5>]>,8)")
  . midiOff "^42" (struct "<[~ t]!32 [~ t ~ t]!32>")
  )
  $ "[snare:40]"
  # midiG' "^79" 0 1.2
d3 $ gF $ gM
  $ midiOff "^43" (slow 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 4")
  $ drumFrom "yamaharm50" "hh*<8!3 [8 . 16 <8 16 [24 8] 32>]>"
  # n "<0 1 2 3>"
  # midiG' "^80" 0 1.2
d8 $ gF $ gM
  -- $ midiOn "^60" (off "q" (# cut 31))
  $ midiOn "^60" (mask "t f . [f <f!3 t>] [<t!3 <f t>> t]")
  $ midiOn "^92" (ply "2 <2 4>")
  $ loopAt 1
  $ chop 8
  $ someCyclesBy "^36" ((# n 20))
  -- FIXME(#54) d8 drives more controls than the grid gives it (B8 + C8). ^56 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^56 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 d8's own control with gSel.
  $ someCyclesBy "^56" (loopAt 2 . (# n 81))
  $ sometimesBy  "^56" ((iter "1 4"))
  $ "jungle_breaks:13"
  # room 0.2 # dry 1.1 # sz 0.4
  # cut 3
  # pan (slow 8 $ range "<0.2!8 0.8!8>" 0.5 cosine)
  # midiG' "^84" 0 1.3
d4 $ gF3 -- LoFi Girl at the piano!
  $ midiOn "^76" (ply 2)
  $ midiOn "^44" (
    -- (often (off 0.5 (slow "1 " . mask "f t" . (|+ note 12) . (|* gain 0.9))))
    -- . (off ("h" + "s") id . arp "up")
    -- .
    (|+| note "0(<<3 [3 5]> <5 [5 [8 4]]>>,8)")
  )
  $ whenmod 64 32 (# note (progAlt - 12))
  $ note (prog - 12)
  # "FMRhodes2"
  # modIndex (range 0 16 "^32")
  # pan 0.8
  # midiG' "^82" 0 1.5
d5 $ gF2 -- Bassline langoureuse
  $ midiOn "^57" (mask "t(4,8) t(<4 8>,8)" . chop 8)
  $ note (
    -- "<[c,e,g,b] [c,e,g,bf] [c,ef,g,bf] [c,e,g,b]>"
    "<[c,c(3,8)] [g,[~ f6],g*4] [bf,bf(3,8)] c4>" + "0"
     - 24)
  # "bassWarsaw"
  # crushbus 51 (range 16 2 "^33")
  # midiG' "^81" 0 1.52
  # room 0.2 # sz 0.2
d7 $ gF3
  -- $ midiOff "^59" (mask "<f!64 t!64>")
  $ slice 4 "~ <~ [0 1]>"
  $ chop 4
  $ loopAt 4
  $ "shiloh:1"
  # lpf 5000
  # pan 0.2
  # cut 7
  # midiG' "^83" 0 1.1
  # room 0.4 # sz 0.59
  -- # freeze 2
  # dry 2

once $ ""

d1 $ "jazz" # gain 0.9
