once $ slice 32 "1*4" $ "kanye" # cut 21

do
resetCycles
let kWhen = slice 16 0 "kanye" -- one glad morning
let kWhen = "kanye" # begin 0.062 # end 0.16 -- when this life is over high
let kFly = "kanye" # begin 0.17 # end 0.23 -- Fly away
let kGlo = "kanye" # begin 0.515 # end 0.715 -- Fly away, Gloria, Fly!
setcps (117/4/60) -- Fixed by sample
d1
  $ mask "<f!4 [t f]!4 t!120>" -- Instrumentation
  $ juxBy 0.125 id
  $ whenmod 64 48 (# lpf 200) -- retour
  $ whenmod 64 32 (mask "<f!16 t!16>") -- pont
  $ "k*4"
  # "jazz"
  # gain 0.8
d2 -- Claps
  $ mask "<[t f]!16 t!112>" -- Instrumentation
  $ juxBy 0.2 ((# "clap:<0!2 2!2>") . (|* gain 0.9))
  $ whenmod 16 8  ( -- Last 4/16 stut
    whenmod 8 4 $ stut 4 0.95 "<e!3 s>"
  )
  $ whenmod 8 4 (# lpf "<3000 2000 1200 500>")
  $ "~ . c <~ c*2>"
  # "cp"
  # gain 0.8
d3 -- Drumroll
  $ mask "<f!4 t!124>" -- Instrumentation
  $ whenmod 8 4 (juxBy 0.7 rev)
  $ mask "<[t <f!7 f!3 f f?>]!16 t!16>" -- arrivee progressive
  $ fast "8 <8!4 16!4>" $ "dr" # gain 0.8
d5 -- Batteur fou!
  $ fix (
    (>| note
    ("0*<<4 [16 4]> 4!3 8!3 16>" |+ "<0!7 5>"))
    . (|* gain (slow 24 $ range 1.15 0.75 sine))
  ) (n 7)
  $ fix (
    mask "<f!8 t!120>" -- Instrumentation
    . (|* gain (slow 32 $ range 1 1.5 saw))
  ) (n 2)
  $ fix (
    (jux (often (# djf 0.45)))
    . mask "<f!16 t!104>"
    ) (n 5)
  $ n (stack [
    "2(<4 4 5 [5 4]>,8,<0!12 2!4>)", -- Marche irreguliere
    "5(<8!3 [<8 4> 4]>,8)", -- Hihats neige
    "7*4" -- Carillon
  ]
  ) # "cpu" # gain 0.7
d4 -- Kanye who?
  $ whenmod 32 24 (degradeBy (slow 8 $ range 1 0.3 isaw) )
  $ someCyclesBy "<1!4 0!124>" (
    mask "t/2" . slow 4
    . (# gain 0.85)
  )
  $ mask "<[t f!3]!32 t!32>"
  $ whenmod 32 24 (|> cat [kFly, kFly, kFly, kGlo]) -- End: calme
  $ slice 8 (
    whenmod 32 16 (|>| "1 2 4 <5 6>") $ -- Mid: voices
    whenmod 32 8 (|>| "0*<2 4 8> <2 3>*<0 2 4 4>") $ -- Transition: laggs
    "<0 1 2 3>" -- Base: variations 4 temps
  )
  $ "kanye"
  # cut 4
  # gain 0.65


once $ "kanye" # begin 0.835            -- Fly awayyyyy
# cut 3
-- 16
-- 16
-- 16



do
let b = 0.835
let d = (10/60)
let e = b + d
once $ "kanye"
  # begin b # end e -- Fly away
  # cut 21
  # gain 0.95

d4
  $ "kanye/4"
  # cut 21
  # gain 0.8



-- region GLAD To Fly Techno
do
  setcps (120/60/4)
  -- resetCycles
  -- Loop 0  4  8  12  16  20  24  32   40      48  52 60 68 72 80  88
  --      Intro    | Wild+ |Fly+   |Ah++|WildFLY|Ah-|Fly|A-a-a-away EOF
  d1
    $ mask "<f!4 <f f f t>!4 <f f t t>!4 t!16 f!12 t!8 t f!3 t!8 t!6 f f t!4 t(1,4)!4 f!8>"
    $ fast "<4!3 <2!3 [8 4]>>"
    $ "[jazz,techno]"
    # gain 0.8
  d2
    $ juxBy 0.25 rev
    -- $ sometimesBy "<t!8 f!80>" (slow 4 . (|* gain (slow 8 saw)))
    $ "hh(<5!4 3 3 5 3>,8) ho"
    # n "0 <0 0 1 2 3 4 5 6>"
    # gain 0.9
  d4 $ slice 8 (cat [
    "", "", "0", "", -- 0 One glad morning
    "0/4", "", "", "", -- 4 One glad morning, when this life is over
    "0/4", "", "", "", -- 8 One glad morning, when this life is over
    "~ 1", "1*2", "1*4", "1*[8 2]", -- 12 Wild
    "1", "1*2", "1*4", "1*[8 2]", -- 16 Wild
    "1/4", "", "", "",  -- 20 WILD, Fly away...
    2, 2, 2, "2*4", 2, 2, 2, "2*2", -- 24 Ooh euh
    3, 3, "3*4", 3, "3*[4 2]", "3*[8 4]", "3*16", "3*[16 1]", -- 32 AaAaAaAaAa piano fou!
    4, 4, "4*2", 4, "4*4", "4*4", "4*8", "4*[16 2]", -- 40 Wild - Fly - WILD WILD WILD WILD Fly
    5, 5, 5, 5, -- 48 Fly.. ah
    5, 5, 5, 5, "", "", "", 5, -- 52 Fly.. ah fly away
    "", "", "", 5, "", "", "", 5, -- 60 Fly.. ah fly away
    "", 5, "", "", -- 68 Fly away, Fly away
    7, 7, 7, 7, "", 7, 7, "7/4", -- 72 Ah ah ah fly away
    "7/2", "", "7/4", "", "7/2", "7/4", "7/4", "7/4" -- 80 Ah ah ah fly away
    -- 88 EOF1
    ]) $ "kanye"
    # gain 0.9
    # legato 2
    # cut 4

    -- delay / delaytime / delayfeedback / cutoff / resonance / room / size
-- endregion



-- region Fly again [spleeter]
do
setcps (100/60/4)
resetCycles
d1
  $ superimpose (const $ "jazz*4" # gain 0.8)
  $ whenmod 4 2 (often (slow 2))
  $ n "11*[8 <8!3 <4 16>>]"
  # "gretsch"
  # gain 0.8
d2
  $ slice 32 (
    "1*<1 1 4 1 4 4 4 8 [4 1] 4 4 8 4>"
  )
  $ "kanye:1"
  # cut 2
  # gain 1.1
d3
  $ juxBy 0.25 (
    ply 2
    . (|+ note 12)
    . (|* gain (slow 4 $ range 0.45 1 saw))
  )
  $ slice 16 ("<0 <1 2>>")
  -- $ slice 64 ("0*4" + cat [0, "[0 1]*<1 <2 4>>"])
  $ "kanye:2" # cut 3 # gain 0.65
d4
  $ mask "<f!8 t!8>"
  $ slow "1 <1 2 4 0.5 0.5>"
  $ chop "8 <16 4 16 1>"
  $ "kanye:3"
  # cut 3
  # pan 0.2
  # gain 0.6
-- endregion