{- defs -} let bpm b = cps (b/60) withmod a b c d = (whenmod a b . within (c, d)) every' n o f = when ((== (o-1)) . (`mod` n)) f msil = mapM_ ($ silence) tmod s e = (# nudge (scale 0 s $ fmap (**e) saw1)) let swing a = within (0.1, 0.4) (a ~>) . within (0.6, 0.9) (a ~>) swing' = swing 0.14 --0.05 let d'drum = d1 d'bass = d3 d'wax = d4 d'nim = d5 d'hi = d6 -- original bpm = 105 let tmod' s e = tmod (s*(1/(105/60))) e mt s d i = slow s $ tmod' 0.5 3 $ density d $ i bpm 105 {---------- drum + perc ----------} hush d'drum silence d'drum $ --within (0.5, 1) (rev) $ -- soften --mt 16 16 $ swing' $ stack [ superimpose (0.25 ~>) $ --n "1/4" --n "[1*2, 0*8]/8" --n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]/8" n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] [0! ~!]]/8" # s "drum", --every' 16 16 (const $ s "kit:3") $ whenmod 3 2 (density 2) $ (whenmod 11 5 . within (0.5, 1)) (density 2) $ --n "" --n "[~ [0 2]/2]" n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit", --n "" --n "[~ [~ 1]]/2" --n "[~ [~ 0/8 1 0/2]]/2" --0.5 <~ n "[~ [~ 0/8 1 0/2]]/2" n "[~ [1 0/8 1/2 0/2]]/2" --n "[~ [1 0/8 1 0/2]]/2" # s "sn" # gain "0.8" ] {----- icarus -----} hush d'wax silence d'wax $ --every' 2 2 (within (0, 0.75) (iter 16)) $ slow 16 . striate 256 $ s "icarus" d'wax $ retrig $ s "icarus:1/20" {----- nimble -----} hush d'nim silence d'nim $ --{- superimpose ( --iter 4 . iter 6 . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) . (# nudge "0") ) $ --} --{- (whenmod 5 2 $ slowspread (\x -> within (0.5, 1) x) [ id, density (5%3), rev, density (4%3), id, rev, (0.5 <~) ]) $ --} whenmod 4 2 (const silence) $ --mt 16 1 $ slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble" -- # shape ((/4) <$> density 1.9 sine1) {--- bass ---} hush d'bass silence let s = striate 16 in d'bass $ whenmod 3 2 (within (0, 0.5) (const silence)) $ whenmod 10 8 (within (0.5, 1) (const silence)) $ --{- within (0, 0.5) ( (# speed "-1") . smash 4 [(4%3),(5%3)] ) $ --} slow 8 $ stack [ s $ sound "bass", s $ sound "sine" ] # gain "0.8" {--------- alt nimble (wip) ---------} hush d'hi silence d'hi $ swing' $ within (0.5, 1) (density 2) $ whenmod 16 8 (0.5 <~) $ (0.5 ~>) $ slow 8 $ gap 64 $ n "[0 1]/2" # s "nimble" -- # speed "[-3 -4]" # speed ((-4+).(*(-1)) <$> density 1.1 sine1) -- # vowel "[u a e]/3" hush