-- Dark ANGEL FRAPPE
-- Needs bass/more lead high?
do
-- region Nova Utils
let gFactor = 1.4
let gG a = (gain (gFactor * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
let gLPF = (# lpf (min 10000 ((range 200 20000 ("^49")))))
let gHPF = (# hpf (max 0 (min 7500 ((range "-7500" 7500 ("^49"))))))
let gDJF = (gLPF . gHPF)
let gRes = (# hpq (range 0.01 0.5 "^29")) . (# lpq (range 0.01 0.5 "^30"))
let novaOn  ch pat = (someCyclesBy ch pat)
let novaOff ch pat = someCyclesBy (1 - ch) pat
-- endregion Nova Utils
let g = (gDJF . gRes)
setcps 0.5
d1 $ g
  -- FIXME(#94) d1 drives more controls than the grid gives it (BT1 only — BL1-3 are the family mutes). ^41 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^41 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 d1's own control with gSel.
  $ midiOn  "^41" (<| "k k k k")
  $ midiOn  "^41" (<| "k k k <k [k k] k [~ k]>")
  $ midiNo "^41" "^41" (<| "k . k(<<3 [3 5]> 3 3 5>,8)")
  $ "[jazz,cpu,bd:8]"
  # room 0.2 # sz 0.8 # dry 1
  # gM' 0 1.16 "^78"
d2 $ g -- Clap
  $ novaOn "^42" (fast 2 . whenmod 4 3 (ply "1 2"))
  -- FIXME(#94) d2 drives more controls than the grid gives it (BT2 only — BL1-3 are the family mutes). ^60 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^60 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 d2's own control with gSel.
  -- FIXME(#94) d2 drives more controls than the grid gives it (BT2 only — BL1-3 are the family mutes). ^60 now belongs to another orbit, so this step STILL FIRES ACROSS COLUMNS — turning ^60 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 d2's own control with gSel.
  $ novaOff "^60" (# silence)
  $ "~ [clap,<cp!3 ~>]"
  # lpf 2500
  # room 0 # dry 0.99
  # gM' 0 1.13 "^84"
d3  $ g -- Break 4/4
  $ midiOn "^43" (slow 2)
  $ fix (|* gain 0.8) (n 2)
  $ n "2 3 0 <3!3 <[~ ~ 3 5] [3 3 ~ [5 ~]]>>"
  # "amencutup"
  # note (range "-12" 12 "^51")
  # pan 0.4
  # gM' 0 1.4 "^79"
d8 $ g -- Hats
  $ fix (|* gain 0.9) ("hh27")
  $ "d*[8 <[8 4 8] [8 16 8] [8 4] 16>]"
  # "[drum:2,hh27:4]"
  # pan (slow 16 $ range 0.4 0.6 saw)
  # gM' 0 1.45 "^80"
d4 -- RESONANT BASSLINE
  $ g
  $ novaOn "^44" (slow "2 . 2 <1!3 0.5>")
  $ whenmod 16 12 (
    degradeBy ("[0 1!3]*2" * (slow 17 $ range 0 0.5 perlin))
    . (# legato 2)
  )
  $ note "b2!6 <bs2!3 <a2 g2>> b2" # "supersaw"
  # gM' 0 1 ("^81" - 0.2 * "^32")
  # crush (range 10 1 "^32")
  # room 0.5 # sz 0.8
d5 $ g -- Synth voices
  $ novaOff "^57" (# silence)
  $ whenmod 8 4 (juxBy 0.25 (rev . (# cut 51)))
  $ loopAt 2
  $ slice 8 ("0 1*<1 2 4> 2(<1 2 3 5>,8) <3 7 3 [6 7]>")
  $ "fsynth:47"
  # crush (range 10 2 "^33")
  # gM' 0 1 ("^82" - 0.2 * "^33")
  # cut 5
d7 $ g -- Side guitar
  $ sometimesBy "^35" (scramble 16)
  $ mask "<t!6 f!2>"
  $ loopAt 2
  $ "fguitar:61"
  # cut 7
  # pan 0.2
  # crush (range 16 2 "^55")
  # gM' 0 1 "^83"
