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. let nim'osc = (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1))
  17. nim'del = (# delay "0.5") . (# delayfeedback "0.6") . (# delaytime "0.25")
  18. -- original bpm = 105
  19. let tmod' s e = tmod (s*(1/(105/60))) e
  20. mt s d i = slow s $ tmod' 0.5 3 $ density d $ i
  21. bpm 105
  22. {----------
  23. drum + perc
  24. ----------}
  25. hush
  26. d'drum silence
  27. d'drum $
  28. --mt 16 16 $
  29. --within (0.5, 1) (rev) $ -- soften
  30. --swing' $
  31. stack [
  32. --n "1/4"
  33. --n "[1*2, 0*8]/8"
  34. --n "[1*2, 0*8, [~!! [~!! 0] ! ~!!]]/8"
  35. n "[1*2, 0*8, [~!! [~!! 0] ! ~ [~ 0/4] ~]]/8"
  36. --n "[1*2, 0*8, [~!! [~!! 0] ! ~ [~ 0/4] [~ 0 ~!]]]/8"
  37. --n "[1*2, 0*8, [~! [~ 0] [~!! 0] ! ~ [~ 0] [~ 0 ~!]]]/8"
  38. # s "drum",
  39. --every' 16 16 (const $ s "kit:3") $
  40. whenmod 3 2 (density 2) $
  41. (whenmod 11 5 . within (0.5, 1)) (density 2) $
  42. --n ""
  43. --n "[~ [0 2]/2]"
  44. n "[[~ 0] [[2!! ~]/4 0]]/2"
  45. # s "kit",
  46. --n ""
  47. --n "[~ [~ 1]]/2"
  48. --n "[~ [~ 0/8 1 0/2]]/2"
  49. --0.5 <~ n "[~ [~ 0/8 1 0/2]]/2"
  50. --n "[~ [1 0/8 1/2 0/2]]/2"
  51. 0.5 <~ n "[~ [1/2 0/8 1 0/2]]/2"
  52. --n "[~ [1 0/8 1 0/2]]/2"
  53. # s "sn"
  54. # gain "0.8"
  55. ]
  56. d'drum $ n "[1*2, 0*8]/8" # s "drum"
  57. {-----
  58. icarus
  59. -----}
  60. hush
  61. d'wax silence
  62. d'wax $
  63. --every' 2 2 (within (0, 0.75) (iter 16)) $
  64. slow 16 . striate 256 $ s "icarus"
  65. d'wax $ retrig $ s "icarus:1/20"
  66. {-----
  67. nimble
  68. -----}
  69. hush
  70. d'nim silence
  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