import Sound.Tidal.ParVagues.Control

-- This is a test ;)
--
do
setcps (160/60/4)
let gDJF = midiDJF "^49" 200 9800 0 4000
let gFreqL = (# lpq (range 0 0.5 "^29"))
let gFreqH = (# hpq (range 0 0.5 "^30"))
let g32Bridge = whenmod 64 32 (|* gain (slow 16 $ range 0.85 1.1 saw))
let g = (gDJF . gFreqL . gFreqH)
d1
  $ g
  $ superimpose ( -- Undertone
    (|+ note "<12!3 8 12!2 8 4>")
    . (|* gain 0.9)
  )
  $ (|* gain "1!7 0.95")
  $ "b . ~ b ~ <~!3 b>"
  # "[reverbkick,jazz,kick:5]"
  # release 0.8
  # midiG' "^78" 0 1.2
d2
  $ g
  $ g32Bridge
  $ whenmod 16 12 (struct "t*<4 4 8 16>")
  $ whenmod 16 8 (fast 2)
  $ "~ cp"
  # "[snare:4,snare:22]"
  # pan 0.55
  # note (range "-7" 7 "^51")
  # room 0.8 # dry 0.99 # sz 0.2
  # midiG' "^79" 0 1.2
d3 -- Running Hats
  $ g
  $ degradeBy ("1 0 0 1!13" - "^52")
  $ midiOn "^44" (fast 2)
  $ "h2ogmhh*8"
  # n "[0|0|0|0|1|1|3|3]*8"
  # midiG' "^80" 0 (1.3 + (slow 4 $ perlin/4))
  # room  (slow 8 $ range 0.2 0.45 saw)
  # sz    (slow 8 $ range 0.8 0.2 saw)
  # dry   (slow 4 $ range 0 2 perlin)
  # pan 0.6
  # cut 3
d4 -- Resolute Bass
  $ g
  $ midiOn "^57" ( -- Glitch vary end
    whenmod 32 8 (slice 8
    "<[0 1 <2!3 1*2> <3!3 1*2>]!4 0*4!2 [0 1 0 1] [0 1 0 [0 1 2 3]]>"
  ))
  $ loopAt 4
  $ chop 16
  $ "fbass:25"
  # pan 0.15
  # room 0.25 # sz 0.1
  # crush (range 16 1.45 "^53")
  # midiG' "^81" 0 1.6
  # cut 4
d6 -- Guitar A
  $ g
  $ mask "<f!3 t>"
  $ ("0.175" ~>) -- Calage
  $ whenmod 4 2 (slice 8 "0")
  $ slice 5 4
  $ segment 16
  $ "fguitar:24"
  -- # pan 0.8
  # crush (range 10 3.5 "^54")
  # midiG' "^82" 0 (1.2 * (range 1.4 0.5 "^18"))
  # cut 6
d7 -- Guitar B
  $ g
  $ whenmod 4 3 (# silence)
  $ segment "<0.5!2 1 <2 4 8 [8 16]>>"
  $ "fguitar" # n "<25!3 [25 26] 25!2 27!2 27!8>"
  # pan 0.65
  # crush (range 10 2 "^54")
  # midiG' "^82" 0 (1.2 * (range 0.5 1.4 "^18"))
  # leslie "^34"
  # lsize (1 + (slow 8 perlin * 2))
  # lrate 6.7
  # cut 71



d6 $ "seawolf:0/4"
  # cut 6
  # gain 0.75

once $ "dr" # gain 1