{- 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) let tmod s e = (# nudge (scale 0 s $ fmap (**e) saw1)) mt s d i = slow s . tmod 0.3 3 $ density d $ i let d'drum = d1 d'wax = d3 d'nim = d4 d'nim2 = d5 d'bass = d6 d'hi = d7 -- original bpm = 105 bpm 105 {---------- drum + perc ----------} d'drum silence let --dp = n "1/4" --dp = n "[1*2, 0*8]/8" --dp = n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]/8" dp = n "[1, 0*2 [~ 0] ! ~]/4" {--} kp = n "[~ [0 2]/2]" --kp = n "[[~ 0] [[2!! ~]/4 0]]/2" {--} --sp = n "" --sp = 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" sp = 4 ~> n "[~ [0 ~ ~ 0/2] ~ 0]/4" {--} ste = id -- . mt 16 16 de = id . (whenmod 9 5 . whenmod 7 4) (density 2 . rev) {- 9 5? -} -- . superimpose (0.25 ~>) ke = id -- . every' 16 8 (const $ s "kit:3") -- . whenmod 3 2 (density 2) -- . (whenmod 11 5 . within (0.5, 1)) (density 2) se = id . within (0.1, 0.4) (# nudge "0.05") . within (0.6, 0.9) (# nudge "0.05") --{- . whenmod 7 6 (slowspread ($) [ density 8 . rev . slow 4, (0.25 <~), (0.25 ~>) ]) --} --{- . whenmod 5 3 ( superimpose ( within (0, 0.5) ((# gain "0.6") . (# n (irand 3)) . (# s "tom")) . (# gain "0.65") . (0.25 ~>) . density 2 )) --} -- . every' 16 16 (superimpose (0.75 ~>)) in d'drum $ ste $ stack [ de $ dp # s "drum", ke $ kp # s "kit", se $ sp # s "sn" # gain "0.76" ] {----- icarus -----} 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 -----} msil [d'nim, d'nim2] let ns = slow 16 . striate 256 --ns = mt 16 1 . striate 256 nei = 4 {- 4,6 -} ne = id -- . every' 2 2 (within (0, 0.5) (const silence)) {- . superimpose ( iter nei -- . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) -- . nudge "0" ) --} . (0.5 ~>) in d'nim $ ne $ ns $ n "[0 1]/2" # s "nimble" {--- bass ---} d'bass silence let be = id -- . (# speed "[1 1.2]") -- . (0.5 ~>) . (1.3 ~>) bc = id -- . striate 16 . gap 32 bs = id . slow 8 -- . mt 16 2 in d'bass $ be $ bs $ stack [ bc $ sound "bass", bc $ sound "sine" ] # gain "0.8" {--------- alt nimble (wip) ---------} d'hi silence d'hi $ -- whenmod 16 12 (0.5 ~>) $ -- whenmod 16 8 (0.5 ~>) $ -- (0.5 ~>) $ whenmod 12 8 (0.5 <~) $ (0.5 ~>) $ -- heh slow 8 $ -- slowspread ($) [gap 16, gap 64] $ slowspread ($) [gap 16, gap 32] $ n "[0 1]/2" # s "nimble" # speed "[-3 -2]" -- # gain "1.2" hush