-- /home/pln/Work/Art/GLITCHWAVE/outputs/digital_flow.gif
-- L'Été a MauerPark <3
do
setcps (120/60/4)
let gF =  (# djfbus 1 (range 0.05 0.95 "^49"))
let gMute = (midiOn "^73" (mask "f*16"))
let gM = gMask . gMute
let gLPF = whenmod     64 48 (# lpfbus 4 (slow 16 $ range 20000 200  saw))
let gLPFSoft = whenmod 64 48 (# lpfbus 5 (slow 16 $ range 20000 2000 saw))
let chorus = pF "chorus"
let lagamount = pF "lagamount"
let dec = pF "dec"
let sus = pF "sus"
let cutoff = pF "cutoff"
d1 $ gF $ gM1
  $ fix (|* gain 0.9)"kick:4"
  $ midiOn  "^41" (struct "t t t t") -- Le Run
  $ midiOff "^41" (struct "~ <t!3 ~>") -- L'attente
  $ "[techno:0,808bd:2,909,kick:4]"
  # rel 0.5
  # att 0.015
  # lpf 4000
  # gain 1.5
d2 $ gF $ gMute -- Clap timer
  $ midiOn "^42" ((|* gain "0 1 <0.9 0.8> 1") . (<| "~ c <~ [~ c]> c"))
  $ midiOff "^42" ((|* gain "1 0.8") . (<| "c . ~ ~ ~ <~!3 c>"))
  $ drumFrom "[sakatadpm48,rolandr8]" "cp"
  # lpf 2000
  # gain 1.2
d3 $ gF $ gMute
  $ midiOff "^43" (mask "t([8 4 <4 <8 16>>],16)")
  -- 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" (struct "t*[8 <8 16> <16 8 8 16> <16 [32 <64 128>]>]")
  $ fix ((|* gain (slow 32 $ range 0.3 1.3 saw))) "oh"
  $ "~ h ~ h ~ h*<1!3 2 1 1 2 2> ~ h*<1!7 2>" # drumFrom "sakatadpm48" "[hh,oh]"
  # n "0!3 <0!3 1>"
  -- # midiG' "^80" 0 1.6
  # gain 1.1
d4 $ gM3 $ gF2
  $ midiOn "^44" (# n "20")
  $ midiOn "^76" (ply "4 4 <1 1 1 4> <1 2 2 4>")
  $ "zombie" # n "<4 6 4 6 11 11 11 11>" 
  # cut 4 
  # begin "<0!4 0 0.2 0.2 0.4>"
  # gain 1.3
  # pan 0.4 # room 0.3
  # crushbus 41 (range 16 3.5 "^32")
d5 $ gF3 $ gM3 
  $ "zombie" # n "<12!4 6!4 2!3 1 2 2 1 2>" 
  # cut 5 
  # pan 0.8
  # crushbus 51 (range 16 4.5 "^33")
  # octerbus 52 (range 0 1.5 "^53")
  # octersubbus 53 (range 0 2.5 "^53")
  # room 0.4
  # gain 1.2
d7 $ gF3 $ gM3 
  $ midiOn "^91" (chop 4) 
  $ midiOn "^59" (ply "2 2 2 4")
  $ "zombie:24" 
  # cut 7
d8 $ gM $ gF -- Breaks divins
  $ midiOn "^92" (off "e" id)
  $ midiOff "^60" (("e" ~>) . mask "t(<4 [4!3 8]>,16)")
  $ chop 16
  $ someCyclesBy "^36" (loopAt 1 . (# n 34))
  $ someCyclesBy "^56" (chop 8 . loopAt 1 . (# "fbreak120:3"))
  $ loopAt 2
  $ "jungle_breaks:1"
  # cut 8
  # pan "[<0.35!3 0.65> <0.65!3 0.35>]*4"
  # gain 1
d9 $ gF2 $ gM3 
  $ fix ((# cut 91) 
  . ply "<1!4 2 2 1 [4 8]>"
   . (|* gain 1.1)
   . (# legato 0.9)) "cbow"
  $ note ("<e e g c>" 
   - 24)
  # "[90s_matrix:4,cbow:2]" 
  -- # cut 9
  # gain 1.3
  # crushbus 91 (range 16 3.5 "^19")
  # room 0.2 # sz 0.8 # dry 1.1
d10 $ gF3 $ gM3 
  $ midiOn "^29" (slow 4 . ply 4)
  $ slice 16 "<[0 1 2 3] [4 5 6 7] [8 9 10 11] [12 13 14 15]>" $ "zombie:19" 
  # cut 10 
  # gain 1.4 # room 0.3 
d11 $ gF2 $ gM3
  $ mask "<t!4 f!3 t>" 
  $ "zombie:22" # cut 11
  # pan (slow 32 $ range 0.3 0.7 sine)
  # gain 1.4
  # room 0.4 
  # hpf (slow 32 $ range 500 8500 perlin)
d12 $ gF3 $ gM3
  $ mask "<t t t f>" 
  $ "zombie:23" # cut 12
  # pan (slow 32 $ range 0.7 0.3 sine)
  # hpf (slow 16 $ range 500 8500 perlin)
  # gain 1.4
