2
0

scratch.tidal 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. let tmod s e = (# nudge (scale 0 s $ fmap (**e) saw1))
  9. mt s d i = slow s . tmod 0.3 3 $ density d $ i
  10. let d'drum = d1
  11. d'wax = d3
  12. d'nim = d4
  13. d'nim2 = d5
  14. d'bass = d6
  15. d'hi = d7
  16. -- original bpm = 105
  17. bpm 105
  18. {----------
  19. drum + perc
  20. ----------}
  21. d'drum silence
  22. let --dp = n "1/4"
  23. --dp = n "[1*2, 0*8]/8"
  24. dp = n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]/8"
  25. --dp = n "[1, 0*2 [~ 0] ! ~]/4"
  26. {--}
  27. kp = n "[~ [0 2]/2]"
  28. --kp = n "[[~ 0] [[2!! ~]/4 0]]/2"
  29. {--}
  30. sp = n ""
  31. --sp = 4 ~> n "[~ 0 [~ 0/2 ~!] 0]/4"
  32. --sp = 4 ~> n "[~ [0 ~ ~ 0/2] ~ 0]/4"
  33. {--}
  34. ste = id -- . mt 16 16
  35. de = id
  36. -- . (whenmod 9 5 . whenmod 7 4) (density 2 . rev) {- 9 5? -}
  37. -- . superimpose (0.25 ~>)
  38. ke = id
  39. -- . every' 16 8 (const $ s "kit:3")
  40. -- . whenmod 3 2 (density 2)
  41. -- . (whenmod 11 5 . within (0.5, 1)) (density 2)
  42. se = id
  43. -- . within (0.1, 0.4) (# nudge "0.05") . within (0.6, 0.9) (# nudge "0.05")
  44. {-
  45. . whenmod 7 6 (slowspread ($) [
  46. density 8 . rev . slow 4,
  47. (0.25 <~),
  48. (0.25 ~>)
  49. ])
  50. --}
  51. {-
  52. . whenmod 5 3 (
  53. superimpose (
  54. within (0, 0.5) ((# gain "0.6") . (# n (irand 3)) . (# s "tom")) .
  55. (# gain "0.65") . (0.25 ~>) . density 2
  56. ))
  57. --}
  58. -- . every' 16 16 (superimpose (0.75 ~>))
  59. in d'drum $
  60. ste $ stack [
  61. de $ dp # s "drum",
  62. ke $ kp # s "kit",
  63. se $ sp # s "sn" # gain "0.76"
  64. ]
  65. {-----
  66. icarus
  67. -----}
  68. d'wax silence
  69. d'wax $
  70. -- every' 2 2 (within (0, 0.75) (iter 16)) $
  71. slow 16 . striate 256 $ s "icarus"
  72. d'wax $ retrig $ s "icarus:1/20"
  73. {-----
  74. nimble
  75. -----}
  76. msil [d'nim, d'nim2]
  77. let ns = slow 16 . striate 256
  78. --ns = mt 16 1 . striate 256
  79. nei = 4 {- 4,6 -}
  80. ne = id
  81. -- . every' 2 2 (within (0, 0.5) (const silence))
  82. {-
  83. . superimpose (
  84. iter nei
  85. -- . (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1))
  86. -- . nudge "0"
  87. )
  88. --}
  89. -- . (0.5 ~>)
  90. in d'nim $
  91. ne $ ns $ n "[0 1]/2" # s "nimble"
  92. {---
  93. bass
  94. ---}
  95. d'bass silence
  96. let be = id
  97. -- . (# speed "[1 1.2]")
  98. -- . (0.5 ~>)
  99. -- . (1.3 ~>)
  100. bc = id
  101. -- . striate 16
  102. -- . gap 32
  103. bs = id
  104. . slow 8
  105. -- . mt 16 2
  106. in d'bass $
  107. be $ bs $ stack [
  108. bc $ sound "bass",
  109. bc $ sound "sine"
  110. ]
  111. # gain "0.8"
  112. {---------
  113. alt nimble (wip)
  114. ---------}
  115. d'hi silence
  116. d'hi $
  117. -- whenmod 16 12 (0.5 ~>) $
  118. -- whenmod 16 8 (0.5 ~>) $
  119. -- (0.5 ~>) $
  120. whenmod 12 8 (0.5 <~) $ (0.5 ~>) $ -- heh
  121. slow 8 $
  122. -- slowspread ($) [gap 16, gap 64] $
  123. slowspread ($) [gap 16, gap 32] $
  124. n "[0 1]/2" # s "nimble"
  125. # speed "[-3 -2]"
  126. -- # gain "1.2"
  127. hush