{- 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'drum2 = d2 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 $ --mt 16 16 $ swing' $ stack [ --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", --(0.5 <~) $ --n "" --n "[~ [~ 1]]/2" n "[~ [~ 0/8 1 0/2]]/2" --n "[~ [~ 0/4 1 0]]/2" --n "[~ [1 0/4 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" -- # cut "4" -- # shape ((/4) <$> density 1.9 sine1) {--- bass ---} hush d'bass silence d'bass $ --whenmod 3 2 (within (0, 0.5) (const silence)) $ --whenmod 10 8 (within (0.5, 1) (const silence)) $ slow 8 $ stack [ striate 16 $ sound "bass", striate 16 $ sound "sine" ] -- # gain "0.8" {--------- alt nimble (wip) ---------} hush d'hi silence d'hi $ swing' $ whenmod 4 3 (density 2) $ -- whenmod 16 8 (0.5 ~>) $ (0.5 ~>) $ -- whenmod 12 8 (0.5 <~) $ (0.5 ~>) $ -- heh slow 8 $ slowspread ($) [gap 16, gap 64] $ n "[0 1]/2" # s "nimble" # speed "[-3 -4]" -- # gain "1.2" -- # vowel "u" hush