2
0

scratch.tidal 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. {-
  2. defs
  3. -}
  4. let bpm b = cps (b/60)
  5. withmod a b c d = (whenmod a b . within (c, d))
  6. every' n o f = when ((== (o-1)) . (`mod` n)) f
  7. msil = mapM_ ($ silence)
  8. tmod s e = (# nudge (scale 0 s $ fmap (**e) saw1))
  9. let swing a = within (0.1, 0.4) (a ~>) . within (0.6, 0.9) (a ~>)
  10. swing' = swing 0.14 --0.05
  11. let d'drum = d1
  12. d'bass = d3
  13. d'wax = d4
  14. d'nim = d5
  15. d'hi = d6
  16. -- original bpm = 105
  17. let tmod' s e = tmod (s*(1/(105/60))) e
  18. mt s d i = slow s $ tmod' 0.5 3 $ density d $ i
  19. bpm 105
  20. {----------
  21. drum + perc
  22. ----------}
  23. hush
  24. d'drum silence
  25. d'drum $
  26. --mt 16 16 $
  27. --within (0.5, 1) (rev) $ -- soften
  28. --swing' $
  29. stack [
  30. --n "1/4"
  31. --n "[1*2, 0*8]/8"
  32. --n "[1*2, 0*8, [~!! [~!! 0] ! ~!!]]/8"
  33. n "[1*2, 0*8, [~!! [~!! 0] ! ~ [~ 0/4] ~]]/8"
  34. --n "[1*2, 0*8, [~!! [~!! 0] ! ~ [~ 0/4] [~ 0 ~!]]]/8"
  35. --n "[1*2, 0*8, [~! [~ 0] [~!! 0] ! ~ [~ 0] [~ 0 ~!]]]/8"
  36. # s "drum",
  37. --every' 16 16 (const $ s "kit:3") $
  38. whenmod 3 2 (density 2) $
  39. (whenmod 11 5 . within (0.5, 1)) (density 2) $
  40. --n ""
  41. --n "[~ [0 2]/2]"
  42. n "[[~ 0] [[2!! ~]/4 0]]/2"
  43. # s "kit",
  44. --n ""
  45. --n "[~ [~ 1]]/2"
  46. --n "[~ [~ 0/8 1 0/2]]/2"
  47. --0.5 <~ n "[~ [~ 0/8 1 0/2]]/2"
  48. --n "[~ [1 0/8 1/2 0/2]]/2"
  49. 0.5 <~ n "[~ [1/2 0/8 1 0/2]]/2"
  50. --n "[~ [1 0/8 1 0/2]]/2"
  51. # s "sn"
  52. # gain "0.8"
  53. ]
  54. d'drum $ n "[1*2, 0*8]/8" # s "drum"
  55. {-----
  56. icarus
  57. -----}
  58. hush
  59. d'wax silence
  60. d'wax $
  61. --every' 2 2 (within (0, 0.75) (iter 16)) $
  62. slow 16 . striate 256 $ s "icarus"
  63. d'wax $ retrig $ s "icarus:1/20"
  64. {-----
  65. nimble
  66. -----}
  67. hush
  68. d'nim silence
  69. let nim'osc = (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1))
  70. let nim'del = (# delay "0.5") . (# delayfeedback "0.6") . (# delaytime "0.25")
  71. d'nim $
  72. {-
  73. superimpose (
  74. --iter 4 .
  75. iter 6 .
  76. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  77. (# nudge "0")
  78. ) $
  79. --}
  80. {-
  81. (whenmod 5 2 $
  82. slowspread (\x -> within (0.5, 1) x) [
  83. id, density (5%3), rev, density (4%3), id, rev, (0.5 <~)
  84. ]) $
  85. --}
  86. --whenmod 4 2 (const silence) $
  87. --mt 16 1 $
  88. slow 16 $
  89. striate 256 $ n "[0 1]/2" # s "nimble"
  90. -- # shape ((/4) <$> density 1.9 sine1)
  91. -- could be killer for part 2
  92. d'nim $
  93. --{-
  94. superimpose (
  95. iter 4 .
  96. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1))
  97. ) $
  98. --}
  99. --{-
  100. every' 16 1 (
  101. (# vowel "o u")
  102. . (# delay "0.5") . (# delayfeedback "0.6") . (# delaytime "0.25")
  103. ) $
  104. --}
  105. whenmod 16 12 (# vowel "[a i]/3") $
  106. (1 ~>) $
  107. slow 16 $
  108. striate 256 $ n "[0 1]/2" # s "nimble"
  109. {---
  110. bass
  111. ---}
  112. hush
  113. d'bass silence
  114. let s = striate 16
  115. in d'bass $
  116. whenmod 3 2 (within (0, 0.5) (const silence)) $
  117. whenmod 10 8 (within (0.5, 1) (const silence)) $
  118. slow 8 $ stack [
  119. s $ sound "bass",
  120. s $ sound "sine"
  121. ]
  122. let s = gap 32
  123. in d'bass $
  124. swing' $
  125. whenmod 3 2 (within (0, 0.5) (const silence)) $
  126. whenmod 10 8 (within (0.5, 1) (const silence)) $
  127. slowspread (slow) [4%3, 1] $
  128. (0.25 ~>) $
  129. slow 8 $ stack [
  130. s $ sound "bass",
  131. s $ sound "sine"
  132. ]
  133. {---------
  134. alt nimble (wip)
  135. ---------}
  136. hush
  137. d'hi silence
  138. d'hi $
  139. swing' $
  140. every 3 rev $
  141. --within (0.5, 1) (density 2) $
  142. whenmod 12 8 (0.5 <~) $
  143. (0.5 ~>) $
  144. slow 8 $
  145. --slowspread (gap) [64, 16] $ -- idk
  146. gap 64 $
  147. n "[0 1]/2" # s "nimble"
  148. -- # speed "[-3 -4]"
  149. # speed ((-4+).(*(-1)) <$> density 1.1 sine1)
  150. -- # vowel "[u a]/3"
  151. hush