-- La voix de l'ordre
-- intro drone monotonal devenant breakbeat
-- outro fusion retour drone puis waveloss

resetCycles

do
let prog = "<d2 <f3 g2>>"
let gDjf = (whenmod 64 32 (# djf (slow 32 $ range 0.5 1 saw)))
d1
  -- $ mask "t f!7" -- TODO OUTRO
  $ mask "<f!3 t f!4 t!56>"
  $ gDjf
  $ "k*<1!12 2!4> . k(<3 1 3 <3 5 1 8>>,8,<0!3 4>)"
  # "reverbkick"
  # gain 0.65
  # pan 0.4
  # lpf 250
d2
  -- $ (# silence) -- TODO OUTRO
  $ mask "<f!16 t!48>"
  $ gDjf
  $ "~ s ~ s*<1!3 2 1 1 2 2>"
  # "snare:22"
  # lpf 2000
  # gain 0.8
  # pan 0.6
  # room 0.1
d4
  -- $ ((# waveloss 35) . (chop 4) . (|* gain 1.1)) -- TODO OUTRO
  $ off 1 (
    (|+ note 12)
  . (|* gain 0.5)
  )
  $ note (slow 8 $ prog)
  # "moogBass"
  # legato 4
  # gain 0.85
d5
  $ jux (rev . (|* gain 0.9))
  $ whenmod 54 48 (<| "hh*<[8!3 [16 8]] [8 . 1 8] 8 [8 . 1 [8 16]]>")
  $ whenmod 16 8 (off "h" (fast "2 4"))
  $ "<hh [~|~|hh]>"
  # cut 2
  # gain 0.55
d3
  -- $ (|* gain 0.2)  -- TODO OUTRO
  $ note (prog)
  # voice (slow 4 $ run 8)
  # "superhammond"
  # room 0.5
  # gain (slow 128 $ range 0.55 0.75 perlin)
d6
  -- $ (|* gain 0.36)  -- TODO OUTRO
  $ jux (rev . (# cut 61))
  $ slice 8 (run "<8!3 4 [8 4] 8 <4 2> <4 [4 8]>>")
  $ loopAt 1
  $ "breaks125"
  # pan (slow 16 $ range 0.05 0.95 cosine)
  # cut 6
  # gain 0.65
