bps (117/60)

--
-- drums

-- pt.1 (intro)
d1 $ slow 2 $ sound "~ [~ ho] ~ ho ~ ~ ho ~"
d1 $ slow 2 $ sound "~ [~ sn:8] ~ sn:8 ~ ~ sn:8 ~"
d1 $ slow 2 $ sound "bd:1 [~ sn:8] ~ sn:8 ~ ~ sn:8 ~"
d1 $ slow 2 $ sound "bd:1 [~ sn:8] ~ [sn:8 bd:1] bd:1 bd:1 sn:8 ~"

-- pt.1 with hat
d1 $ stack [
  slow 2 $ sound "bd:1 [~ sn:8] ~ [sn:8 bd:1] bd:1 bd:1 sn:8 ~",
  every 3 rev $ slow 2 $ sound "bd:1 [~ sn:8] ~ [sn:8 bd:1] bd:1 bd:1 sn:8 ~",
  jux (iter 4) . every 3 rev $ slow 2 $ sound "bd:1 [~ sn:8] ~ [sn:8 bd:1] bd:1 bd:1 sn:8 ~",
  every 8 (density 2) $ jux (iter 4) . every 3 rev $ slow 2 $ sound "bd:1 [~ sn:8] ~ [sn:8 bd:1] bd:1 bd:1 sn:8 ~",
  jux (density 2 . iter 4) . every 3 rev $ slow 2 $ sound "bd:1 [~ sn:8] ~ [sn:8 bd:1] bd:1 bd:1 sn:8 ~",
  slow 2 $ sound "hh*8 [hh*4 ho]"
]

-- pt.2
d1 $ stack [
  sound "bd:1*2",
  sound "bd:1 [~ bd:1] ~ bd:1",
  slow 2 $ sound "bd:1 [~ bd:1] ~ bd:1 [~ bd:1] bd:1 ~ ~",
  sound "house*2" |+| speed "0.7",
  sound "house [~ house] ~ house" |+| speed "0.7",
  every 4 (brak . density 2) $ sound "house [~ house] ~ house" |+| speed "0.7",
  slow 2 $ sound "~ [~ sn:8] ~ [sn:8 ~] ~ ~ sn:8 ~",
  jux (iter 4 . rev) $ slow 2 $ sound "~ [~ sn:8] ~ [sn:8 ~] ~ ~ sn:8 ~",
  every 8 (density 3) $ jux (iter 4 . rev) $ slow 2 $ sound "~ [~ sn:8] ~ [sn:8 ~] ~ ~ sn:8 ~",
  slow 2 $ sound "hh*8 [hh*4 ho]"
]

-- protip for easy segue into pt.3 - break down to this then go to subsequent solo mid-bar
solo $ d1 $ stack [
  jux (iter 4 . rev) $ slow 2 $ sound "~ [~ sn:8] ~ [sn:8 ~] ~ ~ sn:8 ~",
  slow 2 $ sound "hh*8 [hh*4 ho]"
]

-- pt.3
d1 $ density 2 . density (4%3) $ sound "sn:2 hh hh"

d1 $ stack [
  sound "house*2" |+| speed "0.7",
  every 4 (density 3) $ sound "house*2" |+| speed "0.7",
  sound "house*3" |+| speed "0.7",
  density 2 . density (4%3) $ sound "sn:2 hh hh"
  every 4 (density 2 . brak) $ density 2 . density (4%3) $ sound "sn:2 hh hh"
  every 4 (density 2 . brak) $ density 2 . density (4%3) $ sound "sn:2 hh rm"
  every 4 (density 2 . brak) $ density 2 . density (4%3) $ sound (pick <$> "sn:2 hh rm" <*> slow 5 "0 1")
  
]

-- protip for segue into pt.4 - multiply 117 by .1 increments up to 1.5x then hush, start subsequent solo after brief pause
bps ((117*1.5)/60)

-- pt.4 (outro)

solo $ d1 $ stack [
  sound "[bd:1 ~ bd:1] sn:8",
  sound "hh*6"
]

solo $ d1 $ sound "[bd:1 ~ bd:1] sn:8"

--
-- outta sync printro

d2 $ slow 2.5 . striate 6 $ sound "print:7"
d2 $ jux (slow 1.1) $ slow 2.5 . striate 6 $ sound "print:7"
d2 $ jux (slow 1.1) $ slow 2.5 . striate 6 $ superimpose (slow 1) $ sound "{print:7, wobble}"
  |+| vowel (slow 3 "a e i")

d2 $ jux (slow 1.1) $ slow 2.5 . striate 6 $ superimpose (slow 1) $ sound "wobble"

--
-- crazy beep

d3 $ slow 4 . striate 4 $ sound "qspace"
d3 $ slow 2 . striate 4 $ sound "qspace"
d3 $ jux (iter 8) $ slow 2 . striate 4 $ sound "qspace"
d3 $ spread density [1,2] $ jux (iter 8) $ slow 2 . striate 4 $ sound "qspace"
d3 $ spread density [1,1,2,0.5] $ jux (iter 8) $ slow 2 . striate 4 $ sound "qspace"
d3 $ spread density [1,1,0.5,2] $ jux (iter 8) $ slow 2 . striate 4 $ sound "qspace"
  |+| speed ((+0.7).(/2) <$> slow 3.2 triwave1)
--  |+| vowel (slow 2 "e u")

-- funky beep (outro)
d3 $ jux (iter 6) $ slow 2 . striate 4 $ sound "qspace"
  |+| speed ((+0.7).(/2) <$> slow 3.2 triwave1)

--
-- jungle bass (simple loop; don't wear it out)

d4 $ slow 4 $ (1%32) <~ sound "jungbass:2 jungbass:4"
  |+| pan (slow 2 sinewave1)
  |+| speed "1.2"

-- for funky outro
d4 $ slow 4 $ sound "jungbass:2 jungbass:4"
  |+| pan (slow 2 sinewave1)
  |+| speed "1.2"

--
-- zap!! (can get pretty annoying after a few 8-bars, be careful)

d5 $ slow 2 $ sound "monsterb:6"
d5 $ striate 4 $ slow 2 $ sound "monsterb:6"
d5 $ spread density [1,2] $ striate 4 $ slow 2 $ sound "monsterb:6"
d5 $ spread density [2,1] $ striate 4 $ slow 2 $ sound "monsterb:6"
d5 $ rev . density (4%3) $ spread density [1,2] $ striate 4 $ slow 2 $ sound "monsterb:6"
  |+| gain "0.7"
  |+| speed ((+0.6).(/2) <$> slow 4 sinewave1)

--
-- proper bass

d6 $ slow 2 $ sound "bass*2 bass*2 bass*3 bass*3"
d6 $ slow (5%4) . slow 2 $ sound "bass*2 bass*2 bass*3 bass*3 ~"
d6 $ slow (5%4) . slow 2 $ sound "bass*2 bass*2 bass*3 bass*3"
  |+| speed ((+1) <$> density 2.4 sinewave1)
  |+| vowel "a"

--
-- casio click

d7 $ sound "casio*2 ~"
d7 $ spread density [1,4%3] $ sound "casio*2 ~"
d7 $ jux (slow (4%3)) $ spread density [1,4%3] $ sound "casio*2 ~"

--
-- qlatibro
-- n.b. don't latibro and subroc at the same time

d8 $ sound "[qlatibro:1 qlatibro]*2"

d8 $ slow (5%4) $ spread density [1,5%4] $ sound "[qlatibro:1 qlatibro]*2"
  |+| end "0.3"

d8 $ slow (5%4) $ spread density [1,5%4] $ sound "[qlatibro:1 qlatibro]*2"
  |+| vowel "e"

--
-- baa (loool)

d9 $ slow 3 $ sound "baa"
  |+| vowel "e"

--
-- armora (rough, very low)

d8 $ slow 4 $ sound "armora:5"
d8 $ every 8 (|+| speed "2") $ slow 4 $ sound "armora:5"
d8 $ every 2 (density 3) $ every 8 (|+| speed "2") $ slow 4 $ sound "armora:5"
  |+| shape ((/1.5) <$> slow 4 sinewave1)

--
-- compositional notes

part 1
  print
  qspace
  print/wobble
  drum
  jungbass
  qlatibro
part 2
  qlatibro
  casio
  bass
  monsterb
  drum
  qspace
  baa
part 3
  drum
  armora
  monsterb
  qspace
  bass
  jungbass
  [start increasing bpm]
  wobble
  baa
