scratch.tidal 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. --within (0.5, 1) (rev) $ -- soften
  27. --mt 16 16 $
  28. swing' $
  29. stack [
  30. superimpose (0.25 ~>) $
  31. --n "1/4"
  32. --n "[1*2, 0*8]/8"
  33. --n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] 0]/8"
  34. n "[1*2, 0 0 0 [0 ~! 0] ! 0 [0 0/4] [0! ~!]]/8"
  35. # s "drum",
  36. --every' 16 16 (const $ s "kit:3") $
  37. whenmod 3 2 (density 2) $
  38. (whenmod 11 5 . within (0.5, 1)) (density 2) $
  39. --n ""
  40. --n "[~ [0 2]/2]"
  41. n "[[~ 0] [[2!! ~]/4 0]]/2"
  42. # s "kit",
  43. --n ""
  44. --n "[~ [~ 1]]/2"
  45. --n "[~ [~ 0/8 1 0/2]]/2"
  46. --0.5 <~ n "[~ [~ 0/8 1 0/2]]/2"
  47. n "[~ [1 0/8 1/2 0/2]]/2"
  48. --n "[~ [1 0/8 1 0/2]]/2"
  49. # s "sn"
  50. # gain "0.8"
  51. ]
  52. {-----
  53. icarus
  54. -----}
  55. hush
  56. d'wax silence
  57. d'wax $
  58. --every' 2 2 (within (0, 0.75) (iter 16)) $
  59. slow 16 . striate 256 $ s "icarus"
  60. d'wax $ retrig $ s "icarus:1/20"
  61. {-----
  62. nimble
  63. -----}
  64. hush
  65. d'nim silence
  66. d'nim $
  67. --{-
  68. superimpose (
  69. --iter 4 .
  70. iter 6 .
  71. (# speed ((+0.8).(/1.5) <$> slow 2.5 sine1)) .
  72. (# nudge "0")
  73. ) $
  74. --}
  75. --{-
  76. (whenmod 5 2 $
  77. slowspread (\x -> within (0.5, 1) x) [
  78. id, density (5%3), rev, density (4%3), id, rev, (0.5 <~)
  79. ]) $
  80. --}
  81. whenmod 4 2 (const silence) $
  82. --mt 16 1 $
  83. slow 16 $
  84. striate 256 $ n "[0 1]/2" # s "nimble"
  85. -- # shape ((/4) <$> density 1.9 sine1)
  86. {---
  87. bass
  88. ---}
  89. hush
  90. d'bass silence
  91. let s = striate 16
  92. in d'bass $
  93. whenmod 3 2 (within (0, 0.5) (const silence)) $
  94. whenmod 10 8 (within (0.5, 1) (const silence)) $
  95. --{-
  96. within (0, 0.5) (
  97. (# speed "-1") .
  98. smash 4 [(4%3),(5%3)]
  99. ) $
  100. --}
  101. slow 8 $ stack [
  102. s $ sound "bass",
  103. s $ sound "sine"
  104. ]
  105. # gain "0.8"
  106. {---------
  107. alt nimble (wip)
  108. ---------}
  109. hush
  110. d'hi silence
  111. d'hi $
  112. swing' $
  113. within (0.5, 1) (density 2) $
  114. whenmod 16 8 (0.5 <~) $
  115. (0.5 ~>) $
  116. slow 8 $
  117. gap 64 $
  118. n "[0 1]/2" # s "nimble"
  119. -- # speed "[-3 -4]"
  120. # speed ((-4+).(*(-1)) <$> density 1.1 sine1)
  121. -- # vowel "[u a e]/3"
  122. hush