let bpm b = cps (b/60) let withmod a b c d = (whenmod a b . within (c, d)) let every' n o f = when ((== (o-1)) . (`mod` n)) f let modtempo s e = (# nudge (scale 0 s $ fmap (**e) saw1)) let mt s d i = slow s . modtempo 0.3 3 $ density d $ i -- original bpm = 105 bpm 105 -- drum d1 $ slow 8 $ n "[1*2, 0*8]" # s "drum" d1 $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum" d1 $ mt 16 2 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum" d2 $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" d2 $ withmod 11 5 0.5 1 (density 2) $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" d2 $ whenmod 3 2 (density 2) $ withmod 11 5 0.5 1 (density 2) $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" d2 $ whenmod 3 2 (density 2) $ withmod 11 5 0.5 1 (density 2) $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" d2 $ every' 16 8 (const $ s "kit:3") $ whenmod 3 2 (density 2) $ withmod 11 5 0.5 1 (density 2) $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" -- icarus d3 $ slow 16 . striate 256 $ s "icarus" d3 $ every' 2 2 (within (0, 0.75) (iter 16)) $ slow 16 . striate 256 $ s "icarus" {- d3 $ slow 8 $ smash 64 [0.5,0.75] $ s "icarus" -} -- nimble d4 $ slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble" d4 $ superimpose (iter 4) $ slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 $ superimpose ( iter 4 . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) ) $ slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 $ superimpose ( iter 4 . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) . (# nudge "0") ) $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" d3 silence d4 $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 $ whenmod 5 3 rev $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 $ superimpose ( iter 4 . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) . (# nudge "0") ) $ whenmod 5 3 rev $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 $ every' 2 2 (within (0, 0.5) (const silence)) $ superimpose ( iter 4 . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) . (# nudge "0") ) $ whenmod 5 3 rev $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 $ every' 2 2 (within (0.25, 0.5) (const silence)) $ superimpose ( iter 4 . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) . (# nudge "0") ) $ whenmod 5 3 rev $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" -- something of a structure starting to come together here d1 $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum" d1 $ (whenmod 5 3 . every' 7 5) (0.5 ~>) $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum" d1 $ (whenmod 5 3 . every' 7 5) (0.5 ~>) $ mt 16 2 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum" d3 $ every' 2 2 (within (0, 0.75) (iter 16)) $ slow 16 . striate 256 $ s "icarus" d4 $ every' 2 2 (within (0.25, 0.5) (const silence)) $ whenmod 5 3 rev $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble" d4 silence hush