haddeo.tidal 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. let bpm b = cps (b/60)
  2. let withmod a b c d = (whenmod a b . within (c, d))
  3. let every' n o f = when ((== (o-1)) . (`mod` n)) f
  4. let modtempo s e = (# nudge (scale 0 s $ fmap (**e) saw1))
  5. let mt s d i = slow s . modtempo 0.3 3 $ density d $ i
  6. -- original bpm = 105
  7. bpm 105
  8. -- drum
  9. d1 $ slow 8 $ n "[1*2, 0*8]" # s "drum"
  10. d1 $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  11. d1 $ mt 16 2 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  12. d2 $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  13. d2 $
  14. withmod 11 5 0.5 1 (density 2) $
  15. n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  16. d2 $
  17. whenmod 3 2 (density 2) $
  18. withmod 11 5 0.5 1 (density 2) $
  19. n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  20. d2 $
  21. every' 16 8 (const $ s "kit:3") $
  22. whenmod 3 2 (density 2) $
  23. withmod 11 5 0.5 1 (density 2) $
  24. n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  25. -- icarus
  26. d3 $ slow 16 . striate 256 $ s "icarus"
  27. d3 $ superimpose (8 ~>) $
  28. slow 16 . striate 256 $ s "icarus"
  29. d3 $
  30. every' 2 2 (within (0, 0.75) (iter 16)) $
  31. slow 16 . striate 256 $ s "icarus"
  32. d3 $
  33. superimpose (8 ~>) $
  34. every' 2 2 (within (0, 0.75) (iter 16)) $
  35. slow 16 . striate 256 $ s "icarus"
  36. {-
  37. d3 $
  38. slow 8 $ smash 64 [0.5,0.75] $
  39. s "icarus"
  40. -}
  41. -- nimble
  42. d4 $ slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  43. d4 $ superimpose (iter 4) $
  44. slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble"
  45. d4 $
  46. superimpose (
  47. iter 4 .
  48. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1))
  49. ) $
  50. slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble"
  51. d4 $
  52. superimpose (
  53. iter 4 .
  54. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  55. (# nudge "0")
  56. ) $
  57. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  58. d3 silence
  59. d4 $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  60. d4 $ whenmod 5 3 rev $
  61. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  62. d4 $
  63. every' 2 2 (within (0, 0.5) (const silence)) $
  64. superimpose (
  65. iter 4 .
  66. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  67. (# nudge "0")
  68. ) $
  69. whenmod 5 3 rev $
  70. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  71. d4 $
  72. every' 2 2 (within (0.25, 0.5) (const silence)) $
  73. superimpose (
  74. iter 4 .
  75. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  76. (# nudge "0")
  77. ) $
  78. whenmod 5 3 rev $
  79. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  80. -- something of a structure starting to come together here
  81. d1 $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  82. d1 $
  83. (whenmod 5 3 . every' 7 5) (0.5 ~>) $
  84. slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  85. d1 $
  86. (whenmod 5 3 . every' 7 5) (0.5 ~>) $
  87. mt 16 2 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  88. d3 $
  89. every' 2 2 (within (0, 0.75) (iter 16)) $
  90. slow 16 . striate 256 $ s "icarus"
  91. d4 $
  92. every' 2 2 (within (0.25, 0.5) (const silence)) $
  93. whenmod 5 3 rev $
  94. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  95. -- hahaha, holy fuck
  96. d4 $ whenmod 4 2 (const silence) $
  97. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  98. d4 $ whenmod 4 2 (const silence) $
  99. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  100. # vowel "e a"
  101. d4 $ whenmod 4 2 (const silence) $
  102. density 2 $ (# cut "4") $
  103. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  104. # vowel "e a"
  105. d4 $
  106. superimpose ((4 ~>) . iter 4) $
  107. whenmod 4 2 (const silence) $
  108. density 2 $ (# cut "4") $
  109. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  110. # vowel "e a"
  111. d4 $
  112. superimpose (density 2 . (4 ~>) . iter 4) $
  113. whenmod 4 2 (const silence) $
  114. density 2 $ (# cut "4") $
  115. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  116. # vowel "e a"
  117. d5 $ slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  118. d1 $ stack [
  119. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  120. n "[~ 0]/2" # s "sn"
  121. ]
  122. d1 $ stack [
  123. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  124. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  125. ]
  126. -- heh
  127. --bpm 80
  128. d4 $
  129. (2 ~>) $
  130. superimpose (density 2 . (4 ~>) . iter 4) $
  131. whenmod 4 2 (const silence) $
  132. density 2 $ (# cut "4") $
  133. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  134. # vowel "e a"
  135. d5 $
  136. superimpose (
  137. iter 4 .
  138. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  139. (# nudge "0")
  140. ) $
  141. whenmod 5 3 rev $
  142. slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble"
  143. d4 $
  144. (2 ~>) $
  145. superimpose (density 2 . (4 ~>) . iter 4) $
  146. whenmod 4 2 (const silence) $
  147. density 2 $ (# cut "4") $
  148. mt 16 1 $ striate 16 $ n "[0 1]/2" # s "nimble"
  149. # vowel "e a"
  150. d5 $
  151. superimpose (
  152. iter 4 .
  153. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  154. (# nudge "0")
  155. ) $
  156. whenmod 5 3 rev $
  157. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  158. d1 $ mt 16 16 $ stack [
  159. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  160. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  161. ]
  162. -- some other ideas
  163. d1 $ stack [
  164. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  165. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  166. ]
  167. d1 $ stack [
  168. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  169. whenmod 5 3 (
  170. superimpose (
  171. within (0, 0.5) (
  172. (# gain "0.7") .
  173. (# n (irand 3)) .
  174. (# s "tom")
  175. ) .
  176. (# gain "0.8") .
  177. (0.25 ~>) . density 2
  178. )
  179. ) $
  180. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  181. ]
  182. d1 $ stack [
  183. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  184. whenmod 7 6 (slowspread ($) [density 4 . rev . slow 4, id, (0.25 ~>)]) $
  185. whenmod 5 3 (
  186. superimpose (
  187. within (0, 0.5) (
  188. (# gain "0.7") .
  189. (# n (irand 3)) .
  190. (# s "tom")
  191. ) .
  192. (# gain "0.8") .
  193. (0.25 ~>) . density 2
  194. )
  195. ) $
  196. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  197. ]
  198. d4 $ slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  199. d4 $ (0.5 ~>) $
  200. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  201. d4 $ superimpose ((1 <~) . (# vowel "e a")) $
  202. (0.5 ~>) $
  203. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  204. d6 $
  205. every' 3 2 rev $
  206. (2 <~) $
  207. slow 16 $ striate 32 $ n "[0 1]/2" # s "nimble"
  208. # speed "0.55"
  209. -- nailed it
  210. d7 $
  211. whenmod 16 8 (0.5 ~>) $
  212. slow 8 $
  213. slowspread ($) [gap 16, striate 8] $
  214. n "[0 1]/2" # s "nimble"
  215. # speed "[-3 -2]"
  216. d7 $
  217. whenmod 5 2 (density (5%3)) $
  218. whenmod 16 8 (0.5 ~>) $
  219. slow 8 $
  220. slowspread ($) [gap 16, striate 8] $
  221. n "[0 1]/2" # s "nimble"
  222. # speed "[-3 -2]"
  223. d1 $ stack [
  224. n "[1, 0*4 [~ 0*2] [~ 0/2 0 ~] ~]/4" # s "drum",
  225. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  226. ]
  227. d1 $ stack [
  228. n "[1, 0*4 [~ 0*2] [~ 0/2 0 ~] ~]/4" # s "drum",
  229. whenmod 7 6 (slowspread ($) [density 4 . rev . slow 4, id, (0.25 ~>)]) $
  230. whenmod 5 3 (
  231. superimpose (
  232. within (0, 0.5) (
  233. (# gain "0.7") .
  234. (# n (irand 3)) .
  235. (# s "tom")
  236. ) .
  237. (# gain "0.8") .
  238. (0.25 ~>) . density 2
  239. )
  240. ) $
  241. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  242. ]
  243. d1 $ slow 16 . modtempo 0.6 4 $ density 16 $ stack [
  244. n "[1, 0*4 [~ 0*2] [~ 0/2 0 ~] ~]/4" # s "drum",
  245. whenmod 7 6 (slowspread ($) [density 4 . rev . slow 4, id, (0.25 ~>)]) $
  246. whenmod 5 3 (
  247. superimpose (
  248. within (0, 0.5) (
  249. (# gain "0.7") .
  250. (# n (irand 3)) .
  251. (# s "tom")
  252. ) .
  253. (# gain "0.8") .
  254. (0.25 ~>) . density 2
  255. )
  256. ) $
  257. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  258. ]
  259. -- could be a good outro
  260. d1 $ slow 16 . modtempo 0.6 4 $ density 16 $
  261. stack [
  262. n "[1, 0*4 [~ 0*2] [~ 0/2 0 ~] ~]/4" # s "drum",
  263. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn"
  264. ]
  265. hush
  266. {-
  267. ok so from here on i'm actually trying to write a song,
  268. everything above is scratch
  269. -}
  270. -- pt 1: intro
  271. let d'drum = d1
  272. d'kit = d2
  273. d'wax = d3
  274. d'bass = d4
  275. d'bass2 = d5
  276. d'hi = d7
  277. bpm 105
  278. hush
  279. d'drum $ slow 4 $ n "1" # s "drum"
  280. d'wax $ slow 16 . striate 256 $ s "icarus"
  281. d'kit $ n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  282. d'drum $ slow 8 $ n "[1*2, 0*8]" # s "drum"
  283. d'wax $ superimpose (8 ~>) $
  284. slow 16 . striate 256 $ s "icarus"
  285. d'bass $ slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  286. d'wax $ slow 16 . striate 256 $ s "icarus"
  287. d'drum $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  288. d'wax $ superimpose (8 ~>) $
  289. every' 2 2 (within (0, 0.75) (iter 16)) $
  290. slow 16 . striate 256 $ s "icarus"
  291. d'kit $ withmod 11 5 0.5 1 (density 2) $
  292. n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  293. d'bass $ superimpose (iter 4) $
  294. slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble"
  295. let bass'osc1 = (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1))
  296. d'bass $ superimpose (iter 4 . bass'osc1) $
  297. slow 16 $ striate 256 $ n "[0 1]/2" # s "nimble"
  298. d'wax $ slow 16 . striate 256 $ s "icarus"
  299. d'kit $ whenmod 3 2 (density 2) $
  300. withmod 11 5 0.5 1 (density 2) $
  301. n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  302. -- pt 2: mod tempo
  303. d'drum $ mt 16 2 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  304. d'bass $ superimpose (iter 4 . bass'osc1 . (# nudge "0")) $
  305. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  306. d'wax silence
  307. d'bass $ mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  308. d'bass $ whenmod 5 3 rev $
  309. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  310. d'bass $ every' 2 2 (within (0, 0.5) (const silence)) $
  311. whenmod 5 3 rev $
  312. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  313. d'bass $ every' 2 2 (within (0, 0.5) (const silence)) $
  314. superimpose (iter 4 . bass'osc1 . (# nudge "0")) $
  315. whenmod 5 3 rev $
  316. mt 16 1 $ striate 256 $ n "[0 1]/2" # s "nimble"
  317. -- pt 2.5: straighten up
  318. d'drum $ slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  319. d'bass $ whenmod 4 2 (const silence) $
  320. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  321. d'kit $ every' 16 8 (const $ s "kit:3") $
  322. whenmod 3 2 (density 2) $
  323. withmod 11 5 0.5 1 (density 2) $
  324. n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit"
  325. d'drum $ (whenmod 5 3 . every' 7 5) (0.5 ~>) $
  326. slow 8 $ n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]" # s "drum"
  327. d'bass $ whenmod 4 2 (const silence) $
  328. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  329. # vowel "e a"
  330. d'hi $ whenmod 16 8 (0.5 ~>) $
  331. slow 8 $ slowspread ($) [gap 16, striate 8] $
  332. n "[0 1]/2" # s "nimble" # speed "[-3 -2]"
  333. # gain "0.9"
  334. d'bass $ whenmod 4 2 (const silence) $
  335. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  336. # vowel "e a"
  337. # cut "4"
  338. d'wax $ slow 16 . striate 256 $ s "icarus"
  339. d'bass $ superimpose ((4 ~>) . iter 4) $
  340. whenmod 4 2 (const silence) $
  341. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  342. # vowel "e a"
  343. # cut "4"
  344. -- pt 3: hip hoppy
  345. d1 silence
  346. d'drum $ stack [
  347. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  348. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn" # gain "0.76"
  349. ]
  350. d'bass2 $ (0.5 ~>) $
  351. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  352. let drum'sn1 = (# gain "0.65") . (0.25 ~>) . density 2
  353. let drum'toms1 = within (0, 0.5) ((# gain "0.6") . (# n (irand 3)) . (# s "tom"))
  354. d'drum $ stack [
  355. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  356. whenmod 5 3 (superimpose drum'sn1) $
  357. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn" # gain "0.76"
  358. ]
  359. d'bass $ superimpose ((4 ~>) . iter 4) $
  360. whenmod 4 2 (const silence) $
  361. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  362. # vowel (slow 2.1 "[u i o]")
  363. # cut "4"
  364. d'drum $ stack [
  365. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  366. whenmod 5 3 (superimpose (drum'toms1 . drum'sn1)) $
  367. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn" # gain "0.76"
  368. ]
  369. d'bass $ superimpose ((4 ~>) . iter 4) $
  370. whenmod 4 2 (rev) $
  371. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  372. # vowel (slow 2.1 "[u i o]")
  373. # cut "4"
  374. d'bass $ superimpose ((4 ~>) . iter 6) $
  375. whenmod 4 2 (rev) $
  376. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  377. # vowel (slow 2.1 "[u i o]")
  378. # cut "4"
  379. d'bass2 $ (0.5 ~>) $
  380. slow 16 $ striate 16 $ n "[0 1]/2" # s "nimble"
  381. # vowel "e a"
  382. d'bass2 $ (0.5 ~>) $
  383. slow 16 $ gap 64 $ n "[0 1]/2" # s "nimble"
  384. # vowel "e a"
  385. -- pt 4: hip houtro
  386. d'drum $ mt 16 16 $ stack [
  387. n "[1, 0*2 [~ 0] ! ~]/4" # s "drum",
  388. whenmod 5 3 (superimpose (drum'toms1 . drum'sn1)) $
  389. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn" # gain "0.76"
  390. ]
  391. d'bass2 $ (0.5 ~>) $
  392. mt 16 1 $ striate 16 $ n "[0 1]/2" # s "nimble"
  393. # vowel "e a"
  394. d'bass $ superimpose ((4 ~>) . iter 6) $
  395. whenmod 4 2 (rev) $
  396. mt 16 1 $ striate 16 $ n "[0 1]/2" # s "nimble"
  397. # vowel (slow 2.1 "[u i o]")
  398. # cut "4"
  399. d'drum $ mt 16 16 $ stack [
  400. n "[1, 0*4 [~ 0*2] [~ 0/2 0 ~] ~]/4" # s "drum",
  401. whenmod 5 3 (superimpose (drum'toms1 . drum'sn1)) $
  402. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn" # gain "0.76"
  403. ]
  404. solo $ d'drum $ slow 16 . modtempo 0.6 4 $ density 16 $ stack [
  405. n "[1, 0*4 [~ 0*2] [~ 0/2 0 ~] ~]/4" # s "drum",
  406. whenmod 5 3 (superimpose (drum'toms1 . drum'sn1)) $
  407. 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4" # s "sn" # gain "0.76"
  408. ]
  409. hush