{-
piston lp
-}

cps (138/60)

let bassParams = (|+| gain "0.7").(|+| hcutoff "0.022").(|+| hresonance "0.001")

let kdelay = (|+| delay "0.3").(|+| delayfeedback "0.5").(|+| delaytime "0.766") --(138/60)/3

let gprop = (|+| speed "1.2").(|+| shape ((/2) <$> ((0.25 ~>) . density 3) sinewave1)).(|+| gain "0.6")

{-
piston 0
-}

d5 $ slow 16 $ jux (0.5 <~) $ rev . striate 256 $ sound "fly"
   |+| hcutoff "0.09"
   |+| hresonance "0.06"
-- |+| gain "0.1" |+| gain "1"
   |+| gain "1"

{-
piston 1.a
-}

d1 $ sound "k:1"
d2 $ sound "wt/2"

d3 $ slow 8 $ (<~) (1/4) $ rev . chop 16 $ bassParams $ sound "[dubb dubb:1]/2"

d2 $ sound "{wt/2, [~ wtsn]/8}"

d1 $ sound "k"
d1 $ sound "{k, ~ sn}"

d5 $ whenmod 5 2 (|+| vowel "i o") $ whenmod 3 1 (slow 2) $ brak $ slow 16 $ jux (0.5 <~) $ rev . striate 256 $ sound "fly"
   |+| hcutoff "0.09"
   |+| hresonance "0.06"

d2 $ density (4%3) $ sound "[wtsn ~ wt]"
d2 $ whenmod 5 3 rev $ density (4%3) $ sound "[wtsn ~ wt]"
d2 $ whenmod 5 3 (rev . chop 8) $ density (4%3) $ sound "[wtsn ~ wt]"

d2 $ within (0.5, 1) (slow (3%2) . chop 4) $ whenmod 5 3 (rev . chop 8) $ density (4%3) $ sound "[wtsn ~ wt]"

d4 $ within (0, 0.5) rev $ chop 8 $ sound "[gnome(3,8)]/2"
   |+| gain "0.8"
   |+| speed ((+0.8).(/5) <$> slow 1.1 sinewave1)

d1 $ sound "{k, [~ ~ sn [~ sn*3]/2]/2}"

mapM_ ($ silence) [d1,d3]

d1 $ sound "[k(3,8)]/2"
d1 $ sound "{k(3,8), [~ sn]}/2"
d1 $ sound "{k(3,8), [~ ~ sn [~ sn*3]/2]}/2"

d3 $ (every 2 $ within (0.25, 0.75) (0.5 ~>)) $ slow 8 $ rev . chop 16 $ bassParams $ sound "[dubb dubb:1]/2"

d1 $ within (0.5, 1) (chop 8) $ sound "{k(3,8), [~ ~ sn [~ sn*3]/2]}/2"

d5 silence

d1 $ within (0.5, 1) (chop 8) $ sound "{[[k*2 ~] ~], [~ ~ sn [~ sn*3]/2]}/2"

mapM_ ($ silence) [d1,d2]

d2 $ sound "[~ wt*4 ~ wt*2 ~]/5"

{-
piston 1.b
-}

d4 silence

d1 $ sound "[k [sn k] [k sn] [~ sn] [~ k] sn [k [k wtsn]]]/7"

d2 $ sound "wt*2"
|+| vowel "[u e u a]/2"

d3 $ slow 8 $ ((1%8) <~) $ chop 32 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| speed "1.2"
   |+| shape ((/2) <$> density 4 sinewave1)
   |+| cut "1"

d9 $ slow 2 $ smash 16 [1,2] $ sound "ant:1"
   |+| cutoff "0.08" |+| resonance "0.01"

d7 $ ((1%16) <~) $ chop 16 $ sound "[ice [~ ice] ~ ~]/4"
   |+| gain "0.7"

d8 $ sound "[~ ~ ~ [~ ~ [~ ~ ~ wtsn] [~ wtsn ~ wtsn]]]/16"

d4 $ chop 64 $ sound "[fly ~ [fly ~ ~ fly] ~]/4"
   |+| cut "1"
   |+| begin "0.3"
   |+| end "0.35"
   |+| shape ((+0.25).(/2) <$> density 8 sinewave1)
   |+| speed ((+1) <$> density (5%4) saw1)

mapM_ ($ silence) [d1,d2,d3,d7,d8]

d1 $ (0.5 <~) $ sound "[[k k:1] [sn ~ ~ k]]/2"

d3 $ slow 8 $ ((1%8) <~) $ chop 32 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| speed "1.2"
   |+| shape ((/2) <$> density 4 sinewave1)
   |+| cut "1"

d3 $ slow 8 $ ((1%8) <~) $ chop 32 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| speed "1.2"
   |+| shape ((/2) <$> density 4 sinewave1)
   |+| cut "1"
   |+| vowel "u a"

d7 $ rev $ chop 16 $ sound "[ice [~ ice] ~ ~]/4"
   |+| gain "0.7"
   |+| shape ((+0.25).(/2) <$> density 8 saw1)

d7 $ every 2 (density 1.5) $ whenmod 5 3 (density 2) $ rev $ chop 16 $ sound "[ice [~ ice] ~ ~]/4"
   |+| gain "0.7"
   |+| shape ((+0.25).(/2) <$> density 8 saw1)

d2 $ sound "~ wt*2"

{-
piston 1.c
-}

mapM_ ($ silence) [d1,d3,d4,d9]

d1 $ sound "k"

d6 $ sound "[ff(3,8) [~ [ff bz]]]/4"
   |+| end "0.3"
   |+| shape "0 0.25"
   |+| gain "0.7"

d1 silence

d1 $ sound "[k k sn k]/2"

d3 $ every 2 (0.5 <~) $ slow 4 $ rev . chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| vowel "i"

d3 $ every 2 (0.5 <~) $ slow 4 $ rev . chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| vowel "o i"

d3 $ every 2 (0.5 <~) $ slow 4 . brak $ rev . chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| vowel "o i"

mapM_ ($ silence) [d1,d2,d7]

d2 $ sound "[[k:1 [~ k:1] k:1 [~ k:1]] sn]/8"

d2 $ within (0.5, 1.5) (kdelay) $ sound "[[k:1 [~ k:1] k:1 [~ k:1]] sn]/8"

d8 $ slow 8 $ chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| speed "0.2"
   |+| vowel "e"

d1 $ (0.5 <~) $ every 4 (density 2) $ sound "[k*2 ~]/2"

d1 $ stack [
   (0.5 <~) $ every 4 (density 2) $ sound "[k*2 ~]/2",
   sound "[~ sn]/2"
]

d2 $ chop 16 $ within (0.5, 1.5) (kdelay) $ sound "[[k:1 [~ k:1] k:1 [~ k:1]] sn]/8"

d2 $ whenmod 3 2 rev $ chop 16 $ within (0.5, 1.5) (kdelay) $ sound "[[k:1 [~ k:1] k:1 [~ k:1]] sn]/8"

d2 $ within (0, 0.5) (|+| vowel "o") $ whenmod 3 2 rev $ chop 16 $ within (0.5, 1.5) (kdelay) $ sound "[[k:1 [~ k:1] k:1 [~ k:1]] sn]/8"

d3 silence

d1 $ sound "[k k sn k]/2"

d3 $ every 2 (0.5 <~) $ slow 4 $ rev . chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| vowel "o i"

{-
piston 2.a
-}

solo $ d8 $ slow 8 $ chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| speed "0.2"
   |+| vowel "e"

d4 $ whenmod 7 5 rev $ rev . chop 16 $ sound "[bz(3,8)]/2"
   |+| gain "0.7"
   |+| speed ((+3) <$> density 2.8 sinewave1)

d2 $ sound "[wt(5,8)]/4"

d1 $ (0.5 <~) $ stack [
   whenmod 9 2 (0.25 <~) $ sound "~ k",
   (0.75 ~>) $ sound "[~ sn]/2"
]

d9 $ (0.25 ~>) $ sound "[~ ~ ~ [~ ~ [~ ~ ~ wtsn] [~ wtsn ~ wtsn]]]/16"

mapM_ ($ silence) [d4,d8]

d7 $ whenmod 3 2 (slow 2) $ slow 8 $ every 2 rev $ striate 64 $ sound "ice"
   |+| cutoff "0.02"
   |+| resonance "0.001"
   |+| speed "0.7"

d4 $ whenmod 7 5 rev $ rev . chop 16 $ sound "[bz(3,8)]/2"
   |+| gain "0.7"
   |+| speed ((+3) <$> density 2.8 sinewave1)

d3 $ bassParams $ (0.5 ~>) $ chop 8 $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| cutoff "0.01"
   |+| resonance ((/3) <$> slow 4 saw1)

d3 $ whenmod 5 3 (superimpose (0.25 ~>)) $ bassParams $ (0.5 ~>) $ chop 8 $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| cutoff "0.01"
   |+| resonance ((/3) <$> slow 4 saw1)

d3 $ whenmod 5 3 (superimpose (0.25 ~>)) $ bassParams $ (0.5 ~>) $ chop 8 $ sound "[dubb dubb:1]/2"
   |+| cut "1"
   |+| cutoff "0.01"
   |+| resonance ((/3) <$> slow 4 saw1)
   |+| shape ((+0.25).(/2) <$> density 1.5 saw1)

d9 silence

d1 $ (0.5 <~) $ stack [
   whenmod 4 3 (density 1.5) $ whenmod 9 2 ((0.25 <~)) $ sound "~ k",
   whenmod 10 5 (superimpose (0.25 ~>)) $ (0.75 ~>) $ sound "[~ sn]/2"
]

d8 $ slow 8 $ chop 16 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| speed "0.2"
   |+| vowel "e"

d7 $ whenmod 5 3 (slow 1.5) $ rev $ stack [
   smash 64 [0.5,1] $ gprop $ sound "~ gnome"
   |+| pan (slow 4 sinewave1),
   smash 64 [(1/2.5),1] $ gprop $ sound "~ gnome"
   |+| pan ((0.5 <~) $ slow 4 sinewave1)
]

d7 silence

{-
piston 2.b
-}

solo $ d1 $ sound "{[~ ~ ~ k:1], [~ sn]/2}"

d2 $ sound "~ wt wt wtsn/8"
   |+| shape ((/2) <$> density 1.2 saw1)

d9 $ slow 2 $ smash 16 [1,2] $ sound "ant:1"
   |+| cutoff "0.08" |+| resonance "0.01"

d9 silence

d1 $ sound "{[k ~ ~ k:1], [~ sn]/2}"

d3 $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"

d4 $ whenmod 5 3 rev $ slow 16 $ jux ((1.5 ~>).rev) $ chop 64 $ bassParams $ sound "fly:1"
   |+| speed "0.7"
   |+| shape ((/2) <$> density 2.1 saw1)

d3 $ whenmod 3 2 (density 1.6) $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"

d4 silence

d3 $ density 1.6 $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"

d3 $ every 2 (density 2) $ density 1.6 $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"

d6 $ chop 12 $ sound "[~ ~ [~ k:1] !]/4"
   |+| speed "0.9"

d6 $ whenmod 4 3 (density 1.8) $ chop 12 $ sound "[~ ~ [~ k:1] !]/4"
   |+| speed "0.9"

d3 $ every 2 (density 2) $ density 1.6 $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"
   |+| speed ((+0.75).(/2) <$> slow 1.3 sinewave1)

d6 $ whenmod 4 3 (density 1.8) $ chop 12 $ sound "[~ ~ [~ k:1] !]/4"
   |+| speed "0.9"
   |+| shape ((/3) <$> density 3 sinewave1)

d7 $ whenmod 5 3 (slow 1.5) $ rev $ stack [
   smash 64 [0.5,1] $ gprop $ sound "~ gnome"
   |+| pan (slow 4 sinewave1),
   smash 64 [(1/2.5),1] $ gprop $ sound "~ gnome"
   |+| pan ((0.5 <~) $ slow 4 sinewave1)
]

d3 $ within (0.5, 0.75) (|+| vowel "u o") $ every 2 (density 2) $ whenmod 3 2 (density 1.6) $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"
   |+| speed ((+0.75).(/2) <$> slow 1.3 sinewave1)

mapM_ ($ silence) [d1,d3]

d1 $ sound "k:1"

d6 $ whenmod 4 3 (density 1.8) $ chop 12 $ sound "[~ ~ [~ k:1] !]/4"
   |+| speed "0.9"
   |+| shape ((/3) <$> density 3 sinewave1)
   |+| delay "0.3" |+| delayfeedback "0.2" |+| delaytime "0.2875" --(138/60)/8

d6 $ within (0, 0.5) rev $ whenmod 4 3 (density 1.8) $ chop 12 $ sound "[~ ~ [~ k:1] !]/4"
   |+| speed "0.9"
   |+| shape ((/3) <$> density 3 sinewave1)
   |+| delay "0.3" |+| delayfeedback "0.2" |+| delaytime "0.2875" --(138/60)/8

d4 $ whenmod 5 3 rev $ brak $ slow 16 $ jux ((1.5 ~>).rev) $ chop 64 $ bassParams $ sound "fly:1"
   |+| speed "0.7"
   |+| shape ((/2) <$> density 2.1 saw1)

d3 $ every 2 (density 2) $ whenmod 3 2 (density 1.6) $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"
   |+| speed ((+0.75).(/2) <$> slow 1.3 sinewave1)

d1 $ sound "{[k ~ ~ k:1], [~ sn]/2}"

mapM_ ($ silence) [d2,d6]

d7 silence

d3 $ (|+| gain ((*0.7) <$> saw1)) $ every 2 (density 2) $ whenmod 3 2 (density 1.6) $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"
   |+| speed ((+0.75).(/2) <$> slow 1.3 sinewave1)

mapM_ ($ silence) [d1,d4]

{-
piston 2.c
-}

d1 $ stack [
   sound "[[k k:1]*2 ~ ~ ~]/8",
   whenmod 8 4 (0.5 ~>) $ sound "[~ sn]/4"
]

d2 $ sound "[~ [~ ~ ~ wt] wt*2 wt]/8"

d4 $ whenmod 4 2 rev $ slow 16 $ rev . chop 64 $ bassParams $ sound "[dubb dubb:1]/2"
   |+| shape ((/3) <$> slow 4 saw1)
   |+| vowel "[e a]"

d2 $ slowspread ($) [chop 16, chop 32] $ sound "[wtsn(3,8)]/2"
   |+| speed ((+0.6).(/2) <$> density 1.8 sinewave1)

d1 $ stack [
   slow 2 $ sound "[[k k:1]*2 [~ k:1 ~ k] [~ k:1 k ~] [~ ~ ~ k]]/4",
   whenmod 8 4 (0.5 ~>) $ sound "[~ sn]/4"
]

d2 $ within (0.25, 0.75) rev $ slowspread ($) [chop 16, chop 32] $ sound "[wtsn(3,8)]/2"
   |+| speed ((+0.6).(/2) <$> density 1.8 sinewave1)

mapM_ ($ silence) [d3,d4]

{-
piston 3.a
-}

d1 $ sound "[k*2 [sn ~ ~ wt] k*2 sn [~ k]]/5"

--tbc

solo $ d1 $ whenmod 3 2 (slow (4%3)) $ sound "[k*2 [sn ~ ~ wt] k*2 sn [~ k]]/5"

{-
piston 3.b
-}

d1 $ every 3 (density 2) $ within (0, 0.5) (jux ((1%3) ~>)) $ sound "[k [sn ~ k] [~ ~ sn] ~]/8"

d7 $ slow 5 . chop 15 $ sound "ice"
   |+| gain "0.7"
   |+| resonance "0.4" |+| cutoff "0.2"

hush
d1 $ sound "[k [sn ~ k] [~ ~ sn] ~]/8"

d2 $ sound "[wt*3 ~]/2"
|+| shape ((/2) <$> slow 3 saw1)

d3 $ slow 8 $ slowspread ($) [rev.chop 12, rev.chop 24] $ bassParams $ sound "[dubb dubb:1]/2"

d4 $ slow (4%3) . slowspread ($) [slow 1, density (5%4)] $ slow 12 $ slowspread striate [24,36] $ sound "fly:1"
   |+| gain "0.7"

d4 $ slow (4%3) . slowspread ($) [slow 1, density (5%4)] $ slow 12 $ slowspread striate [24,36] $ sound "fly:1"
   |+| gain "0.7"
   |+| delay "0.6" |+| delayfeedback "0.4" |+| delaytime "0.62" --(112/60)/3

d6 $ rev . chop 12 $ sound "bz/4"
   |+| vowel "o"

mapM_ ($ silence) [d1,d2]

d3 $ (|+| begin ((/2) <$> (density (5%4) $ sinewave1))) $ (|+| end ((+0.05).(/2) <$> (density (5%4) $ sinewave1))) $ slow 8 $ slowspread ($) [rev.chop 12, rev.chop 24] $ bassParams $ sound "[dubb dubb:1]/2"

d7 $ slow 5 . chop 15 $ sound "ice"
   |+| gain "0.7"
   |+| resonance "0.4" |+| cutoff "0.2"

d1 $ sound "{k, ~ sn}"
d1 $ sound "[[k ~ k] {k, sn}]/2"

d7 $ slow 5 . chop 15 $ sound "ice"
   |+| gain "0.7"
   |+| resonance "0.4" |+| cutoff "0.2"
   |+| delay "0.5" |+| delayfeedback "0.2" |+| delaytime "0.76" --(138/60)/3

d7 silence

d3 $ slow 8 $ within (0.33, 0.67) (0.25 ~>) $ slowspread ($) [rev.chop 12, rev.chop 24] $ bassParams $ sound "[dubb dubb:1]/2"
   |+| vowel "o"

d3 silence

d1 $ within (0, 0.5) (jux ((1%3) ~>)) $ sound "[k [sn ~ k] [~ ~ sn] ~]/8"

d6 silence

{-
piston 4.a
-}

d3 $ slow 16 $ rev . chop 32 $ bassParams $ sound "[dubb dubb:1]/2"

d1 $ within (0, 0.5) (superimpose ((1%3) ~>)) $ sound "[k [sn ~ k] [~ ~ sn] ~]/8"

d6 $ sound (samples "[[ff bz]*2 [~ bz*2]]/2" $ slow 2 $ run 5)
   |+| begin "0.7" |+| end "0.85"
   |+| hcutoff "0.04" |+| hresonance "0.1"
   |+| shape ((/5) <$> slow (5%3) sinewave1)

d1 $ sound "[k*2 [sn ~ ~ wt] [~ k] sn [~ k]]/5"

d1 $ sound "[k [sn ~ ~ wt] [~ k] sn]/4"

d3 $ slow 16 $ rev . chop 64 $ bassParams $ sound "[dubb dubb:1]/2"

d6 $ sound (samples "[[ff bz]*2 [~ bz*2]]/2" $ slow 2 $ run 5)
   |+| begin "0.7" |+| end "0.85"
   |+| hcutoff "0.04" |+| hresonance "0.1"
   |+| shape ((/5) <$> slow (5%3) sinewave1)
   |+| delay "0.6" |+| delayfeedback "0.5" |+| delaytime "0.766" --(138/60)/3

d9 $ slow 2 $ smash 16 [1,2] $ sound "ant:1"
   |+| cutoff "0.08" |+| resonance "0.01"

d1 $ sound "[k [sn ~ ~ k] [~ k] sn]/4"

d8 $ chop 64 $ sound "[fly ~ [fly ~ ~ fly] ~]/4"
   |+| cut "1"
   |+| begin "0.3"
   |+| end "0.35"
   |+| shape ((+0.25).(/2) <$> density 8 sinewave1)
   |+| speed ((+1) <$> density (5%4) saw1)

d7 $ every 2 (density 2) $ whenmod 3 2 (density 1.6) $ chop 16 $ bassParams $ sound (samples "[~ dubb]" (slow 4 "0 1"))
   |+| cut "1"
   |+| speed ((+0.75).(/2) <$> slow 1.3 sinewave1)

d2 $ sound "{wt/2, [~ wtsn]/8}"

d2 $ density (4%3) $ sound "[wtsn ~ wt]"
d2 $ whenmod 5 3 rev $ density (4%3) $ sound "[wtsn ~ wt]"
d2 $ whenmod 5 3 (rev . chop 8) $ density (4%3) $ sound "[wtsn ~ wt]"

d5 $ whenmod 5 2 (|+| vowel "i o") $ whenmod 3 1 (slow 2) $ brak $ slow 16 $ jux (0.5 <~) $ rev . striate 256 $ sound "fly"
   |+| hcutoff "0.09"
   |+| hresonance "0.06"

d2 $ within (0.5, 1) (slow (3%2) . chop 4) $ whenmod 5 3 (rev . chop 8) $ density (4%3) $ sound "[wtsn ~ wt]"

d1 $ sound "[k [sn ~ ~ k] [~ k*2] sn]/4"

{-
piston 4.b
-}

mapM_ ($ silence) [d4,d6,d7,d8,d9]

d5 silence

solo $ d2 $ within (0.5, 1) (slow (3%2) . chop 4) $ whenmod 5 3 (rev . chop 8) $ density (4%3) $ sound "[wtsn ~ wt]"

hush