{-
Anny FM: Pig's Nose EP
anny.audio

Current version: 1.0.0
Compatibility: Tidal Cycles 1.0-dev + SuperDirt 1.0-dev + SuperCollider 3.8
License: CC-BY-SA https://creativecommons.org/licenses/by-sa/4.0/

See README.md for more information
-}

let bpm b = cps (b/60)
    msil = mapM_ ($ silence)
    cf = slow 2
    d'drum = d1
    d'print = d2
    d'wobb = d2
    d'qs = d3
    d'jbass = d4
    d'mons = d5
    d'bass = d6
    d'casio = d7
    d'ql = d8
    d'arm = d8
    d'baa = d9

bpm 117

{-
@pn1
-}

-- @pn1print
let p = s "print" -- (3) "{print, wobble}" -- (4) "wobble"
  in d'print $ cf $
     -- jux (slow 1.1) $ -- (2)
     slow 2.5 . striate 6 $ p
     -- # vowel (slow 3 "a e i") -- (1)

-- pn1print @ 1

-- @pn1qs
d'qs $ cf $
  -- fastspread density [1,2] $ -- (4) -- (5) [1,1,2,0.5] -- (6) [1,1,0.5,2]
  -- jux (iter 8) $ -- (2)
  slow 4 . striate 4 $ -- (1) 2
  s "qspace"
  -- # speed (scale 0.7 1.2 $ slow 3.2 triwave1) -- (3)

-- pn1qs @ 1

d'drum $ cf $ s "[~ [~ ho] ~ ho ~ ~ ho ~]/2"

-- pn1print @ 2
-- pn1qs @ 2

d'drum $ cf $ s "[~ [~ sn:1] ~ sn:1 ~ ~ sn:1 ~]/2"

-- pn1qs @ 3
-- pn1print @ 3

d'drum $ cf $ stack [
  s "bd/2",
  s "[~ [~ sn:1] ~ sn:1 ~ ~ sn:1 ~]/2"
  ]

-- pn1qs @ 4

-- @pn1drum
d'drum $ cf $
  -- overlay (s "[hh*8 [hh*4 ho]]/2") $ -- (5)
  -- every 8 (density 2) $ -- (3)
  -- jux (iter 4) . -- (2)
  -- jux (density 2 . iter 4) . -- (4) replace (2)(3)
  -- every 3 rev $ -- (1)
  stack [
    s "[bd [~ ~ ~ bd] bd*2 ~]/2",
    s "[~ [~ sn:1] ~ sn:1 ~ ~ sn:1 ~]/2"
    ]

-- pn1print @ 4

-- pn1qs @ 5

-- pn1drum @ 1
-- pn1drum @ 2
-- pn1drum @ 3
-- pn1drum @ 4

-- pn1qs @ 6

d'print silence

-- pn1drum @ 0
-- pn1drum @ 5
-- pn1drum @ 5 w/ 1

-- @pn1jbass
d'jbass $ slow 8 $
  ((1/32) <~) $ -- (1) remove
  s "jungbass jungbass:1"
  # pan (slow 2 sinewave1)
  # speed 1.2

-- pn1drum @ 5 w/ 1,2

-- (pn2ql @ 0)
d'ql $ slow 2 $ s "[qlatibro:1 qlatibro]*2"

d'qs silence

d'mons $ cf $
  -- striate 4 $ -- (1)
  slow 2 $ s "monsterb"
  # gain 0.7
  # speed (scale 0.6 1.1 $ slow 4 sinewave1)

-- pn1drum @ 5 w/ 1,2,3

msil [d'drum, d'jbass]
d'mons silence

{-
@pn2
-}

-- @pn2ql
d'ql $
  -- slow 2 $ -- (0)
  slow (10/4) $ fastspread density [1,5/4] $ -- (0) remove
  s "[qlatibro:1 qlatibro]*2"
  # vowel "e" -- (0) remove

-- @pn2casio
d'casio $ cf $
  -- jux (slow (4/3)) $ -- (2)
  -- fastspread density [1,4/3] $ -- (1)
  s "casio*2 ~"

d'drum $ cf $ s "[hh*8 [hh*4 ho]]/2"

-- @pn2mons
d'mons $ cf $
  -- fastspread density [1,2] $ -- (1)
  striate 4 $ slow 2 $ s "monsterb"
  # gain 0.7
  # speed (scale 0.6 1.1 $ slow 4 sinewave1)

-- pn2mons @ 1

-- @pn2bass
let p = slow 4 $ s "bass*2 bass*2 bass*3 bass*3" -- (3) slow 5
    -- p = slow 5 $ s "bass*2 bass*2 bass*3 bass*3 ~" -- (2)
  in d'bass $ p
     -- # speed (scale 1 2 $ density 2.4 sinewave1) -- (1)

d'drum $ cf $ stack [
  s "[hh*8 [hh*4 ho]]/2",
  s "[~ [~ sn:1] ~ sn:1 ~ ~ sn:1 ~]/2"
  ]

-- pn2bass @ 1

-- @pn2drum
d'drum $ cf $ stack [
  s "[hh*8 [hh*4 ho]]/2",
  s "[~ [~ sn:1] ~ sn:1 ~ ~ sn:1 ~]/2",
  -- every 4 (brak . density 2) $ -- (3)
  s "bd*2" -- (1) "house*2" -- (2) "house(3,8)"
  ]

-- pn1qs @ 4
-- pn2bass @ 2

-- pn2drum @ 1

-- pn1qs @ 5

d'drum silence

-- pn2drum @ 2

-- pn1qs @ 6
-- pn1jbass @ 1

-- pn2bass @ 3

msil [d'qs, d'mons]

-- pn2casio @ 1
-- pn2drum @ 3
-- pn2casio @ 2

msil [d'casio, d'ql]

-- pn2mons @ 1

-- @pn2sheep
d'baa $ slow 6 $ s "baa"
  # vowel "e"

msil [d'print, d'qs, d'jbass, d'mons, d'baa]

solo $ d'drum $ cf $
  overlay (s "[hh*8 [hh*4 ho]]/2") $
  jux (iter 4 . rev) $ s "[~ [~ sn:1] ~ sn:1 ~ ~ sn:1 ~]/2"

{-
@pn3
-}

-- @pn3drum
d'drum $ cf $
  overlay (
    -- every 4 (density 3) $ -- (5)
    s "house*2"
    ) $ -- (1)
  -- every 4 (density 2 . brak) $ -- (2)
  density (8/3) $
  s "sn:0 hh hh" -- (3) "sn:0 hh rm"
  -- # n "[0 1]/5" -- (4)

-- pn3drum @ 1
-- pn3drum @ 2
-- pn3drum @ 3

-- @pn3arm

d'arm $ cf $
  -- every 2 (density 3) $ -- (2)
  -- every 8 (# speed "2") $ -- (1)
  slow 4 $ s "armora"
  -- # shape (scale 0 (2/3) $ slow 4 sinewave1) -- (3)

-- pn3arm @ 1
-- pn3arm @ 2
-- pn3arm @ 3

-- pn2mons @ 0

-- pn1qs @ 1
-- pn1qs @ 2
-- pn1qs @ 3
-- pn1qs @ 4

-- pn3drum @ 4

-- pn2bass @ 2

-- pn3drum @ 5
-- pn1jbass @ 1

bpm (117 * 1.1) -- gradually to 1.5

-- pn1print @ 4
-- pn2sheep

hush