@jadujoel/web-audio-clip-node 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/dist/audio/processor-code.d.ts +1 -1
  2. package/dist/audio/processor-code.js +1 -1
  3. package/dist/audio/processor-kernel.js +20 -6
  4. package/dist/audio/version.d.ts +1 -1
  5. package/dist/audio/version.js +1 -1
  6. package/dist/lib.bundle.js +3 -3
  7. package/dist/lib.bundle.js.map +3 -3
  8. package/dist/processor.js +2 -2
  9. package/dist/processor.js.map +3 -3
  10. package/examples/cdn-vanilla/README.md +1 -1
  11. package/examples/cdn-vanilla/index.html +2 -14
  12. package/examples/esm-bundler/README.md +3 -4
  13. package/examples/esm-bundler/bun.lock +15 -0
  14. package/examples/esm-bundler/index.html +1 -1
  15. package/examples/esm-bundler/{src/main.ts → main.ts} +2 -4
  16. package/examples/esm-bundler/package.json +3 -6
  17. package/package.json +1 -1
  18. package/examples/esm-bundler/node_modules/.package-lock.json +0 -1168
  19. package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/README.md +0 -3
  20. package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
  21. package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/package.json +0 -20
  22. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/LICENSE +0 -21
  23. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/README.md +0 -91
  24. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/ClipNode.d.ts +0 -86
  25. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/ClipNode.js +0 -312
  26. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-code.d.ts +0 -1
  27. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-code.js +0 -2
  28. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-kernel.d.ts +0 -43
  29. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-kernel.js +0 -861
  30. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor.d.ts +0 -1
  31. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor.js +0 -80
  32. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/types.d.ts +0 -192
  33. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/types.js +0 -9
  34. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/utils.d.ts +0 -22
  35. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/utils.js +0 -128
  36. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/version.d.ts +0 -1
  37. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/version.js +0 -2
  38. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/workletUrl.d.ts +0 -6
  39. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/workletUrl.js +0 -17
  40. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/AudioControl.d.ts +0 -28
  41. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/AudioControl.js +0 -99
  42. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ContextMenu.d.ts +0 -17
  43. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ContextMenu.js +0 -73
  44. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ControlSection.d.ts +0 -26
  45. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ControlSection.js +0 -74
  46. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DetuneControl.d.ts +0 -10
  47. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DetuneControl.js +0 -44
  48. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DisplayPanel.d.ts +0 -14
  49. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DisplayPanel.js +0 -6
  50. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/FilterControl.d.ts +0 -12
  51. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/FilterControl.js +0 -48
  52. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/GainControl.d.ts +0 -10
  53. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/GainControl.js +0 -44
  54. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PanControl.d.ts +0 -10
  55. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PanControl.js +0 -50
  56. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlaybackRateControl.d.ts +0 -10
  57. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlaybackRateControl.js +0 -44
  58. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlayheadSlider.d.ts +0 -13
  59. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlayheadSlider.js +0 -20
  60. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/SnappableSlider.d.ts +0 -18
  61. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/SnappableSlider.js +0 -174
  62. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/TransportButtons.d.ts +0 -14
  63. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/TransportButtons.js +0 -9
  64. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/controlDefs.d.ts +0 -31
  65. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/controlDefs.js +0 -211
  66. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/formatValueText.d.ts +0 -2
  67. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/formatValueText.js +0 -80
  68. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/linkedControlPairs.d.ts +0 -20
  69. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/linkedControlPairs.js +0 -51
  70. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/cache.d.ts +0 -1
  71. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/cache.js +0 -17
  72. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/fileStore.d.ts +0 -6
  73. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/fileStore.js +0 -39
  74. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/hooks/useClipNode.d.ts +0 -31
  75. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/hooks/useClipNode.js +0 -338
  76. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib-react.d.ts +0 -15
  77. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib-react.js +0 -17
  78. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib.d.ts +0 -16
  79. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib.js +0 -16
  80. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/processor.js +0 -4
  81. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/processor.js.map +0 -12
  82. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/store/clipStore.d.ts +0 -63
  83. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/store/clipStore.js +0 -71
  84. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/styles.css +0 -739
  85. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/README.md +0 -10
  86. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/cdn-vanilla/README.md +0 -13
  87. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/cdn-vanilla/index.html +0 -61
  88. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/README.md +0 -8
  89. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/index.html +0 -12
  90. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/package.json +0 -15
  91. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/src/main.ts +0 -43
  92. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/README.md +0 -10
  93. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/index.html +0 -12
  94. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/package.json +0 -21
  95. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/src/App.tsx +0 -20
  96. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/src/main.tsx +0 -9
  97. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/vite.config.ts +0 -6
  98. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/README.md +0 -11
  99. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/index.html +0 -12
  100. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/package.json +0 -16
  101. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/public/.gitkeep +0 -1
  102. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/src/main.ts +0 -46
  103. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/package.json +0 -88
  104. package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/README.md +0 -3
  105. package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/package.json +0 -22
  106. package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node +0 -0
  107. package/examples/esm-bundler/node_modules/@types/estree/LICENSE +0 -21
  108. package/examples/esm-bundler/node_modules/@types/estree/README.md +0 -15
  109. package/examples/esm-bundler/node_modules/@types/estree/flow.d.ts +0 -167
  110. package/examples/esm-bundler/node_modules/@types/estree/index.d.ts +0 -694
  111. package/examples/esm-bundler/node_modules/@types/estree/package.json +0 -27
  112. package/examples/esm-bundler/node_modules/esbuild/LICENSE.md +0 -21
  113. package/examples/esm-bundler/node_modules/esbuild/README.md +0 -3
  114. package/examples/esm-bundler/node_modules/esbuild/bin/esbuild +0 -0
  115. package/examples/esm-bundler/node_modules/esbuild/install.js +0 -289
  116. package/examples/esm-bundler/node_modules/esbuild/lib/main.d.ts +0 -716
  117. package/examples/esm-bundler/node_modules/esbuild/lib/main.js +0 -2242
  118. package/examples/esm-bundler/node_modules/esbuild/package.json +0 -49
  119. package/examples/esm-bundler/node_modules/fdir/LICENSE +0 -7
  120. package/examples/esm-bundler/node_modules/fdir/README.md +0 -91
  121. package/examples/esm-bundler/node_modules/fdir/dist/index.cjs +0 -588
  122. package/examples/esm-bundler/node_modules/fdir/dist/index.d.cts +0 -155
  123. package/examples/esm-bundler/node_modules/fdir/dist/index.d.mts +0 -155
  124. package/examples/esm-bundler/node_modules/fdir/dist/index.mjs +0 -570
  125. package/examples/esm-bundler/node_modules/fdir/package.json +0 -103
  126. package/examples/esm-bundler/node_modules/nanoid/LICENSE +0 -20
  127. package/examples/esm-bundler/node_modules/nanoid/README.md +0 -39
  128. package/examples/esm-bundler/node_modules/nanoid/async/index.browser.cjs +0 -69
  129. package/examples/esm-bundler/node_modules/nanoid/async/index.browser.js +0 -34
  130. package/examples/esm-bundler/node_modules/nanoid/async/index.cjs +0 -71
  131. package/examples/esm-bundler/node_modules/nanoid/async/index.d.ts +0 -56
  132. package/examples/esm-bundler/node_modules/nanoid/async/index.js +0 -35
  133. package/examples/esm-bundler/node_modules/nanoid/async/index.native.js +0 -26
  134. package/examples/esm-bundler/node_modules/nanoid/async/package.json +0 -12
  135. package/examples/esm-bundler/node_modules/nanoid/bin/nanoid.cjs +0 -55
  136. package/examples/esm-bundler/node_modules/nanoid/index.browser.cjs +0 -72
  137. package/examples/esm-bundler/node_modules/nanoid/index.browser.js +0 -34
  138. package/examples/esm-bundler/node_modules/nanoid/index.cjs +0 -85
  139. package/examples/esm-bundler/node_modules/nanoid/index.d.cts +0 -91
  140. package/examples/esm-bundler/node_modules/nanoid/index.d.ts +0 -91
  141. package/examples/esm-bundler/node_modules/nanoid/index.js +0 -45
  142. package/examples/esm-bundler/node_modules/nanoid/nanoid.js +0 -1
  143. package/examples/esm-bundler/node_modules/nanoid/non-secure/index.cjs +0 -34
  144. package/examples/esm-bundler/node_modules/nanoid/non-secure/index.d.ts +0 -33
  145. package/examples/esm-bundler/node_modules/nanoid/non-secure/index.js +0 -21
  146. package/examples/esm-bundler/node_modules/nanoid/non-secure/package.json +0 -6
  147. package/examples/esm-bundler/node_modules/nanoid/package.json +0 -89
  148. package/examples/esm-bundler/node_modules/nanoid/url-alphabet/index.cjs +0 -7
  149. package/examples/esm-bundler/node_modules/nanoid/url-alphabet/index.js +0 -3
  150. package/examples/esm-bundler/node_modules/nanoid/url-alphabet/package.json +0 -6
  151. package/examples/esm-bundler/node_modules/picocolors/LICENSE +0 -15
  152. package/examples/esm-bundler/node_modules/picocolors/README.md +0 -21
  153. package/examples/esm-bundler/node_modules/picocolors/package.json +0 -25
  154. package/examples/esm-bundler/node_modules/picocolors/picocolors.browser.js +0 -4
  155. package/examples/esm-bundler/node_modules/picocolors/picocolors.d.ts +0 -5
  156. package/examples/esm-bundler/node_modules/picocolors/picocolors.js +0 -75
  157. package/examples/esm-bundler/node_modules/picocolors/types.d.ts +0 -51
  158. package/examples/esm-bundler/node_modules/picomatch/LICENSE +0 -21
  159. package/examples/esm-bundler/node_modules/picomatch/README.md +0 -749
  160. package/examples/esm-bundler/node_modules/picomatch/index.js +0 -17
  161. package/examples/esm-bundler/node_modules/picomatch/lib/constants.js +0 -184
  162. package/examples/esm-bundler/node_modules/picomatch/lib/parse.js +0 -1386
  163. package/examples/esm-bundler/node_modules/picomatch/lib/picomatch.js +0 -349
  164. package/examples/esm-bundler/node_modules/picomatch/lib/scan.js +0 -391
  165. package/examples/esm-bundler/node_modules/picomatch/lib/utils.js +0 -72
  166. package/examples/esm-bundler/node_modules/picomatch/package.json +0 -82
  167. package/examples/esm-bundler/node_modules/picomatch/posix.js +0 -3
  168. package/examples/esm-bundler/node_modules/postcss/LICENSE +0 -20
  169. package/examples/esm-bundler/node_modules/postcss/README.md +0 -28
  170. package/examples/esm-bundler/node_modules/postcss/lib/at-rule.d.ts +0 -139
  171. package/examples/esm-bundler/node_modules/postcss/lib/at-rule.js +0 -25
  172. package/examples/esm-bundler/node_modules/postcss/lib/comment.d.ts +0 -67
  173. package/examples/esm-bundler/node_modules/postcss/lib/comment.js +0 -13
  174. package/examples/esm-bundler/node_modules/postcss/lib/container.d.ts +0 -478
  175. package/examples/esm-bundler/node_modules/postcss/lib/container.js +0 -447
  176. package/examples/esm-bundler/node_modules/postcss/lib/css-syntax-error.d.ts +0 -247
  177. package/examples/esm-bundler/node_modules/postcss/lib/css-syntax-error.js +0 -133
  178. package/examples/esm-bundler/node_modules/postcss/lib/declaration.d.ts +0 -150
  179. package/examples/esm-bundler/node_modules/postcss/lib/declaration.js +0 -24
  180. package/examples/esm-bundler/node_modules/postcss/lib/document.d.ts +0 -68
  181. package/examples/esm-bundler/node_modules/postcss/lib/document.js +0 -33
  182. package/examples/esm-bundler/node_modules/postcss/lib/fromJSON.d.ts +0 -9
  183. package/examples/esm-bundler/node_modules/postcss/lib/fromJSON.js +0 -54
  184. package/examples/esm-bundler/node_modules/postcss/lib/input.d.ts +0 -226
  185. package/examples/esm-bundler/node_modules/postcss/lib/input.js +0 -273
  186. package/examples/esm-bundler/node_modules/postcss/lib/lazy-result.d.ts +0 -189
  187. package/examples/esm-bundler/node_modules/postcss/lib/lazy-result.js +0 -550
  188. package/examples/esm-bundler/node_modules/postcss/lib/list.d.ts +0 -60
  189. package/examples/esm-bundler/node_modules/postcss/lib/list.js +0 -58
  190. package/examples/esm-bundler/node_modules/postcss/lib/map-generator.js +0 -376
  191. package/examples/esm-bundler/node_modules/postcss/lib/no-work-result.d.ts +0 -45
  192. package/examples/esm-bundler/node_modules/postcss/lib/no-work-result.js +0 -137
  193. package/examples/esm-bundler/node_modules/postcss/lib/node.d.ts +0 -555
  194. package/examples/esm-bundler/node_modules/postcss/lib/node.js +0 -449
  195. package/examples/esm-bundler/node_modules/postcss/lib/parse.d.ts +0 -9
  196. package/examples/esm-bundler/node_modules/postcss/lib/parse.js +0 -42
  197. package/examples/esm-bundler/node_modules/postcss/lib/parser.js +0 -611
  198. package/examples/esm-bundler/node_modules/postcss/lib/postcss.d.mts +0 -66
  199. package/examples/esm-bundler/node_modules/postcss/lib/postcss.d.ts +0 -456
  200. package/examples/esm-bundler/node_modules/postcss/lib/postcss.js +0 -101
  201. package/examples/esm-bundler/node_modules/postcss/lib/postcss.mjs +0 -30
  202. package/examples/esm-bundler/node_modules/postcss/lib/previous-map.d.ts +0 -80
  203. package/examples/esm-bundler/node_modules/postcss/lib/previous-map.js +0 -145
  204. package/examples/esm-bundler/node_modules/postcss/lib/processor.d.ts +0 -114
  205. package/examples/esm-bundler/node_modules/postcss/lib/processor.js +0 -67
  206. package/examples/esm-bundler/node_modules/postcss/lib/result.d.ts +0 -204
  207. package/examples/esm-bundler/node_modules/postcss/lib/result.js +0 -42
  208. package/examples/esm-bundler/node_modules/postcss/lib/root.d.ts +0 -86
  209. package/examples/esm-bundler/node_modules/postcss/lib/root.js +0 -61
  210. package/examples/esm-bundler/node_modules/postcss/lib/rule.d.ts +0 -126
  211. package/examples/esm-bundler/node_modules/postcss/lib/rule.js +0 -27
  212. package/examples/esm-bundler/node_modules/postcss/lib/stringifier.d.ts +0 -45
  213. package/examples/esm-bundler/node_modules/postcss/lib/stringifier.js +0 -353
  214. package/examples/esm-bundler/node_modules/postcss/lib/stringify.d.ts +0 -9
  215. package/examples/esm-bundler/node_modules/postcss/lib/stringify.js +0 -11
  216. package/examples/esm-bundler/node_modules/postcss/lib/symbols.js +0 -5
  217. package/examples/esm-bundler/node_modules/postcss/lib/terminal-highlight.js +0 -70
  218. package/examples/esm-bundler/node_modules/postcss/lib/tokenize.js +0 -266
  219. package/examples/esm-bundler/node_modules/postcss/lib/warn-once.js +0 -13
  220. package/examples/esm-bundler/node_modules/postcss/lib/warning.d.ts +0 -146
  221. package/examples/esm-bundler/node_modules/postcss/lib/warning.js +0 -37
  222. package/examples/esm-bundler/node_modules/postcss/package.json +0 -88
  223. package/examples/esm-bundler/node_modules/rollup/LICENSE.md +0 -679
  224. package/examples/esm-bundler/node_modules/rollup/README.md +0 -134
  225. package/examples/esm-bundler/node_modules/rollup/dist/bin/rollup +0 -1912
  226. package/examples/esm-bundler/node_modules/rollup/dist/es/getLogFilter.js +0 -64
  227. package/examples/esm-bundler/node_modules/rollup/dist/es/package.json +0 -1
  228. package/examples/esm-bundler/node_modules/rollup/dist/es/parseAst.js +0 -12
  229. package/examples/esm-bundler/node_modules/rollup/dist/es/rollup.js +0 -17
  230. package/examples/esm-bundler/node_modules/rollup/dist/es/shared/node-entry.js +0 -24463
  231. package/examples/esm-bundler/node_modules/rollup/dist/es/shared/parseAst.js +0 -2124
  232. package/examples/esm-bundler/node_modules/rollup/dist/es/shared/watch.js +0 -9909
  233. package/examples/esm-bundler/node_modules/rollup/dist/getLogFilter.d.ts +0 -5
  234. package/examples/esm-bundler/node_modules/rollup/dist/getLogFilter.js +0 -69
  235. package/examples/esm-bundler/node_modules/rollup/dist/loadConfigFile.d.ts +0 -20
  236. package/examples/esm-bundler/node_modules/rollup/dist/loadConfigFile.js +0 -29
  237. package/examples/esm-bundler/node_modules/rollup/dist/native.js +0 -161
  238. package/examples/esm-bundler/node_modules/rollup/dist/parseAst.d.ts +0 -4
  239. package/examples/esm-bundler/node_modules/rollup/dist/parseAst.js +0 -22
  240. package/examples/esm-bundler/node_modules/rollup/dist/rollup.d.ts +0 -1225
  241. package/examples/esm-bundler/node_modules/rollup/dist/rollup.js +0 -127
  242. package/examples/esm-bundler/node_modules/rollup/dist/shared/fsevents-importer.js +0 -37
  243. package/examples/esm-bundler/node_modules/rollup/dist/shared/index.js +0 -9615
  244. package/examples/esm-bundler/node_modules/rollup/dist/shared/loadConfigFile.js +0 -572
  245. package/examples/esm-bundler/node_modules/rollup/dist/shared/parseAst.js +0 -2361
  246. package/examples/esm-bundler/node_modules/rollup/dist/shared/rollup.js +0 -24385
  247. package/examples/esm-bundler/node_modules/rollup/dist/shared/watch-cli.js +0 -542
  248. package/examples/esm-bundler/node_modules/rollup/dist/shared/watch.js +0 -324
  249. package/examples/esm-bundler/node_modules/rollup/package.json +0 -289
  250. package/examples/esm-bundler/node_modules/source-map-js/LICENSE +0 -28
  251. package/examples/esm-bundler/node_modules/source-map-js/README.md +0 -765
  252. package/examples/esm-bundler/node_modules/source-map-js/lib/array-set.js +0 -121
  253. package/examples/esm-bundler/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  254. package/examples/esm-bundler/node_modules/source-map-js/lib/base64.js +0 -67
  255. package/examples/esm-bundler/node_modules/source-map-js/lib/binary-search.js +0 -111
  256. package/examples/esm-bundler/node_modules/source-map-js/lib/mapping-list.js +0 -79
  257. package/examples/esm-bundler/node_modules/source-map-js/lib/quick-sort.js +0 -132
  258. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-consumer.d.ts +0 -1
  259. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  260. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-generator.d.ts +0 -1
  261. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  262. package/examples/esm-bundler/node_modules/source-map-js/lib/source-node.d.ts +0 -1
  263. package/examples/esm-bundler/node_modules/source-map-js/lib/source-node.js +0 -413
  264. package/examples/esm-bundler/node_modules/source-map-js/lib/util.js +0 -594
  265. package/examples/esm-bundler/node_modules/source-map-js/package.json +0 -71
  266. package/examples/esm-bundler/node_modules/source-map-js/source-map.d.ts +0 -104
  267. package/examples/esm-bundler/node_modules/source-map-js/source-map.js +0 -8
  268. package/examples/esm-bundler/node_modules/tinyglobby/LICENSE +0 -21
  269. package/examples/esm-bundler/node_modules/tinyglobby/README.md +0 -25
  270. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.cjs +0 -334
  271. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.d.cts +0 -148
  272. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.d.mts +0 -148
  273. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.mjs +0 -306
  274. package/examples/esm-bundler/node_modules/tinyglobby/package.json +0 -73
  275. package/examples/esm-bundler/node_modules/vite/LICENSE.md +0 -2406
  276. package/examples/esm-bundler/node_modules/vite/README.md +0 -20
  277. package/examples/esm-bundler/node_modules/vite/bin/openChrome.applescript +0 -95
  278. package/examples/esm-bundler/node_modules/vite/bin/vite.js +0 -79
  279. package/examples/esm-bundler/node_modules/vite/client.d.ts +0 -279
  280. package/examples/esm-bundler/node_modules/vite/dist/client/client.mjs +0 -1134
  281. package/examples/esm-bundler/node_modules/vite/dist/client/env.mjs +0 -24
  282. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-3RmXg9uo.js +0 -553
  283. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-4-IQbZQm.js +0 -822
  284. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-CvfTChi5.js +0 -8218
  285. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-Dq2t6Dq0.js +0 -49565
  286. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-lpEPC2f9.js +0 -7113
  287. package/examples/esm-bundler/node_modules/vite/dist/node/cli.js +0 -949
  288. package/examples/esm-bundler/node_modules/vite/dist/node/constants.js +0 -149
  289. package/examples/esm-bundler/node_modules/vite/dist/node/index.d.ts +0 -4227
  290. package/examples/esm-bundler/node_modules/vite/dist/node/index.js +0 -194
  291. package/examples/esm-bundler/node_modules/vite/dist/node/module-runner.d.ts +0 -290
  292. package/examples/esm-bundler/node_modules/vite/dist/node/module-runner.js +0 -1311
  293. package/examples/esm-bundler/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts +0 -87
  294. package/examples/esm-bundler/node_modules/vite/dist/node-cjs/publicUtils.cjs +0 -3987
  295. package/examples/esm-bundler/node_modules/vite/index.cjs +0 -96
  296. package/examples/esm-bundler/node_modules/vite/index.d.cts +0 -6
  297. package/examples/esm-bundler/node_modules/vite/misc/false.js +0 -1
  298. package/examples/esm-bundler/node_modules/vite/misc/true.js +0 -1
  299. package/examples/esm-bundler/node_modules/vite/package.json +0 -204
  300. package/examples/esm-bundler/node_modules/vite/types/customEvent.d.ts +0 -45
  301. package/examples/esm-bundler/node_modules/vite/types/hmrPayload.d.ts +0 -74
  302. package/examples/esm-bundler/node_modules/vite/types/hot.d.ts +0 -39
  303. package/examples/esm-bundler/node_modules/vite/types/import-meta.d.ts +0 -5
  304. package/examples/esm-bundler/node_modules/vite/types/importGlob.d.ts +0 -75
  305. package/examples/esm-bundler/node_modules/vite/types/importMeta.d.ts +0 -31
  306. package/examples/esm-bundler/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +0 -63
  307. package/examples/esm-bundler/node_modules/vite/types/internal/lightningcssOptions.d.ts +0 -18
  308. package/examples/esm-bundler/node_modules/vite/types/metadata.d.ts +0 -35
  309. package/examples/esm-bundler/node_modules/vite/types/package.json +0 -4
  310. package/examples/esm-bundler/package-lock.json +0 -1127
@@ -1,3 +0,0 @@
1
- # esbuild
2
-
3
- This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
@@ -1,20 +0,0 @@
1
- {
2
- "name": "@esbuild/darwin-arm64",
3
- "version": "0.25.12",
4
- "description": "The macOS ARM 64-bit binary for esbuild, a JavaScript bundler.",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/evanw/esbuild.git"
8
- },
9
- "license": "MIT",
10
- "preferUnplugged": true,
11
- "engines": {
12
- "node": ">=18"
13
- },
14
- "os": [
15
- "darwin"
16
- ],
17
- "cpu": [
18
- "arm64"
19
- ]
20
- }
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Joel Löf
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,91 +0,0 @@
1
- # @jadujoel/web-audio-clip-node
2
-
3
- Full-featured AudioWorklet-based audio clip player for the Web Audio API.
4
-
5
- ## Features
6
-
7
- - Playback rate control (-2x to 2x, including reverse)
8
- - Detune (-2400 to +2400 cents)
9
- - Gain (dB scale with equal-power curves)
10
- - Stereo pan
11
- - Highpass / lowpass filters
12
- - Loop with crossfade
13
- - Fade in / fade out
14
- - Streaming buffer support
15
- - Offset & duration control
16
- - React components & hooks (optional)
17
-
18
- ## Install
19
-
20
- ```sh
21
- npm install @jadujoel/web-audio-clip-node
22
- ```
23
-
24
- ## Quick Start (Core API)
25
-
26
- ```ts
27
- import { ClipNode, getProcessorBlobUrl } from "@jadujoel/web-audio-clip-node";
28
-
29
- const ctx = new AudioContext();
30
- await ctx.audioWorklet.addModule(getProcessorBlobUrl());
31
-
32
- const clip = new ClipNode(ctx, {
33
- processorOptions: { sampleRate: ctx.sampleRate },
34
- });
35
- clip.connect(ctx.destination);
36
-
37
- const response = await fetch("audio.mp3");
38
- const buffer = await ctx.decodeAudioData(await response.arrayBuffer());
39
- clip.buffer = buffer;
40
- clip.start();
41
- ```
42
-
43
- ## Quick Start (React)
44
-
45
- ```tsx
46
- import { useClipNode, useClipControls, TransportButtons, AudioControl } from "@jadujoel/web-audio-clip-node/react";
47
- import "@jadujoel/web-audio-clip-node/styles.css";
48
-
49
- function Player() {
50
- const controls = useClipControls();
51
- const clip = useClipNode({ ...controls });
52
- return (
53
- <>
54
- <TransportButtons />
55
- <AudioControl />
56
- </>
57
- );
58
- }
59
- ```
60
-
61
- ## CDN Usage (No Bundler)
62
-
63
- ```html
64
- <script type="module">
65
- const ctx = new AudioContext();
66
- await ctx.audioWorklet.addModule(
67
- "https://cdn.jsdelivr.net/npm/@jadujoel/web-audio-clip-node@0.1.0/dist/processor.js"
68
- );
69
- </script>
70
- ```
71
-
72
- ## Processor Loading Options
73
-
74
- | Method | Function | Use case |
75
- |--------|----------|----------|
76
- | Blob URL (default) | `getProcessorBlobUrl()` | Zero-config, works everywhere |
77
- | CDN | `getProcessorCdnUrl("0.1.0")` | No bundler / script-tag usage |
78
- | Self-hosted | `getProcessorModuleUrl(baseUrl)` | You serve `processor.js` yourself |
79
-
80
- ## Exports
81
-
82
- | Entry point | Import path | Contents |
83
- |-------------|-------------|----------|
84
- | Core | `@jadujoel/web-audio-clip-node` | `ClipNode`, types, utils, controls, processor kernel |
85
- | React | `@jadujoel/web-audio-clip-node/react` | Store, hooks, UI components |
86
- | Processor | `@jadujoel/web-audio-clip-node/processor` | Standalone worklet script |
87
- | Styles | `@jadujoel/web-audio-clip-node/styles.css` | CSS for React components |
88
-
89
- ## License
90
-
91
- MIT
@@ -1,86 +0,0 @@
1
- import type { ClipNodeState, ClipWorkletOptions, FrameData } from "./types";
2
- export declare class ClipNode extends AudioWorkletNode {
3
- onscheduled?: () => void;
4
- onstarted?: () => void;
5
- onpaused?: () => void;
6
- onresumed?: () => void;
7
- onended?: () => void;
8
- onlooped?: () => void;
9
- onstopped?: () => void;
10
- onframe?: (data: FrameData) => void;
11
- ondisposed?: () => void;
12
- onstatechange?: (state: ClipNodeState) => void;
13
- private _buffer?;
14
- private _loopStart;
15
- private _loopEnd;
16
- private _loop;
17
- private _offset;
18
- private _playhead;
19
- private _fadeIn;
20
- private _fadeOut;
21
- private _loopCrossfade;
22
- private _duration;
23
- private _previousState;
24
- private _bufferWriteCursor;
25
- timesLooped: number;
26
- state: ClipNodeState;
27
- cpu: number;
28
- constructor(context: BaseAudioContext, options?: ClipWorkletOptions);
29
- private handleMessage;
30
- private setState;
31
- toggleGain(value?: boolean): void;
32
- togglePlaybackRate(value?: boolean): void;
33
- toggleDetune(value?: boolean): void;
34
- togglePan(value?: boolean): void;
35
- toggleHighpass(value?: boolean): void;
36
- toggleLowpass(value?: boolean): void;
37
- toggleFadeIn(value?: boolean): void;
38
- toggleFadeOut(value?: boolean): void;
39
- toggleLoopCrossfade(value?: boolean): void;
40
- toggleLoopStart(value?: boolean): void;
41
- toggleLoopEnd(value?: boolean): void;
42
- logState(): void;
43
- get buffer(): AudioBuffer | undefined;
44
- set buffer(ab: AudioBuffer);
45
- initializeBuffer(totalLength: number, channels: number, options?: {
46
- streaming?: boolean;
47
- }): void;
48
- replaceBufferRange(startSample: number, channelData: Float32Array[], options?: {
49
- totalLength?: number | null;
50
- streamEnded?: boolean;
51
- }): void;
52
- appendBufferRange(channelData: Float32Array[], options?: {
53
- totalLength?: number | null;
54
- streamEnded?: boolean;
55
- }): void;
56
- finalizeBuffer(totalLength?: number): void;
57
- start(when?: number, offset?: number, duration?: number): void;
58
- stop(when?: number, initialDelay?: number): void;
59
- pause(when?: number): void;
60
- resume(when?: number): void;
61
- get loop(): boolean;
62
- set loop(value: boolean);
63
- get loopStart(): number;
64
- set loopStart(value: number);
65
- get loopEnd(): number;
66
- set loopEnd(value: number);
67
- get duration(): number;
68
- set duration(value: number);
69
- get offset(): number;
70
- set offset(value: number);
71
- get playhead(): number;
72
- set playhead(value: number);
73
- get playbackRate(): AudioParam;
74
- get detune(): AudioParam;
75
- get highpass(): AudioParam;
76
- get lowpass(): AudioParam;
77
- get gain(): AudioParam;
78
- get pan(): AudioParam;
79
- get fadeIn(): number;
80
- set fadeIn(value: number);
81
- get fadeOut(): number;
82
- set fadeOut(value: number);
83
- get loopCrossfade(): number;
84
- set loopCrossfade(value: number);
85
- dispose(): void;
86
- }
@@ -1,312 +0,0 @@
1
- import { audioBufferFromFloat32Array } from "./utils";
2
- export class ClipNode extends AudioWorkletNode {
3
- onscheduled;
4
- onstarted;
5
- onpaused;
6
- onresumed;
7
- onended;
8
- onlooped;
9
- onstopped;
10
- onframe;
11
- ondisposed;
12
- onstatechange;
13
- _buffer;
14
- _loopStart = 0;
15
- _loopEnd = 0;
16
- _loop = false;
17
- _offset = 0;
18
- _playhead = 0;
19
- _fadeIn = 0;
20
- _fadeOut = 0;
21
- _loopCrossfade = 0;
22
- _duration = -1;
23
- _previousState = "initial";
24
- _bufferWriteCursor = 0;
25
- timesLooped = 0;
26
- state = "initial";
27
- cpu = 0;
28
- constructor(context, options = {}) {
29
- super(context, "ClipProcessor", {
30
- numberOfInputs: options.numberOfInputs ?? 0,
31
- outputChannelCount: options.outputChannelCount ?? [2],
32
- processorOptions: options.processorOptions,
33
- channelCount: options.channelCount,
34
- channelCountMode: options.channelCountMode,
35
- channelInterpretation: options.channelInterpretation,
36
- numberOfOutputs: options.numberOfOutputs,
37
- parameterData: options.parameterData,
38
- });
39
- this._buffer = audioBufferFromFloat32Array(this.context, options.processorOptions?.buffer);
40
- this.port.onmessage = this.handleMessage;
41
- }
42
- handleMessage = (message) => {
43
- const { type, data } = message.data;
44
- switch (type) {
45
- case "frame": {
46
- const [_ct, _cf, ph, tt] = data;
47
- this._playhead = ph;
48
- this.cpu = tt;
49
- this.onframe?.(data);
50
- break;
51
- }
52
- case "scheduled":
53
- this.setState("scheduled");
54
- this.onscheduled?.();
55
- break;
56
- case "started":
57
- this.setState("started");
58
- this.onstarted?.();
59
- break;
60
- case "stopped":
61
- this.setState("stopped");
62
- this.onstopped?.();
63
- break;
64
- case "paused":
65
- this.setState("paused");
66
- this.onpaused?.();
67
- break;
68
- case "resume":
69
- this.setState("resumed");
70
- this.onresumed?.();
71
- break;
72
- case "ended":
73
- this.setState("ended");
74
- this.onended?.();
75
- break;
76
- case "looped":
77
- this.timesLooped++;
78
- this.onlooped?.();
79
- break;
80
- case "disposed":
81
- this.setState("disposed");
82
- break;
83
- }
84
- };
85
- setState(newState) {
86
- this._previousState = this.state;
87
- this.state = newState;
88
- if (this.state !== this._previousState) {
89
- this.onstatechange?.(this.state);
90
- }
91
- }
92
- toggleGain(value = true) {
93
- this.port.postMessage({ type: "toggleGain", data: value });
94
- }
95
- togglePlaybackRate(value = true) {
96
- this.port.postMessage({ type: "togglePlaybackRate", data: value });
97
- }
98
- toggleDetune(value = true) {
99
- this.port.postMessage({ type: "toggleDetune", data: value });
100
- }
101
- togglePan(value = true) {
102
- this.port.postMessage({ type: "togglePan", data: value });
103
- }
104
- toggleHighpass(value = true) {
105
- this.port.postMessage({ type: "toggleHighpass", data: value });
106
- }
107
- toggleLowpass(value = true) {
108
- this.port.postMessage({ type: "toggleLowpass", data: value });
109
- }
110
- toggleFadeIn(value = true) {
111
- this.port.postMessage({ type: "toggleFadeIn", data: value });
112
- }
113
- toggleFadeOut(value = true) {
114
- this.port.postMessage({ type: "toggleFadeOut", data: value });
115
- }
116
- toggleLoopCrossfade(value = true) {
117
- this.port.postMessage({ type: "toggleLoopCrossfade", data: value });
118
- }
119
- toggleLoopStart(value = true) {
120
- this.port.postMessage({ type: "toggleLoopStart", data: value });
121
- }
122
- toggleLoopEnd(value = true) {
123
- this.port.postMessage({ type: "toggleLoopEnd", data: value });
124
- }
125
- logState() {
126
- this.port.postMessage({ type: "logState" });
127
- }
128
- get buffer() {
129
- return this._buffer;
130
- }
131
- set buffer(ab) {
132
- this._buffer = ab;
133
- this._bufferWriteCursor = ab.length;
134
- if (this._loopStart >= ab.duration) {
135
- this._loopStart = 0;
136
- }
137
- if (this._loopEnd <= this._loopStart || this._loopEnd > ab.duration) {
138
- this._loopEnd = ab.duration;
139
- }
140
- const data = ab.numberOfChannels === 1
141
- ? [ab.getChannelData(0)]
142
- : [ab.getChannelData(0), ab.getChannelData(1)];
143
- this.port.postMessage({ type: "buffer", data });
144
- this.port.postMessage({ type: "loopStart", data: this._loopStart });
145
- this.port.postMessage({ type: "loopEnd", data: this._loopEnd });
146
- }
147
- initializeBuffer(totalLength, channels, options = {}) {
148
- this._buffer = this.context.createBuffer(channels, totalLength, this.context.sampleRate);
149
- this._bufferWriteCursor = 0;
150
- const duration = totalLength / this.context.sampleRate;
151
- if (this._loopStart >= duration) {
152
- this._loopStart = 0;
153
- }
154
- if (this._loopEnd <= this._loopStart || this._loopEnd > duration) {
155
- this._loopEnd = duration;
156
- }
157
- this.port.postMessage({
158
- type: "bufferInit",
159
- data: {
160
- channels,
161
- totalLength,
162
- streaming: options.streaming ?? true,
163
- },
164
- });
165
- this.port.postMessage({ type: "loopStart", data: this._loopStart });
166
- this.port.postMessage({ type: "loopEnd", data: this._loopEnd });
167
- }
168
- replaceBufferRange(startSample, channelData, options = {}) {
169
- this.port.postMessage({
170
- type: "bufferRange",
171
- data: {
172
- startSample,
173
- channelData,
174
- totalLength: options.totalLength,
175
- streamEnded: options.streamEnded,
176
- },
177
- });
178
- this._bufferWriteCursor = Math.max(this._bufferWriteCursor, startSample + (channelData[0]?.length ?? 0));
179
- }
180
- appendBufferRange(channelData, options = {}) {
181
- this.replaceBufferRange(this._bufferWriteCursor, channelData, options);
182
- }
183
- finalizeBuffer(totalLength) {
184
- this.port.postMessage({ type: "bufferEnd", data: { totalLength } });
185
- }
186
- start(when, offset, duration) {
187
- if (!this._buffer) {
188
- console.error("Buffer not set.");
189
- return;
190
- }
191
- this.port.postMessage({ type: "start", data: { when, offset, duration } });
192
- }
193
- stop(when = this.context.currentTime, initialDelay = 0) {
194
- this.port.postMessage({
195
- type: "stop",
196
- data: when + initialDelay + this._fadeOut + 0.2,
197
- });
198
- }
199
- pause(when = this.context.currentTime) {
200
- this.port.postMessage({ type: "pause", data: when });
201
- }
202
- resume(when = this.context.currentTime) {
203
- this.port.postMessage({ type: "resume", data: when });
204
- }
205
- get loop() {
206
- return this._loop;
207
- }
208
- set loop(value) {
209
- if (this._loop !== value) {
210
- this._loop = value;
211
- this.port.postMessage({ type: "loop", data: value });
212
- }
213
- }
214
- get loopStart() {
215
- return this._loopStart;
216
- }
217
- set loopStart(value) {
218
- if (value !== this._loopStart) {
219
- this._loopStart = value;
220
- this.port.postMessage({ type: "loopStart", data: value });
221
- }
222
- }
223
- get loopEnd() {
224
- return this._loopEnd;
225
- }
226
- set loopEnd(value) {
227
- if (value !== this._loopEnd) {
228
- this._loopEnd = value;
229
- this.port.postMessage({ type: "loopEnd", data: value });
230
- }
231
- }
232
- get duration() {
233
- return this._duration ?? this._buffer?.duration ?? -1;
234
- }
235
- set duration(value) {
236
- this._duration = value;
237
- }
238
- get offset() {
239
- return this._offset;
240
- }
241
- set offset(value) {
242
- this._offset = value;
243
- }
244
- get playhead() {
245
- return this._playhead;
246
- }
247
- set playhead(value) {
248
- this.port.postMessage({ type: "playhead", data: value });
249
- }
250
- get playbackRate() {
251
- // biome-ignore lint/style/noNonNullAssertion: it is definitely set in the processor
252
- return this.parameters.get("playbackRate");
253
- }
254
- get detune() {
255
- // biome-ignore lint/style/noNonNullAssertion: it is definitely set in the processor
256
- return this.parameters.get("detune");
257
- }
258
- get highpass() {
259
- // biome-ignore lint/style/noNonNullAssertion: it is definitely set in the processor
260
- return this.parameters.get("highpass");
261
- }
262
- get lowpass() {
263
- // biome-ignore lint/style/noNonNullAssertion: it is definitely set in the processor
264
- return this.parameters.get("lowpass");
265
- }
266
- get gain() {
267
- // biome-ignore lint/style/noNonNullAssertion: it is definitely set in the processor
268
- return this.parameters.get("gain");
269
- }
270
- get pan() {
271
- // biome-ignore lint/style/noNonNullAssertion: it is definitely set in the processor
272
- return this.parameters.get("pan");
273
- }
274
- get fadeIn() {
275
- return this._fadeIn;
276
- }
277
- set fadeIn(value) {
278
- this._fadeIn = value;
279
- this.port.postMessage({ type: "fadeIn", data: value });
280
- }
281
- get fadeOut() {
282
- return this._fadeOut;
283
- }
284
- set fadeOut(value) {
285
- this._fadeOut = value;
286
- this.port.postMessage({ type: "fadeOut", data: value });
287
- }
288
- get loopCrossfade() {
289
- return this._loopCrossfade;
290
- }
291
- set loopCrossfade(value) {
292
- this._loopCrossfade = value;
293
- this.port.postMessage({ type: "loopCrossfade", data: value });
294
- }
295
- dispose() {
296
- this.port.postMessage({ type: "dispose" });
297
- this.port.close();
298
- this.ondisposed?.();
299
- this._buffer = undefined;
300
- this.onended = undefined;
301
- this.onframe = undefined;
302
- this.onlooped = undefined;
303
- this.onpaused = undefined;
304
- this.onresumed = undefined;
305
- this.onstarted = undefined;
306
- this.onstopped = undefined;
307
- this.onscheduled = undefined;
308
- this.onstatechange = undefined;
309
- this.ondisposed = undefined;
310
- this.state = "disposed";
311
- }
312
- }
@@ -1 +0,0 @@
1
- export declare const processorCode = "var z={Initial:0,Started:1,Stopped:2,Paused:3,Scheduled:4,Ended:5,Disposed:6};var y=128;function i(V=[]){let A=V[0]?.length??0,F=A>0;return{totalLength:F?A:null,committedLength:F?A:0,streamEnded:F,streaming:!1,writtenSpans:F?[{startSample:0,endSample:A}]:[],pendingWrites:[],lowWaterThreshold:y*4,lowWaterNotified:!1,lastUnderrunSample:null}}function M0(V){return V[0]?.length??0}function o(V){return V.streamBuffer.totalLength??M0(V.buffer)}function G0(V,A){return Array.from({length:V},()=>new Float32Array(A))}function E0(V,A){let F=[...V,A].sort((Q,J)=>Q.startSample-J.startSample),T=[];for(let Q of F){let J=T[T.length-1];if(!J||Q.startSample>J.endSample){T.push({...Q});continue}J.endSample=Math.max(J.endSample,Q.endSample)}return T}function I0(V){let A=0;for(let F of V){if(F.startSample>A)break;A=Math.max(A,F.endSample)}return A}function w0(V,A){if(V.committedLength-Math.floor(A)>=V.lowWaterThreshold)V.lowWaterNotified=!1}function R0(V,A,F){let T=M0(V.buffer),Q=V.buffer.length;if(T>=F&&Q>=A)return;let J=Math.max(T,F),U=Math.max(Q,A),Y=G0(U,J);for(let X=0;X<Q;X++)Y[X].set(V.buffer[X].subarray(0,T));if(V.buffer=Y,V.streamBuffer.totalLength==null||V.streamBuffer.totalLength<J)V.streamBuffer.totalLength=J}function B0(V,A){let F=Math.max(Math.floor(A.startSample),0),T=A.channelData[0]?.length??0,Q=A.totalLength??null,J=Math.max(F+T,Q??0);R0(V,Math.max(A.channelData.length,V.buffer.length,1),J);for(let U=0;U<A.channelData.length;U++)V.buffer[U].set(A.channelData[U],F);if(Q!=null)V.streamBuffer.totalLength=Q;if(T>0)V.streamBuffer.writtenSpans=E0(V.streamBuffer.writtenSpans,{startSample:F,endSample:F+T}),V.streamBuffer.committedLength=I0(V.streamBuffer.writtenSpans);if(A.streamEnded===!0)V.streamBuffer.streamEnded=!0;w0(V.streamBuffer,V.playhead)}function _0(V){if(V.streamBuffer.pendingWrites.length===0)return;for(let A of V.streamBuffer.pendingWrites)B0(V,A);V.streamBuffer.pendingWrites=[]}function y0(V,A){V.buffer=A,V.streamBuffer=i(A)}function v0(V={},A){let{buffer:F=[],streamBuffer:T=i(F),duration:Q=-1,loop:J=!1,loopStart:U=0,loopEnd:Y=(F[0]?.length??0)/A,loopCrossfade:X=0,playhead:k=0,offset:H=0,startWhen:$=0,stopWhen:j=0,pauseWhen:P=0,resumeWhen:C=0,playedSamples:N=0,state:K=z.Initial,timesLooped:w=0,fadeInDuration:v=0,fadeOutDuration:Z=0,enableFadeIn:E=v>0,enableFadeOut:O=Z>0,enableLoopStart:R=!0,enableLoopEnd:h=!0,enableLoopCrossfade:b=X>0,enableHighpass:c=!0,enableLowpass:g=!0,enableGain:s=!0,enablePan:r=!0,enableDetune:t=!0,enablePlaybackRate:p=!0}=V;return{buffer:F,streamBuffer:T,loop:J,loopStart:U,loopEnd:Y,loopCrossfade:X,duration:Q,playhead:k,offset:H,startWhen:$,stopWhen:j,pauseWhen:P,resumeWhen:C,playedSamples:N,state:K,timesLooped:w,fadeInDuration:v,fadeOutDuration:Z,enableFadeIn:E,enableFadeOut:O,enableLoopStart:R,enableLoopEnd:h,enableHighpass:c,enableLowpass:g,enableGain:s,enablePan:r,enableDetune:t,enablePlaybackRate:p,enableLoopCrossfade:b}}function b0(V,A){return o(V)/A}function n(V,A){let F=b0(V,A);if(F<=0){V.loopStart=0,V.loopEnd=0;return}if(!Number.isFinite(V.loopStart)||V.loopStart<0)V.loopStart=0;if(V.loopStart>=F)V.loopStart=0;if(!Number.isFinite(V.loopEnd)||V.loopEnd<=V.loopStart||V.loopEnd>F)V.loopEnd=F}function e(V,A,F){if(A===void 0)return V.offset=0,0;if(A<0)return e(V,o(V)+A,F);if(A>(o(V)||1)-1)return e(V,o(V)%A,F);let T=Math.floor(A*F);return V.offset=T,T}function L0(V){let{playhead:A,bufferLength:F,loop:T,loopStartSamples:Q,loopEndSamples:J}=V,U=128;if(!T&&A+128>F)U=Math.max(F-A,0);let Y=Array(U);if(!T){for(let $=0,j=A;$<U;$++,j++)Y[$]=j;let H=A+U;return{playhead:H,indexes:Y,looped:!1,ended:H>=F}}let X=A,k=!1;for(let H=0;H<U;H++,X++){if(X>=J)X=Q+(X-J),k=!0;Y[H]=X}return{indexes:Y,looped:k,ended:!1,playhead:X}}function x0(V){let{playhead:A,bufferLength:F,loop:T,loopStartSamples:Q,loopEndSamples:J,playbackRates:U}=V,Y=128;if(!T&&A+128>F)Y=Math.max(F-A,0);let X=Array(Y),k=A,H=!1;if(T){for(let $=0;$<Y;$++){X[$]=Math.min(Math.max(Math.floor(k),0),F-1);let j=U[$]??U[0]??1;if(k+=j,j>=0&&(k>J||k>F))k=Q,H=!0;else if(j<0&&(k<Q||k<0))k=J,H=!0}return{playhead:k,indexes:X,looped:H,ended:!1}}for(let $=0;$<Y;$++)X[$]=Math.min(Math.max(Math.floor(k),0),F-1),k+=U[$]??U[0]??1;return{playhead:k,indexes:X,looped:!1,ended:k>=F||k<0}}function m0(V,A,F){for(let T=0;T<F.length;T++)for(let Q=0;Q<V.length;Q++)V[Q][T]=A[Q][F[T]];for(let T=F.length;T<V[0].length;T++)for(let Q=0;Q<V.length;Q++)V[Q][T]=0}function d(V){for(let A=0;A<V.length;A++)for(let F=0;F<V[A].length;F++)V[A][F]=0}function S0(V){let A=new Float32Array(V[0].length);for(let F=0;F<V[0].length;F++)A[F]=V[0][F];V.push(A)}function H0(V,A){for(let F=A.length;F<V.length;F++)A[F]=new Float32Array(V[F].length);for(let F=0;F<V.length;F++)for(let T=0;T<V[F].length;T++)A[F][T]=V[F][T]}function c0(V){let A=0;for(let F=0;F<V.length;F++)for(let T=0;T<V[F].length;T++)if(Number.isNaN(V[F][T]))A++,V[F][T]=0;return A}function V0(){return[{x_1:0,x_2:0,y_1:0,y_2:0},{x_1:0,x_2:0,y_1:0,y_2:0}]}function g0(V,A){if(A.length===1){let T=A[0];if(T===1)return;for(let Q of V)for(let J=0;J<Q.length;J++)Q[J]*=T;return}let F=A[0];for(let T of V)for(let Q=0;Q<T.length;Q++)F=A[Q]??F,T[Q]*=F}function d0(V,A){let F=A[0];for(let T=0;T<V[0].length;T++){F=A[T]??F;let Q=F<=0?1:1-F,J=F>=0?1:1+F;V[0][T]*=Q,V[1][T]*=J}}function h0(V,A,F,T){for(let Q=0;Q<V.length;Q++){let J=V[Q],{x_1:U,x_2:Y,y_1:X,y_2:k}=T[Q]??{x_1:0,x_2:0,y_1:0,y_2:0};if(A.length===1){let H=A[0];if(H>=20000)return;let $=2*Math.PI*H/F,j=Math.sin($)/2,P=(1-Math.cos($))/2,C=1-Math.cos($),N=(1-Math.cos($))/2,K=1+j,w=-2*Math.cos($),v=1-j,Z=P/K,E=C/K,O=N/K,R=w/K,h=v/K;for(let b=0;b<J.length;b++){let c=J[b],g=Z*c+E*U+O*Y-R*X-h*k;Y=U,U=c,k=X,X=g,J[b]=g}}else{let H=A[0];for(let $=0;$<J.length;$++){let j=A[$]??H,P=2*Math.PI*j/F,C=Math.sin(P)/2,N=(1-Math.cos(P))/2,K=1-Math.cos(P),w=(1-Math.cos(P))/2,v=1+C,Z=-2*Math.cos(P),E=1-C,O=J[$],R=N/v*O+K/v*U+w/v*Y-Z/v*X-E/v*k;Y=U,U=O,k=X,X=R,J[$]=R}}T[Q]={x_1:U,x_2:Y,y_1:X,y_2:k}}}function l0(V,A,F,T){for(let Q=0;Q<V.length;Q++){let J=V[Q],{x_1:U,x_2:Y,y_1:X,y_2:k}=T[Q]??{x_1:0,x_2:0,y_1:0,y_2:0};if(A.length===1){let H=A[0];if(H<=20)return;let $=2*Math.PI*H/F,j=Math.sin($)/2,P=(1+Math.cos($))/2,C=-(1+Math.cos($)),N=(1+Math.cos($))/2,K=1+j,w=-2*Math.cos($),v=1-j;for(let Z=0;Z<J.length;Z++){let E=J[Z],O=P/K*E+C/K*U+N/K*Y-w/K*X-v/K*k;Y=U,U=E,k=X,X=O,J[Z]=O}}else{let H=A[0];for(let $=0;$<J.length;$++){let j=A[$]??H,P=2*Math.PI*j/F,C=Math.sin(P)/2,N=(1+Math.cos(P))/2,K=-(1+Math.cos(P)),w=(1+Math.cos(P))/2,v=1+C,Z=-2*Math.cos(P),E=1-C,O=J[$],R=N/v*O+K/v*U+w/v*Y-Z/v*X-E/v*k;Y=U,U=O,k=X,X=R,J[$]=R}}T[Q]={x_1:U,x_2:Y,y_1:X,y_2:k}}}function z0(V,A,F,T){let{type:Q,data:J}=A;switch(Q){case\"buffer\":return y0(V,J),n(V,T),[];case\"bufferInit\":{let U=J;return V.buffer=G0(U.channels,U.totalLength),V.streamBuffer={...i(),totalLength:U.totalLength,streamEnded:!1,streaming:U.streaming??!0},n(V,T),[]}case\"bufferRange\":return V.streamBuffer.pendingWrites.push(J),[];case\"bufferEnd\":{let U=J;if(U?.totalLength!=null)V.streamBuffer.totalLength=U.totalLength;return V.streamBuffer.streamEnded=!0,[]}case\"bufferReset\":return V.buffer=[],V.streamBuffer=i(),n(V,T),[];case\"start\":V.timesLooped=0;{let U=J;if(V.duration=U?.duration??-1,V.duration===-1)V.duration=V.loop?Number.MAX_SAFE_INTEGER:(V.buffer[0]?.length??0)/T;e(V,U?.offset,T),n(V,T),V.playhead=V.offset,V.startWhen=U?.when??F,V.stopWhen=V.startWhen+V.duration,V.playedSamples=0,V.state=z.Scheduled}return[{type:\"scheduled\"}];case\"stop\":if(V.state===z.Ended||V.state===z.Initial)return[];return V.stopWhen=J??V.stopWhen,V.state=z.Stopped,[{type:\"stopped\"}];case\"pause\":return V.state=z.Paused,V.pauseWhen=J??F,[{type:\"paused\"}];case\"resume\":return V.state=z.Started,V.startWhen=J??F,[{type:\"resume\"}];case\"dispose\":return V.state=z.Disposed,V.buffer=[],V.streamBuffer=i(),[{type:\"disposed\"}];case\"loop\":{let U=J,Y=V.state;if(U&&(Y===z.Scheduled||Y===z.Started))V.stopWhen=Number.MAX_SAFE_INTEGER,V.duration=Number.MAX_SAFE_INTEGER;if(V.loop=U,U)n(V,T);return[]}case\"loopStart\":return V.loopStart=J,[];case\"loopEnd\":return V.loopEnd=J,[];case\"loopCrossfade\":return V.loopCrossfade=J,[];case\"playhead\":return V.playhead=Math.floor(J),[];case\"fadeIn\":return V.fadeInDuration=J,[];case\"fadeOut\":return V.fadeOutDuration=J,[];case\"toggleGain\":return V.enableGain=J??!V.enableGain,[];case\"togglePan\":return V.enablePan=J??!V.enablePan,[];case\"toggleLowpass\":return V.enableLowpass=J??!V.enableLowpass,[];case\"toggleHighpass\":return V.enableHighpass=J??!V.enableHighpass,[];case\"toggleDetune\":return V.enableDetune=J??!V.enableDetune,[];case\"togglePlaybackRate\":return V.enablePlaybackRate=J??!V.enablePlaybackRate,[];case\"toggleFadeIn\":return V.enableFadeIn=J??!V.enableFadeIn,[];case\"toggleFadeOut\":return V.enableFadeOut=J??!V.enableFadeOut,[];case\"toggleLoopStart\":return V.enableLoopStart=J??!V.enableLoopStart,[];case\"toggleLoopEnd\":return V.enableLoopEnd=J??!V.enableLoopEnd,[];case\"toggleLoopCrossfade\":return V.enableLoopCrossfade=J??!V.enableLoopCrossfade,[];case\"logState\":return[]}return[]}function j0(V,A,F,T,Q){let J=[],U=V.state;if(U===z.Disposed)return{keepAlive:!1,messages:J};if(_0(V),U===z.Initial)return{keepAlive:!0,messages:J};if(U===z.Ended)return d(A[0]),{keepAlive:!0,messages:J};if(U===z.Scheduled)if(T.currentTime>=V.startWhen)U=V.state=z.Started,J.push({type:\"started\"});else return d(A[0]),{keepAlive:!0,messages:J};else if(U===z.Paused){if(T.currentTime>V.pauseWhen)return d(A[0]),{keepAlive:!0,messages:J}}if(T.currentTime>V.stopWhen)return d(A[0]),V.state=z.Ended,J.push({type:\"ended\"}),V.playedSamples=0,{keepAlive:!0,messages:J};let Y=A[0],X=o(V);if(X===0)return d(Y),{keepAlive:!0,messages:J};let{playbackRate:k,detune:H,lowpass:$,highpass:j,gain:P,pan:C}=F,{buffer:N,loopStart:K,loopEnd:w,loopCrossfade:v,stopWhen:Z,playedSamples:E,enableLowpass:O,enableHighpass:R,enableGain:h,enablePan:b,enableDetune:c,enableFadeOut:g,enableFadeIn:s,enableLoopStart:r,enableLoopEnd:t,enableLoopCrossfade:p,playhead:D,fadeInDuration:A0,fadeOutDuration:F0}=V,K0=V.streamBuffer.streaming&&V.streamBuffer.committedLength<X,T0=V.loop&&!K0,l=Math.min(N.length,Y.length),W0=V.duration*T.sampleRate,Z0=Math.floor(T.sampleRate*v),q0=Math.max(X-y,0),L=r?Math.min(Math.floor(K*T.sampleRate),q0):0,x=t?Math.min(Math.floor(w*T.sampleRate),X):X,N0=x-L,J0=c&&H.length>0&&H[0]!==0,u=k;if(J0){let M=Math.max(k.length,H.length,y);u=new Float32Array(M);for(let W=0;W<M;W++){let I=k[W]??k[k.length-1],G=H[W]??H[H.length-1];u[W]=I*2**(G/1200)}}let Q0=V.enablePlaybackRate||J0,O0=Q0&&u.length>0&&u.every((M)=>M===0);if(V.streamBuffer.streaming&&!V.streamBuffer.streamEnded&&!V.streamBuffer.lowWaterNotified&&V.streamBuffer.committedLength-Math.floor(D)<V.streamBuffer.lowWaterThreshold)J.push({type:\"bufferLowWater\",data:{playhead:Math.floor(D),committedLength:V.streamBuffer.committedLength}}),V.streamBuffer.lowWaterNotified=!0;if(O0){d(Y);for(let M=1;M<A.length;M++)H0(Y,A[M]);return{keepAlive:!0,messages:J}}let U0={bufferLength:X,loop:T0,playhead:D,loopStartSamples:L,loopEndSamples:x,durationSamples:W0,playbackRates:u},{indexes:a,ended:X0,looped:Y0,playhead:$0}=Q0?x0(U0):L0(U0),f=a.find((M)=>M>=V.streamBuffer.committedLength&&M<X);if(f!==void 0&&!V.streamBuffer.streamEnded&&V.streamBuffer.lastUnderrunSample!==f)J.push({type:\"bufferUnderrun\",data:{playhead:Math.floor(D),committedLength:V.streamBuffer.committedLength,requestedSample:f}}),V.streamBuffer.lastUnderrunSample=f;else if(f===void 0)V.streamBuffer.lastUnderrunSample=null;m0(Y,N,a);let m=Math.min(Math.floor(v*T.sampleRate),N0),D0=T0&&D>L&&D<x,C0=p&&Z0>0&&X>y;if(D0&&C0){{let M=L+m;if(m>0&&D>L&&D<M){let W=D-L,I=Math.min(Math.floor(M-D),y);for(let G=0;G<I;G++){let B=(W+G)/m,S=Math.cos(Math.PI*B/2),q=Math.floor(x-m+W+G);if(q>=0&&q<X)for(let _=0;_<l;_++)Y[_][G]+=N[_][q]*S}}}{let M=x-m;if(m>0&&D>M&&D<x){let W=D-M,I=Math.min(Math.floor(x-D),y);for(let G=0;G<I;G++){let B=(W+G)/m,S=Math.sin(Math.PI*B/2),q=Math.floor(L+W+G);if(q>=0&&q<X)for(let _=0;_<l;_++)Y[_][G]+=N[_][q]*S}}}}if(s&&A0>0){let M=Math.floor(A0*T.sampleRate),W=M-E;if(W>0){let I=Math.min(W,y);for(let G=0;G<I;G++){let B=(E+G)/M,S=B*B*B;for(let q=0;q<l;q++)Y[q][G]*=S}}}if(g&&F0>0){let M=Math.floor(F0*T.sampleRate),W=Math.floor(T.sampleRate*(Z-T.currentTime));if(W<M+y)for(let I=0;I<y;I++){let G=W-I;if(G>=M)continue;let B=G<=0?0:G/M,S=B*B*B;for(let q=0;q<l;q++)Y[q][I]*=S}}if(O)h0(Y,$,T.sampleRate,Q.lowpass);if(R)l0(Y,j,T.sampleRate,Q.highpass);if(h)g0(Y,P);if(l===1)S0(Y);if(b)d0(Y,C);if(Y0)V.timesLooped++,J.push({type:\"looped\",data:V.timesLooped});if(X0)V.state=z.Ended,J.push({type:\"ended\"});V.playedSamples+=a.length,V.playhead=$0;let k0=c0(Y);if(k0>0)return console.log({numNans:k0,indexes:a,playhead:$0,ended:X0,looped:Y0,sourceLength:X}),{keepAlive:!0,messages:J};for(let M=1;M<A.length;M++)H0(Y,A[M]);return{keepAlive:!0,messages:J}}class P0 extends AudioWorkletProcessor{static get parameterDescriptors(){return[{name:\"playbackRate\",automationRate:\"a-rate\",defaultValue:1},{name:\"detune\",automationRate:\"a-rate\",defaultValue:0},{name:\"gain\",automationRate:\"a-rate\",defaultValue:1,minValue:0},{name:\"pan\",automationRate:\"a-rate\",defaultValue:0},{name:\"highpass\",automationRate:\"a-rate\",defaultValue:20,minValue:20,maxValue:20000},{name:\"lowpass\",automationRate:\"a-rate\",defaultValue:20000,minValue:20,maxValue:20000}]}properties;filterState={lowpass:V0(),highpass:V0()};lastFrameTime=0;constructor(V){super(V);this.properties=v0(V?.processorOptions,sampleRate),this.port.onmessage=(A)=>{let F=z0(this.properties,A.data,currentTime,sampleRate);for(let T of F)this.port.postMessage(T);if(this.properties.state===z.Disposed)this.port.close()}}process(V,A,F){try{let T=j0(this.properties,A,F,{currentTime,currentFrame,sampleRate},this.filterState);for(let J of T.messages)this.port.postMessage(J);let Q=currentTime-this.lastFrameTime;return this.lastFrameTime=currentTime,this.port.postMessage({type:\"frame\",data:[currentTime,currentFrame,Math.floor(this.properties.playhead),Q*1000]}),T.keepAlive}catch(T){return console.log(T),!0}}}registerProcessor(\"ClipProcessor\",P0);\n\n//# debugId=5101232AAE128B1064756E2164756E21\n//# sourceMappingURL=processor.js.map\n";
@@ -1,2 +0,0 @@
1
- // AUTO-GENERATED — do not edit. Run 'bun run build:lib' to regenerate.
2
- export const processorCode = "var z={Initial:0,Started:1,Stopped:2,Paused:3,Scheduled:4,Ended:5,Disposed:6};var y=128;function i(V=[]){let A=V[0]?.length??0,F=A>0;return{totalLength:F?A:null,committedLength:F?A:0,streamEnded:F,streaming:!1,writtenSpans:F?[{startSample:0,endSample:A}]:[],pendingWrites:[],lowWaterThreshold:y*4,lowWaterNotified:!1,lastUnderrunSample:null}}function M0(V){return V[0]?.length??0}function o(V){return V.streamBuffer.totalLength??M0(V.buffer)}function G0(V,A){return Array.from({length:V},()=>new Float32Array(A))}function E0(V,A){let F=[...V,A].sort((Q,J)=>Q.startSample-J.startSample),T=[];for(let Q of F){let J=T[T.length-1];if(!J||Q.startSample>J.endSample){T.push({...Q});continue}J.endSample=Math.max(J.endSample,Q.endSample)}return T}function I0(V){let A=0;for(let F of V){if(F.startSample>A)break;A=Math.max(A,F.endSample)}return A}function w0(V,A){if(V.committedLength-Math.floor(A)>=V.lowWaterThreshold)V.lowWaterNotified=!1}function R0(V,A,F){let T=M0(V.buffer),Q=V.buffer.length;if(T>=F&&Q>=A)return;let J=Math.max(T,F),U=Math.max(Q,A),Y=G0(U,J);for(let X=0;X<Q;X++)Y[X].set(V.buffer[X].subarray(0,T));if(V.buffer=Y,V.streamBuffer.totalLength==null||V.streamBuffer.totalLength<J)V.streamBuffer.totalLength=J}function B0(V,A){let F=Math.max(Math.floor(A.startSample),0),T=A.channelData[0]?.length??0,Q=A.totalLength??null,J=Math.max(F+T,Q??0);R0(V,Math.max(A.channelData.length,V.buffer.length,1),J);for(let U=0;U<A.channelData.length;U++)V.buffer[U].set(A.channelData[U],F);if(Q!=null)V.streamBuffer.totalLength=Q;if(T>0)V.streamBuffer.writtenSpans=E0(V.streamBuffer.writtenSpans,{startSample:F,endSample:F+T}),V.streamBuffer.committedLength=I0(V.streamBuffer.writtenSpans);if(A.streamEnded===!0)V.streamBuffer.streamEnded=!0;w0(V.streamBuffer,V.playhead)}function _0(V){if(V.streamBuffer.pendingWrites.length===0)return;for(let A of V.streamBuffer.pendingWrites)B0(V,A);V.streamBuffer.pendingWrites=[]}function y0(V,A){V.buffer=A,V.streamBuffer=i(A)}function v0(V={},A){let{buffer:F=[],streamBuffer:T=i(F),duration:Q=-1,loop:J=!1,loopStart:U=0,loopEnd:Y=(F[0]?.length??0)/A,loopCrossfade:X=0,playhead:k=0,offset:H=0,startWhen:$=0,stopWhen:j=0,pauseWhen:P=0,resumeWhen:C=0,playedSamples:N=0,state:K=z.Initial,timesLooped:w=0,fadeInDuration:v=0,fadeOutDuration:Z=0,enableFadeIn:E=v>0,enableFadeOut:O=Z>0,enableLoopStart:R=!0,enableLoopEnd:h=!0,enableLoopCrossfade:b=X>0,enableHighpass:c=!0,enableLowpass:g=!0,enableGain:s=!0,enablePan:r=!0,enableDetune:t=!0,enablePlaybackRate:p=!0}=V;return{buffer:F,streamBuffer:T,loop:J,loopStart:U,loopEnd:Y,loopCrossfade:X,duration:Q,playhead:k,offset:H,startWhen:$,stopWhen:j,pauseWhen:P,resumeWhen:C,playedSamples:N,state:K,timesLooped:w,fadeInDuration:v,fadeOutDuration:Z,enableFadeIn:E,enableFadeOut:O,enableLoopStart:R,enableLoopEnd:h,enableHighpass:c,enableLowpass:g,enableGain:s,enablePan:r,enableDetune:t,enablePlaybackRate:p,enableLoopCrossfade:b}}function b0(V,A){return o(V)/A}function n(V,A){let F=b0(V,A);if(F<=0){V.loopStart=0,V.loopEnd=0;return}if(!Number.isFinite(V.loopStart)||V.loopStart<0)V.loopStart=0;if(V.loopStart>=F)V.loopStart=0;if(!Number.isFinite(V.loopEnd)||V.loopEnd<=V.loopStart||V.loopEnd>F)V.loopEnd=F}function e(V,A,F){if(A===void 0)return V.offset=0,0;if(A<0)return e(V,o(V)+A,F);if(A>(o(V)||1)-1)return e(V,o(V)%A,F);let T=Math.floor(A*F);return V.offset=T,T}function L0(V){let{playhead:A,bufferLength:F,loop:T,loopStartSamples:Q,loopEndSamples:J}=V,U=128;if(!T&&A+128>F)U=Math.max(F-A,0);let Y=Array(U);if(!T){for(let $=0,j=A;$<U;$++,j++)Y[$]=j;let H=A+U;return{playhead:H,indexes:Y,looped:!1,ended:H>=F}}let X=A,k=!1;for(let H=0;H<U;H++,X++){if(X>=J)X=Q+(X-J),k=!0;Y[H]=X}return{indexes:Y,looped:k,ended:!1,playhead:X}}function x0(V){let{playhead:A,bufferLength:F,loop:T,loopStartSamples:Q,loopEndSamples:J,playbackRates:U}=V,Y=128;if(!T&&A+128>F)Y=Math.max(F-A,0);let X=Array(Y),k=A,H=!1;if(T){for(let $=0;$<Y;$++){X[$]=Math.min(Math.max(Math.floor(k),0),F-1);let j=U[$]??U[0]??1;if(k+=j,j>=0&&(k>J||k>F))k=Q,H=!0;else if(j<0&&(k<Q||k<0))k=J,H=!0}return{playhead:k,indexes:X,looped:H,ended:!1}}for(let $=0;$<Y;$++)X[$]=Math.min(Math.max(Math.floor(k),0),F-1),k+=U[$]??U[0]??1;return{playhead:k,indexes:X,looped:!1,ended:k>=F||k<0}}function m0(V,A,F){for(let T=0;T<F.length;T++)for(let Q=0;Q<V.length;Q++)V[Q][T]=A[Q][F[T]];for(let T=F.length;T<V[0].length;T++)for(let Q=0;Q<V.length;Q++)V[Q][T]=0}function d(V){for(let A=0;A<V.length;A++)for(let F=0;F<V[A].length;F++)V[A][F]=0}function S0(V){let A=new Float32Array(V[0].length);for(let F=0;F<V[0].length;F++)A[F]=V[0][F];V.push(A)}function H0(V,A){for(let F=A.length;F<V.length;F++)A[F]=new Float32Array(V[F].length);for(let F=0;F<V.length;F++)for(let T=0;T<V[F].length;T++)A[F][T]=V[F][T]}function c0(V){let A=0;for(let F=0;F<V.length;F++)for(let T=0;T<V[F].length;T++)if(Number.isNaN(V[F][T]))A++,V[F][T]=0;return A}function V0(){return[{x_1:0,x_2:0,y_1:0,y_2:0},{x_1:0,x_2:0,y_1:0,y_2:0}]}function g0(V,A){if(A.length===1){let T=A[0];if(T===1)return;for(let Q of V)for(let J=0;J<Q.length;J++)Q[J]*=T;return}let F=A[0];for(let T of V)for(let Q=0;Q<T.length;Q++)F=A[Q]??F,T[Q]*=F}function d0(V,A){let F=A[0];for(let T=0;T<V[0].length;T++){F=A[T]??F;let Q=F<=0?1:1-F,J=F>=0?1:1+F;V[0][T]*=Q,V[1][T]*=J}}function h0(V,A,F,T){for(let Q=0;Q<V.length;Q++){let J=V[Q],{x_1:U,x_2:Y,y_1:X,y_2:k}=T[Q]??{x_1:0,x_2:0,y_1:0,y_2:0};if(A.length===1){let H=A[0];if(H>=20000)return;let $=2*Math.PI*H/F,j=Math.sin($)/2,P=(1-Math.cos($))/2,C=1-Math.cos($),N=(1-Math.cos($))/2,K=1+j,w=-2*Math.cos($),v=1-j,Z=P/K,E=C/K,O=N/K,R=w/K,h=v/K;for(let b=0;b<J.length;b++){let c=J[b],g=Z*c+E*U+O*Y-R*X-h*k;Y=U,U=c,k=X,X=g,J[b]=g}}else{let H=A[0];for(let $=0;$<J.length;$++){let j=A[$]??H,P=2*Math.PI*j/F,C=Math.sin(P)/2,N=(1-Math.cos(P))/2,K=1-Math.cos(P),w=(1-Math.cos(P))/2,v=1+C,Z=-2*Math.cos(P),E=1-C,O=J[$],R=N/v*O+K/v*U+w/v*Y-Z/v*X-E/v*k;Y=U,U=O,k=X,X=R,J[$]=R}}T[Q]={x_1:U,x_2:Y,y_1:X,y_2:k}}}function l0(V,A,F,T){for(let Q=0;Q<V.length;Q++){let J=V[Q],{x_1:U,x_2:Y,y_1:X,y_2:k}=T[Q]??{x_1:0,x_2:0,y_1:0,y_2:0};if(A.length===1){let H=A[0];if(H<=20)return;let $=2*Math.PI*H/F,j=Math.sin($)/2,P=(1+Math.cos($))/2,C=-(1+Math.cos($)),N=(1+Math.cos($))/2,K=1+j,w=-2*Math.cos($),v=1-j;for(let Z=0;Z<J.length;Z++){let E=J[Z],O=P/K*E+C/K*U+N/K*Y-w/K*X-v/K*k;Y=U,U=E,k=X,X=O,J[Z]=O}}else{let H=A[0];for(let $=0;$<J.length;$++){let j=A[$]??H,P=2*Math.PI*j/F,C=Math.sin(P)/2,N=(1+Math.cos(P))/2,K=-(1+Math.cos(P)),w=(1+Math.cos(P))/2,v=1+C,Z=-2*Math.cos(P),E=1-C,O=J[$],R=N/v*O+K/v*U+w/v*Y-Z/v*X-E/v*k;Y=U,U=O,k=X,X=R,J[$]=R}}T[Q]={x_1:U,x_2:Y,y_1:X,y_2:k}}}function z0(V,A,F,T){let{type:Q,data:J}=A;switch(Q){case\"buffer\":return y0(V,J),n(V,T),[];case\"bufferInit\":{let U=J;return V.buffer=G0(U.channels,U.totalLength),V.streamBuffer={...i(),totalLength:U.totalLength,streamEnded:!1,streaming:U.streaming??!0},n(V,T),[]}case\"bufferRange\":return V.streamBuffer.pendingWrites.push(J),[];case\"bufferEnd\":{let U=J;if(U?.totalLength!=null)V.streamBuffer.totalLength=U.totalLength;return V.streamBuffer.streamEnded=!0,[]}case\"bufferReset\":return V.buffer=[],V.streamBuffer=i(),n(V,T),[];case\"start\":V.timesLooped=0;{let U=J;if(V.duration=U?.duration??-1,V.duration===-1)V.duration=V.loop?Number.MAX_SAFE_INTEGER:(V.buffer[0]?.length??0)/T;e(V,U?.offset,T),n(V,T),V.playhead=V.offset,V.startWhen=U?.when??F,V.stopWhen=V.startWhen+V.duration,V.playedSamples=0,V.state=z.Scheduled}return[{type:\"scheduled\"}];case\"stop\":if(V.state===z.Ended||V.state===z.Initial)return[];return V.stopWhen=J??V.stopWhen,V.state=z.Stopped,[{type:\"stopped\"}];case\"pause\":return V.state=z.Paused,V.pauseWhen=J??F,[{type:\"paused\"}];case\"resume\":return V.state=z.Started,V.startWhen=J??F,[{type:\"resume\"}];case\"dispose\":return V.state=z.Disposed,V.buffer=[],V.streamBuffer=i(),[{type:\"disposed\"}];case\"loop\":{let U=J,Y=V.state;if(U&&(Y===z.Scheduled||Y===z.Started))V.stopWhen=Number.MAX_SAFE_INTEGER,V.duration=Number.MAX_SAFE_INTEGER;if(V.loop=U,U)n(V,T);return[]}case\"loopStart\":return V.loopStart=J,[];case\"loopEnd\":return V.loopEnd=J,[];case\"loopCrossfade\":return V.loopCrossfade=J,[];case\"playhead\":return V.playhead=Math.floor(J),[];case\"fadeIn\":return V.fadeInDuration=J,[];case\"fadeOut\":return V.fadeOutDuration=J,[];case\"toggleGain\":return V.enableGain=J??!V.enableGain,[];case\"togglePan\":return V.enablePan=J??!V.enablePan,[];case\"toggleLowpass\":return V.enableLowpass=J??!V.enableLowpass,[];case\"toggleHighpass\":return V.enableHighpass=J??!V.enableHighpass,[];case\"toggleDetune\":return V.enableDetune=J??!V.enableDetune,[];case\"togglePlaybackRate\":return V.enablePlaybackRate=J??!V.enablePlaybackRate,[];case\"toggleFadeIn\":return V.enableFadeIn=J??!V.enableFadeIn,[];case\"toggleFadeOut\":return V.enableFadeOut=J??!V.enableFadeOut,[];case\"toggleLoopStart\":return V.enableLoopStart=J??!V.enableLoopStart,[];case\"toggleLoopEnd\":return V.enableLoopEnd=J??!V.enableLoopEnd,[];case\"toggleLoopCrossfade\":return V.enableLoopCrossfade=J??!V.enableLoopCrossfade,[];case\"logState\":return[]}return[]}function j0(V,A,F,T,Q){let J=[],U=V.state;if(U===z.Disposed)return{keepAlive:!1,messages:J};if(_0(V),U===z.Initial)return{keepAlive:!0,messages:J};if(U===z.Ended)return d(A[0]),{keepAlive:!0,messages:J};if(U===z.Scheduled)if(T.currentTime>=V.startWhen)U=V.state=z.Started,J.push({type:\"started\"});else return d(A[0]),{keepAlive:!0,messages:J};else if(U===z.Paused){if(T.currentTime>V.pauseWhen)return d(A[0]),{keepAlive:!0,messages:J}}if(T.currentTime>V.stopWhen)return d(A[0]),V.state=z.Ended,J.push({type:\"ended\"}),V.playedSamples=0,{keepAlive:!0,messages:J};let Y=A[0],X=o(V);if(X===0)return d(Y),{keepAlive:!0,messages:J};let{playbackRate:k,detune:H,lowpass:$,highpass:j,gain:P,pan:C}=F,{buffer:N,loopStart:K,loopEnd:w,loopCrossfade:v,stopWhen:Z,playedSamples:E,enableLowpass:O,enableHighpass:R,enableGain:h,enablePan:b,enableDetune:c,enableFadeOut:g,enableFadeIn:s,enableLoopStart:r,enableLoopEnd:t,enableLoopCrossfade:p,playhead:D,fadeInDuration:A0,fadeOutDuration:F0}=V,K0=V.streamBuffer.streaming&&V.streamBuffer.committedLength<X,T0=V.loop&&!K0,l=Math.min(N.length,Y.length),W0=V.duration*T.sampleRate,Z0=Math.floor(T.sampleRate*v),q0=Math.max(X-y,0),L=r?Math.min(Math.floor(K*T.sampleRate),q0):0,x=t?Math.min(Math.floor(w*T.sampleRate),X):X,N0=x-L,J0=c&&H.length>0&&H[0]!==0,u=k;if(J0){let M=Math.max(k.length,H.length,y);u=new Float32Array(M);for(let W=0;W<M;W++){let I=k[W]??k[k.length-1],G=H[W]??H[H.length-1];u[W]=I*2**(G/1200)}}let Q0=V.enablePlaybackRate||J0,O0=Q0&&u.length>0&&u.every((M)=>M===0);if(V.streamBuffer.streaming&&!V.streamBuffer.streamEnded&&!V.streamBuffer.lowWaterNotified&&V.streamBuffer.committedLength-Math.floor(D)<V.streamBuffer.lowWaterThreshold)J.push({type:\"bufferLowWater\",data:{playhead:Math.floor(D),committedLength:V.streamBuffer.committedLength}}),V.streamBuffer.lowWaterNotified=!0;if(O0){d(Y);for(let M=1;M<A.length;M++)H0(Y,A[M]);return{keepAlive:!0,messages:J}}let U0={bufferLength:X,loop:T0,playhead:D,loopStartSamples:L,loopEndSamples:x,durationSamples:W0,playbackRates:u},{indexes:a,ended:X0,looped:Y0,playhead:$0}=Q0?x0(U0):L0(U0),f=a.find((M)=>M>=V.streamBuffer.committedLength&&M<X);if(f!==void 0&&!V.streamBuffer.streamEnded&&V.streamBuffer.lastUnderrunSample!==f)J.push({type:\"bufferUnderrun\",data:{playhead:Math.floor(D),committedLength:V.streamBuffer.committedLength,requestedSample:f}}),V.streamBuffer.lastUnderrunSample=f;else if(f===void 0)V.streamBuffer.lastUnderrunSample=null;m0(Y,N,a);let m=Math.min(Math.floor(v*T.sampleRate),N0),D0=T0&&D>L&&D<x,C0=p&&Z0>0&&X>y;if(D0&&C0){{let M=L+m;if(m>0&&D>L&&D<M){let W=D-L,I=Math.min(Math.floor(M-D),y);for(let G=0;G<I;G++){let B=(W+G)/m,S=Math.cos(Math.PI*B/2),q=Math.floor(x-m+W+G);if(q>=0&&q<X)for(let _=0;_<l;_++)Y[_][G]+=N[_][q]*S}}}{let M=x-m;if(m>0&&D>M&&D<x){let W=D-M,I=Math.min(Math.floor(x-D),y);for(let G=0;G<I;G++){let B=(W+G)/m,S=Math.sin(Math.PI*B/2),q=Math.floor(L+W+G);if(q>=0&&q<X)for(let _=0;_<l;_++)Y[_][G]+=N[_][q]*S}}}}if(s&&A0>0){let M=Math.floor(A0*T.sampleRate),W=M-E;if(W>0){let I=Math.min(W,y);for(let G=0;G<I;G++){let B=(E+G)/M,S=B*B*B;for(let q=0;q<l;q++)Y[q][G]*=S}}}if(g&&F0>0){let M=Math.floor(F0*T.sampleRate),W=Math.floor(T.sampleRate*(Z-T.currentTime));if(W<M+y)for(let I=0;I<y;I++){let G=W-I;if(G>=M)continue;let B=G<=0?0:G/M,S=B*B*B;for(let q=0;q<l;q++)Y[q][I]*=S}}if(O)h0(Y,$,T.sampleRate,Q.lowpass);if(R)l0(Y,j,T.sampleRate,Q.highpass);if(h)g0(Y,P);if(l===1)S0(Y);if(b)d0(Y,C);if(Y0)V.timesLooped++,J.push({type:\"looped\",data:V.timesLooped});if(X0)V.state=z.Ended,J.push({type:\"ended\"});V.playedSamples+=a.length,V.playhead=$0;let k0=c0(Y);if(k0>0)return console.log({numNans:k0,indexes:a,playhead:$0,ended:X0,looped:Y0,sourceLength:X}),{keepAlive:!0,messages:J};for(let M=1;M<A.length;M++)H0(Y,A[M]);return{keepAlive:!0,messages:J}}class P0 extends AudioWorkletProcessor{static get parameterDescriptors(){return[{name:\"playbackRate\",automationRate:\"a-rate\",defaultValue:1},{name:\"detune\",automationRate:\"a-rate\",defaultValue:0},{name:\"gain\",automationRate:\"a-rate\",defaultValue:1,minValue:0},{name:\"pan\",automationRate:\"a-rate\",defaultValue:0},{name:\"highpass\",automationRate:\"a-rate\",defaultValue:20,minValue:20,maxValue:20000},{name:\"lowpass\",automationRate:\"a-rate\",defaultValue:20000,minValue:20,maxValue:20000}]}properties;filterState={lowpass:V0(),highpass:V0()};lastFrameTime=0;constructor(V){super(V);this.properties=v0(V?.processorOptions,sampleRate),this.port.onmessage=(A)=>{let F=z0(this.properties,A.data,currentTime,sampleRate);for(let T of F)this.port.postMessage(T);if(this.properties.state===z.Disposed)this.port.close()}}process(V,A,F){try{let T=j0(this.properties,A,F,{currentTime,currentFrame,sampleRate},this.filterState);for(let J of T.messages)this.port.postMessage(J);let Q=currentTime-this.lastFrameTime;return this.lastFrameTime=currentTime,this.port.postMessage({type:\"frame\",data:[currentTime,currentFrame,Math.floor(this.properties.playhead),Q*1000]}),T.keepAlive}catch(T){return console.log(T),!0}}}registerProcessor(\"ClipProcessor\",P0);\n\n//# debugId=5101232AAE128B1064756E2164756E21\n//# sourceMappingURL=processor.js.map\n";
@@ -1,43 +0,0 @@
1
- import { type BlockParameters, type BlockReturnState, type ClipProcessorOptions } from "./types";
2
- export declare const SAMPLE_BLOCK_SIZE = 128;
3
- export declare function getProperties(opts: ClipProcessorOptions | undefined, sampleRate: number): Required<ClipProcessorOptions>;
4
- export declare function setOffset(properties: Required<ClipProcessorOptions>, offset: number | undefined, sampleRate: number): number;
5
- export declare function findIndexesNormal(p: BlockParameters): BlockReturnState;
6
- export declare function findIndexesWithPlaybackRates(p: BlockParameters): BlockReturnState;
7
- export declare function fill(target: Float32Array[], source: Float32Array[], indexes: number[]): void;
8
- export declare function fillWithSilence(buffer: Float32Array[]): void;
9
- export declare function monoToStereo(signal: Float32Array[]): void;
10
- export declare function copy(source: Float32Array[], target: Float32Array[]): void;
11
- export declare function checkNans(output: Float32Array[]): number;
12
- export interface BiquadState {
13
- x_1: number;
14
- x_2: number;
15
- y_1: number;
16
- y_2: number;
17
- }
18
- export declare function createFilterState(): BiquadState[];
19
- export declare function gainFilter(arr: Float32Array[], gains: Float32Array): void;
20
- export declare function panFilter(signal: Float32Array[], pans: Float32Array): void;
21
- export declare function lowpassFilter(buffer: Float32Array[], cutoffs: Float32Array, sampleRate: number, states: BiquadState[]): void;
22
- export declare function highpassFilter(buffer: Float32Array[], cutoffs: Float32Array, sampleRate: number, states: BiquadState[]): void;
23
- export interface OutboundMessage {
24
- type: string;
25
- data?: unknown;
26
- }
27
- export declare function handleProcessorMessage(properties: Required<ClipProcessorOptions>, message: {
28
- type: string;
29
- data?: unknown;
30
- }, currentTime: number, sampleRate: number): OutboundMessage[];
31
- export interface ProcessContext {
32
- currentTime: number;
33
- currentFrame: number;
34
- sampleRate: number;
35
- }
36
- export interface ProcessResult {
37
- keepAlive: boolean;
38
- messages: OutboundMessage[];
39
- }
40
- export declare function processBlock(props: Required<ClipProcessorOptions>, outputs: Float32Array[][], parameters: Record<string, Float32Array>, ctx: ProcessContext, filterState: {
41
- lowpass: BiquadState[];
42
- highpass: BiquadState[];
43
- }): ProcessResult;