resetCycles

do
setcps(125/60/4)
let prog = "<c g f c>"
d1 $ gF1 $ gM1
  $ fix ((# lpf 150) . (|* gain 0.93)) "kick:5"
  $ midiOn "^41" (<| "k k k <k <k*2 [k k k ~]>>")
  $ midiOff "^41" (<| "k ~ ~ [~ <~ k>]")
  $ "[kick:5,tech:5,jazz]"
  # gain 1
d2 $ gF1 $ gM2
  $ midiOn "^42"  (<| "~ c ~ c")
  $ midiOff "^42" (<| "~ . c*<1!3 <2!3 4>> ~")
  $ fix ((|* gain 0.8) . (# room 0)) "cp"
  $ "[cp]" # room 0.4 # sz 0.5 # dry 1.2
  # gain 0.7
  -- # lpf 4650
d3 $ gF1 $ gM2 -- Highest hats
  $ 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*[<6!3 12> <6 [8 <12 24>]>]"
  # "h2ogmsn:12"
  # cut 3
  # legato (range 0.48 1 sine)
  # gain (0.7 * (range 0.85 1.05 (fast 4 perlin)))
  # room 0.14 # sz 0.4 # dry 1
  # pan "<0.7!16 0.3!16>"
  -- # pan 0.8
d4 $ gM3 $ gF2
  $ midiOn "^76" (superimpose ( -- Arp up!
    struct "t*<4 8>" .
    (|+| note (arp "down" "[0,<5 7>,9, 12]")) . (# cut 41))
  )
  $ midiOn "^44" (ply "2 <4 8>")
  -- $ chop 8
  $ loopAt 4
  $ note (prog - 36  + "0(3,8) 0(<3 5>,8,<0!6 2!2>)")
  # "bassWarsaw"
  # cut 4
  # legato 4
  # pan 0.35
  # room 0.3
  # crushbus 41 (range 12 4.5 "^32")
d5 $ gM3 $ gF3
  $ someCyclesBy (slow 8 $ range 0.1 1 saw) (degradeBy "0 1!6 0.5")
  $ swingBy ("<1!3 <2 1>>"/3) 4
  $ note (prog  - 12 + arp "pinkyup" "c'min'4")
  # "FMRhodes2"
  # cut 4
  # legato 4
  # pan 0.35
  # room 0.3
  # modIndex (range 0 50 "^33")
d7 $ gF3 -- Anges du Minitel
  $ midiOn "^91" (chop 8)
  $ swingBy ("<1!3 2>"/3) 4
  $ stut (slow 16 "<0 1 2 3>") 0.75 "e"
  $ note ((slow 4 prog) + arp "up" "<c'min'3!3 c>@3 ~")
  # pan 0.2
  # room 0.4
  # "moogBass"
  # gain 0.8
d10 $ gF3 $ gM3 -- Anges du Minitel
  $ note ((slow 4 prog) + arp "up" "c'min'3(<3 3 <5 3> 5>,8) ~")
  # "moogBass"
d8 $ gM2 $ gF1
  -- Transforms over samples
  $ midiOn "^60" (iter "1 4") -- Split
  $ midiOn "^92" (fast 2) -- Multi
  $ chop 16
  $ loopAt 2
  -- Sample selection
  $ midiOn "^36" (# n 33)
  $ midiOn "^56" (loopAt 1 . (# "break:7"))
  $ "jungle_breaks:20"
  # cut 8
  # pan "<0.3!16 0.7!16>"
  # gain 0.78

d5 $ gM3 $ gF3
  $ chop 8
  $ loopAt 2
  $ "nujazz_keys125" # n "<56 56 57 56 58!4 59 59 56 59>"
  # cut 5
  # pan 0.6
d7 $ gM3 $ gF3
  $ chop 8
  $ loopAt 2
  $ "nujazz_keys125" # n "<66!4 67!4>"
  # cut 7
  # octerbus 71 (range 0 0.5 "^35")
  # pan 0.1
d12 $ gM3 $ gF3
  $ slice 4 "<<[0 1 2 3] [0 1 0 1 2 3 2 3]> [0 1 2 3]>"
  $ chop 8
  $ loopAt 2 $ "nujazz_keys125:44"
  # cut 5
  # gain 0.8
  # pan 0.7
  # room 0.2
d11 $ gM3 $ gF3
  -- $ (0.5 <~)
  $ loopAt 2
  $ "nujazz_keys125"
  # n "<4!3 5>"
  # cut 5
  # roombus  110 (slow 16 $ range 0 0.9 saw)
  # lpfbus 112 (slow 32 $ range 12000 500 sine)
  # att 0.02
  # rel 7
  # gain 0.9
d10 $ gM3 $ gF3
  $ superimpose (
    mask "<f!16 t!16>"
    . arp "<up [up down]>"
    . (|+ note "c'maj'4") . (|* gain 0.75))
  $ note ("<c5 g4 <ef4!2 bf4!2> <c4 f4>>" + "0(3,8) 0(3,8)"
  -- - 12
  )
  # "[FMRhodes1]"
  # modIndex 1
  # room 0.2
  # pan 0.45
  # gain 1.2
