@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,73 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useRef } from "react";
3
- import { createPortal } from "react-dom";
4
- const SNAP_OPTIONS = [
5
- { value: "none", label: "None" },
6
- { value: "beat", label: "Beat" },
7
- { value: "bar", label: "Bar" },
8
- { value: "8th", label: "8th" },
9
- { value: "16th", label: "16th" },
10
- { value: "int", label: "Integer" },
11
- ];
12
- export function ContextMenu({ x, y, snap, snapMode = "tempo", min, max, maxLocked = false, showMaxLock = true, audioDuration, onSnapChange, onMinChange, onMaxChange, onMaxLockedChange, onClose, }) {
13
- const menuRef = useRef(null);
14
- // Close on click outside or Escape
15
- useEffect(() => {
16
- const handleClick = (e) => {
17
- if (menuRef.current && !menuRef.current.contains(e.target)) {
18
- onClose();
19
- }
20
- };
21
- const handleKey = (e) => {
22
- if (e.key === "Escape")
23
- onClose();
24
- };
25
- document.addEventListener("mousedown", handleClick);
26
- document.addEventListener("keydown", handleKey);
27
- return () => {
28
- document.removeEventListener("mousedown", handleClick);
29
- document.removeEventListener("keydown", handleKey);
30
- };
31
- }, [onClose]);
32
- // Adjust position to stay within viewport
33
- useEffect(() => {
34
- const el = menuRef.current;
35
- if (!el)
36
- return;
37
- const rect = el.getBoundingClientRect();
38
- if (rect.right > window.innerWidth) {
39
- el.style.left = `${window.innerWidth - rect.width - 8}px`;
40
- }
41
- if (rect.bottom > window.innerHeight) {
42
- el.style.top = `${window.innerHeight - rect.height - 8}px`;
43
- }
44
- }, []);
45
- const handleSnapClick = useCallback((value) => {
46
- onSnapChange(value);
47
- }, [onSnapChange]);
48
- const handleMinCommit = useCallback((e) => {
49
- const input = e.currentTarget;
50
- const parsed = Number.parseFloat(input.value);
51
- if (Number.isFinite(parsed)) {
52
- onMinChange(parsed);
53
- }
54
- }, [onMinChange]);
55
- const handleMaxCommit = useCallback((e) => {
56
- const input = e.currentTarget;
57
- const parsed = Number.parseFloat(input.value);
58
- if (Number.isFinite(parsed)) {
59
- onMaxChange(parsed);
60
- }
61
- }, [onMaxChange]);
62
- const handleInputKeyDown = useCallback((commit) => (e) => {
63
- if (e.key === "Enter") {
64
- e.preventDefault();
65
- commit(e);
66
- }
67
- else if (e.key === "Escape") {
68
- e.preventDefault();
69
- onClose();
70
- }
71
- }, [onClose]);
72
- return createPortal(_jsxs("div", { ref: menuRef, className: "context-menu", style: { left: x, top: y }, role: "menu", children: [_jsx("div", { className: "context-menu__section-label", children: "Snap" }), snapMode === "preset" ? (_jsxs("label", { className: "context-menu__field", children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: snap !== "none", onChange: (e) => onSnapChange(e.target.checked ? "preset" : "none") }), "Enable snap"] })) : (SNAP_OPTIONS.map((opt) => (_jsxs("button", { type: "button", className: `context-menu__item${snap === opt.value ? " context-menu__item--active" : ""}`, role: "menuitemradio", "aria-checked": snap === opt.value, onClick: () => handleSnapClick(opt.value), children: [_jsx("span", { className: "context-menu__radio", children: snap === opt.value ? "●" : "○" }), opt.label] }, opt.value)))), _jsx("div", { className: "context-menu__divider" }), _jsx("div", { className: "context-menu__section-label", children: "Range" }), _jsxs("label", { className: "context-menu__field", children: ["Min:", _jsx("input", { type: "number", className: "context-menu__input", defaultValue: min, step: "any", onBlur: handleMinCommit, onKeyDown: handleInputKeyDown(handleMinCommit) })] }), _jsxs("label", { className: "context-menu__field", children: ["Max:", _jsx("input", { type: "number", className: "context-menu__input", defaultValue: max, step: "any", disabled: maxLocked && audioDuration != null, onBlur: handleMaxCommit, onKeyDown: handleInputKeyDown(handleMaxCommit) })] }), showMaxLock && (_jsxs("label", { className: "context-menu__field", children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: maxLocked, onChange: (e) => onMaxLockedChange?.(e.target.checked) }), "Max = file length"] }))] }), document.body);
73
- }
@@ -1,26 +0,0 @@
1
- import type { ControlDef, ControlKey } from "../controls/controlDefs";
2
- import type { LinkedControlPairDef, LinkedControlPairKey } from "../controls/linkedControlPairs";
3
- interface ControlSectionProps {
4
- legend: string;
5
- defs: ControlDef[];
6
- values: Record<ControlKey, number>;
7
- snaps: Record<ControlKey, string>;
8
- enabled: Record<ControlKey, boolean>;
9
- mins: Record<ControlKey, number>;
10
- maxs: Record<ControlKey, number>;
11
- maxLocked: Record<ControlKey, boolean>;
12
- linked?: Record<LinkedControlPairKey, boolean>;
13
- linkedPairs?: readonly LinkedControlPairDef[];
14
- tempo: number;
15
- audioDuration?: number | null;
16
- onValueChange: (key: ControlKey, val: number) => void;
17
- onToggle: (key: ControlKey, on: boolean) => void;
18
- onLinkedChange?: (key: LinkedControlPairKey, linked: boolean) => void;
19
- onSnapChange: (key: ControlKey, snap: string) => void;
20
- onMinChange: (key: ControlKey, val: number) => void;
21
- onMaxChange: (key: ControlKey, val: number) => void;
22
- onMaxLockedChange: (key: ControlKey, locked: boolean) => void;
23
- }
24
- declare function ControlSectionInner({ legend, defs, linked, linkedPairs, onLinkedChange, ...controlProps }: ControlSectionProps): import("react/jsx-runtime").JSX.Element;
25
- export declare const ControlSection: import("react").MemoExoticComponent<typeof ControlSectionInner>;
26
- export {};
@@ -1,74 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useId } from "react";
3
- import { AudioControl } from "./AudioControl";
4
- /** Build a set of control keys that belong to a linked pair,
5
- * and a map from the first control key to its pair def. */
6
- function buildPairMaps(pairs) {
7
- const pairByFirst = new Map();
8
- const pairedKeys = new Set();
9
- if (pairs) {
10
- for (const pair of pairs) {
11
- pairByFirst.set(pair.controls[0], pair);
12
- pairedKeys.add(pair.controls[0]);
13
- pairedKeys.add(pair.controls[1]);
14
- }
15
- }
16
- return { pairByFirst, pairedKeys };
17
- }
18
- function renderAudioControl(def, props) {
19
- const { mins, maxs, maxLocked, audioDuration, values, tempo, snaps, enabled, onValueChange, onToggle, onSnapChange, onMinChange, onMaxChange, onMaxLockedChange, } = props;
20
- return (_jsx(AudioControl, { label: def.label, controlKey: def.key, min: mins[def.key] ?? def.min, max: maxLocked[def.key] && audioDuration != null
21
- ? audioDuration
22
- : (maxs[def.key] ?? def.max), value: values[def.key], defaultValue: def.defaultValue, tempo: tempo, snap: snaps[def.key], preset: def.preset, title: def.title, enabled: enabled[def.key], hasToggle: def.hasToggle, hasSnap: def.hasSnap, hasMaxLock: def.hasMaxLock, audioDuration: audioDuration, maxLocked: maxLocked[def.key] ?? true, onChange: (v) => onValueChange(def.key, v), onToggle: (on) => onToggle(def.key, on), onSnapChange: (s) => onSnapChange(def.key, s), onMinChange: (v) => onMinChange(def.key, v), onMaxChange: (v) => onMaxChange(def.key, v), onMaxLockedChange: (locked) => onMaxLockedChange(def.key, locked) }, def.key));
23
- }
24
- function ControlSectionInner({ legend, defs, linked, linkedPairs, onLinkedChange, ...controlProps }) {
25
- const sectionId = useId();
26
- const { pairByFirst, pairedKeys } = buildPairMaps(linkedPairs);
27
- const items = [];
28
- let i = 0;
29
- while (i < defs.length) {
30
- const def = defs[i];
31
- const pair = pairByFirst.get(def.key);
32
- if (pair) {
33
- // Find the second control in the pair
34
- const secondDef = defs.find((d) => d.key === pair.controls[1]);
35
- const isLinked = linked?.[pair.key] ?? false;
36
- const inputId = `${sectionId}-${pair.key}`;
37
- items.push(_jsxs("div", { className: `control-link-group${isLinked ? " control-link-group--active" : ""}`, children: [_jsxs("div", { className: "control-link-bracket", children: [_jsx("span", { className: "control-link-line" }), _jsx("button", { type: "button", id: inputId, className: "control-link-btn", "aria-pressed": isLinked, "aria-label": pair.label, title: pair.label, onClick: () => onLinkedChange?.(pair.key, !isLinked), children: _jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M6.5 4.5h-1A2.5 2.5 0 0 0 3 7v2a2.5 2.5 0 0 0 2.5 2.5h1m3-7h1A2.5 2.5 0 0 1 13 7v2a2.5 2.5 0 0 1-2.5 2.5h-1M5.5 8h5", stroke: "currentColor", strokeWidth: "1.3", strokeLinecap: "round" }) }) }), _jsx("span", { className: "control-link-line" })] }), _jsxs("div", { className: "control-link-controls", children: [renderAudioControl(def, controlProps), secondDef && renderAudioControl(secondDef, controlProps)] })] }, `link-${pair.key}`));
38
- // Skip past both controls in the pair
39
- i += 1;
40
- if (secondDef && defs[i]?.key === secondDef.key) {
41
- i += 1;
42
- }
43
- continue;
44
- }
45
- // Not part of a pair (or is a second control already rendered above)
46
- if (!pairedKeys.has(def.key)) {
47
- items.push(renderAudioControl(def, controlProps));
48
- }
49
- i += 1;
50
- }
51
- return (_jsxs("fieldset", { className: "control-group", children: [_jsx("legend", { children: legend }), items] }));
52
- }
53
- function areControlSectionPropsEqual(prev, next) {
54
- return (prev.legend === next.legend &&
55
- prev.defs === next.defs &&
56
- prev.values === next.values &&
57
- prev.snaps === next.snaps &&
58
- prev.enabled === next.enabled &&
59
- prev.mins === next.mins &&
60
- prev.maxs === next.maxs &&
61
- prev.maxLocked === next.maxLocked &&
62
- prev.linked === next.linked &&
63
- prev.linkedPairs === next.linkedPairs &&
64
- prev.tempo === next.tempo &&
65
- prev.audioDuration === next.audioDuration &&
66
- prev.onValueChange === next.onValueChange &&
67
- prev.onToggle === next.onToggle &&
68
- prev.onLinkedChange === next.onLinkedChange &&
69
- prev.onSnapChange === next.onSnapChange &&
70
- prev.onMinChange === next.onMinChange &&
71
- prev.onMaxChange === next.onMaxChange &&
72
- prev.onMaxLockedChange === next.onMaxLockedChange);
73
- }
74
- export const ControlSection = memo(ControlSectionInner, areControlSectionPropsEqual);
@@ -1,10 +0,0 @@
1
- interface DetuneControlProps {
2
- value: number;
3
- defaultValue: number;
4
- enabled: boolean;
5
- onChange: (value: number) => void;
6
- onToggle: (enabled: boolean) => void;
7
- }
8
- declare function DetuneControlInner({ value, defaultValue, enabled, onChange, onToggle, }: DetuneControlProps): import("react/jsx-runtime").JSX.Element;
9
- export declare const DetuneControl: import("react").MemoExoticComponent<typeof DetuneControlInner>;
10
- export {};
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useId, useRef, useState } from "react";
3
- import { presets } from "../audio/utils";
4
- import { SnappableSlider } from "./SnappableSlider";
5
- function DetuneControlInner({ value, defaultValue, enabled, onChange, onToggle, }) {
6
- const preset = presets.cents;
7
- const min = preset.min ?? -2400;
8
- const max = preset.max ?? 2400;
9
- const labelId = useId();
10
- const [isEditing, setIsEditing] = useState(false);
11
- const [editText, setEditText] = useState("");
12
- const inputRef = useRef(null);
13
- const displayValue = `${Math.round(value)} cents`;
14
- const handleChange = useCallback((v) => {
15
- if (!enabled)
16
- return;
17
- onChange(v);
18
- }, [enabled, onChange]);
19
- const startEditing = useCallback(() => {
20
- setEditText(String(Math.round(value)));
21
- setIsEditing(true);
22
- queueMicrotask(() => inputRef.current?.select());
23
- }, [value]);
24
- const commitEdit = useCallback(() => {
25
- setIsEditing(false);
26
- const parsed = Number.parseFloat(editText);
27
- if (Number.isFinite(parsed)) {
28
- onChange(Math.min(Math.max(parsed, min), max));
29
- }
30
- }, [editText, min, max, onChange]);
31
- const handleEditKeyDown = useCallback((e) => {
32
- if (e.key === "Enter") {
33
- e.preventDefault();
34
- commitEdit();
35
- }
36
- else if (e.key === "Escape") {
37
- e.preventDefault();
38
- setIsEditing(false);
39
- }
40
- }, [commitEdit]);
41
- const disabled = !enabled;
42
- return (_jsxs("div", { className: `audio-control${disabled ? " audio-control--disabled" : ""}`, title: "Pitch shift in cents.", children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: enabled, onChange: (e) => onToggle(e.target.checked) }), _jsx("span", { className: "control-label", id: labelId, children: "Detune" }), _jsx(SnappableSlider, { min: min, max: max, value: value, skew: preset.skew ?? 1, step: preset.step ?? 1, defaultValue: defaultValue, ticks: preset.ticks ?? [], disabled: disabled, labelId: labelId, valueText: displayValue, onChange: handleChange }), isEditing ? (_jsx("input", { ref: inputRef, type: "text", className: "control-output control-output--editing", value: editText, onChange: (e) => setEditText(e.target.value), onBlur: commitEdit, onKeyDown: handleEditKeyDown })) : (_jsx("button", { type: "button", className: "control-output", onClick: startEditing, children: displayValue }))] }));
43
- }
44
- export const DetuneControl = memo(DetuneControlInner);
@@ -1,14 +0,0 @@
1
- import type { ClipNodeState } from "../audio/types";
2
- interface DisplayPanelProps {
3
- nodeState: ClipNodeState;
4
- statusMessage: string | null;
5
- soundName: string | null;
6
- currentTime: string;
7
- currentFrame: string;
8
- timesLooped: string;
9
- latency: string;
10
- timeTaken: string;
11
- }
12
- declare function DisplayPanelInner({ nodeState, statusMessage, soundName, currentTime, currentFrame, timesLooped, latency, timeTaken, }: DisplayPanelProps): import("react/jsx-runtime").JSX.Element;
13
- export declare const DisplayPanel: import("react").MemoExoticComponent<typeof DisplayPanelInner>;
14
- export {};
@@ -1,6 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo } from "react";
3
- function DisplayPanelInner({ nodeState, statusMessage, soundName, currentTime, currentFrame, timesLooped, latency, timeTaken, }) {
4
- return (_jsxs("section", { id: "display", children: [statusMessage && (_jsx("div", { className: "status-message", role: "alert", children: statusMessage })), _jsx("code", { children: "Sound:" }), _jsx("output", { children: soundName ?? "none" }), _jsx("code", { children: "State:" }), _jsx("output", { children: nodeState }), _jsx("code", { children: "Time:" }), _jsx("output", { children: currentTime }), _jsx("code", { children: "Loops:" }), _jsx("output", { children: timesLooped }), _jsxs("details", { className: "display-details", children: [_jsx("summary", { children: "Debug" }), _jsxs("div", { className: "display-details__row", children: [_jsx("code", { children: "Frame:" }), _jsx("output", { children: currentFrame }), _jsx("code", { children: "Latency:" }), _jsx("output", { children: latency }), _jsx("code", { children: "TimeTaken:" }), _jsx("output", { children: timeTaken })] })] })] }));
5
- }
6
- export const DisplayPanel = memo(DisplayPanelInner);
@@ -1,12 +0,0 @@
1
- interface FilterControlProps {
2
- label: string;
3
- controlKey: string;
4
- value: number;
5
- defaultValue: number;
6
- enabled: boolean;
7
- onChange: (value: number) => void;
8
- onToggle: (enabled: boolean) => void;
9
- }
10
- declare function FilterControlInner({ label, controlKey: _controlKey, value, defaultValue, enabled, onChange, onToggle, }: FilterControlProps): import("react/jsx-runtime").JSX.Element;
11
- export declare const FilterControl: import("react").MemoExoticComponent<typeof FilterControlInner>;
12
- export {};
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useId, useRef, useState } from "react";
3
- import { presets } from "../audio/utils";
4
- import { SnappableSlider } from "./SnappableSlider";
5
- function formatHz(value) {
6
- if (value >= 1000)
7
- return `${(value / 1000).toFixed(1)} kHz`;
8
- return `${Math.round(value)} Hz`;
9
- }
10
- function FilterControlInner({ label, controlKey: _controlKey, value, defaultValue, enabled, onChange, onToggle, }) {
11
- const preset = presets.hertz;
12
- const min = preset.min ?? 32;
13
- const max = preset.max ?? 16384;
14
- const labelId = useId();
15
- const [isEditing, setIsEditing] = useState(false);
16
- const [editText, setEditText] = useState("");
17
- const inputRef = useRef(null);
18
- const handleChange = useCallback((v) => {
19
- if (!enabled)
20
- return;
21
- onChange(v);
22
- }, [enabled, onChange]);
23
- const startEditing = useCallback(() => {
24
- setEditText(String(Math.round(value)));
25
- setIsEditing(true);
26
- queueMicrotask(() => inputRef.current?.select());
27
- }, [value]);
28
- const commitEdit = useCallback(() => {
29
- setIsEditing(false);
30
- const parsed = Number.parseFloat(editText);
31
- if (Number.isFinite(parsed)) {
32
- onChange(Math.min(Math.max(parsed, min), max));
33
- }
34
- }, [editText, min, max, onChange]);
35
- const handleEditKeyDown = useCallback((e) => {
36
- if (e.key === "Enter") {
37
- e.preventDefault();
38
- commitEdit();
39
- }
40
- else if (e.key === "Escape") {
41
- e.preventDefault();
42
- setIsEditing(false);
43
- }
44
- }, [commitEdit]);
45
- const disabled = !enabled;
46
- return (_jsxs("div", { className: `audio-control${disabled ? " audio-control--disabled" : ""}`, title: `${label} cutoff frequency.`, children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: enabled, onChange: (e) => onToggle(e.target.checked) }), _jsx("span", { className: "control-label", id: labelId, children: label }), _jsx(SnappableSlider, { min: min, max: max, value: value, logarithmic: true, defaultValue: defaultValue, enableSnap: true, snaps: preset.snaps ?? [], ticks: preset.ticks ?? [], disabled: disabled, labelId: labelId, valueText: formatHz(value), onChange: handleChange }), isEditing ? (_jsx("input", { ref: inputRef, type: "text", className: "control-output control-output--editing", value: editText, onChange: (e) => setEditText(e.target.value), onBlur: commitEdit, onKeyDown: handleEditKeyDown })) : (_jsx("button", { type: "button", className: "control-output", onClick: startEditing, children: formatHz(value) }))] }));
47
- }
48
- export const FilterControl = memo(FilterControlInner);
@@ -1,10 +0,0 @@
1
- interface GainControlProps {
2
- value: number;
3
- defaultValue: number;
4
- enabled: boolean;
5
- onChange: (value: number) => void;
6
- onToggle: (enabled: boolean) => void;
7
- }
8
- declare function GainControlInner({ value, defaultValue, enabled, onChange, onToggle, }: GainControlProps): import("react/jsx-runtime").JSX.Element;
9
- export declare const GainControl: import("react").MemoExoticComponent<typeof GainControlInner>;
10
- export {};
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useId, useRef, useState } from "react";
3
- import { presets } from "../audio/utils";
4
- import { SnappableSlider } from "./SnappableSlider";
5
- function GainControlInner({ value, defaultValue, enabled, onChange, onToggle, }) {
6
- const preset = presets.gain;
7
- const min = preset.min ?? -100;
8
- const max = preset.max ?? 0;
9
- const labelId = useId();
10
- const [isEditing, setIsEditing] = useState(false);
11
- const [editText, setEditText] = useState("");
12
- const inputRef = useRef(null);
13
- const displayValue = `${value.toFixed(1)} dB`;
14
- const handleChange = useCallback((v) => {
15
- if (!enabled)
16
- return;
17
- onChange(v);
18
- }, [enabled, onChange]);
19
- const startEditing = useCallback(() => {
20
- setEditText(String(value));
21
- setIsEditing(true);
22
- queueMicrotask(() => inputRef.current?.select());
23
- }, [value]);
24
- const commitEdit = useCallback(() => {
25
- setIsEditing(false);
26
- const parsed = Number.parseFloat(editText);
27
- if (Number.isFinite(parsed)) {
28
- onChange(Math.min(Math.max(parsed, min), max));
29
- }
30
- }, [editText, min, max, onChange]);
31
- const handleEditKeyDown = useCallback((e) => {
32
- if (e.key === "Enter") {
33
- e.preventDefault();
34
- commitEdit();
35
- }
36
- else if (e.key === "Escape") {
37
- e.preventDefault();
38
- setIsEditing(false);
39
- }
40
- }, [commitEdit]);
41
- const disabled = !enabled;
42
- return (_jsxs("div", { className: `audio-control${disabled ? " audio-control--disabled" : ""}`, title: "Amplitude in dB.", children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: enabled, onChange: (e) => onToggle(e.target.checked) }), _jsx("span", { className: "control-label", id: labelId, children: "Gain" }), _jsx(SnappableSlider, { min: min, max: max, value: value, skew: preset.skew ?? 6, defaultValue: defaultValue, ticks: preset.ticks ?? [], disabled: disabled, labelId: labelId, valueText: displayValue, onChange: handleChange }), isEditing ? (_jsx("input", { ref: inputRef, type: "text", className: "control-output control-output--editing", value: editText, onChange: (e) => setEditText(e.target.value), onBlur: commitEdit, onKeyDown: handleEditKeyDown })) : (_jsx("button", { type: "button", className: "control-output", onClick: startEditing, children: displayValue }))] }));
43
- }
44
- export const GainControl = memo(GainControlInner);
@@ -1,10 +0,0 @@
1
- interface PanControlProps {
2
- value: number;
3
- defaultValue: number;
4
- enabled: boolean;
5
- onChange: (value: number) => void;
6
- onToggle: (enabled: boolean) => void;
7
- }
8
- declare function PanControlInner({ value, defaultValue, enabled, onChange, onToggle, }: PanControlProps): import("react/jsx-runtime").JSX.Element;
9
- export declare const PanControl: import("react").MemoExoticComponent<typeof PanControlInner>;
10
- export {};
@@ -1,50 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useId, useRef, useState } from "react";
3
- import { presets } from "../audio/utils";
4
- import { SnappableSlider } from "./SnappableSlider";
5
- function formatPan(value) {
6
- if (Math.abs(value) < 0.005)
7
- return "C";
8
- const pct = Math.round(Math.abs(value) * 100);
9
- return value < 0 ? `L${pct}` : `R${pct}`;
10
- }
11
- function PanControlInner({ value, defaultValue, enabled, onChange, onToggle, }) {
12
- const preset = presets.pan;
13
- const min = preset.min ?? -1;
14
- const max = preset.max ?? 1;
15
- const labelId = useId();
16
- const [isEditing, setIsEditing] = useState(false);
17
- const [editText, setEditText] = useState("");
18
- const inputRef = useRef(null);
19
- const displayValue = formatPan(value);
20
- const handleChange = useCallback((v) => {
21
- if (!enabled)
22
- return;
23
- onChange(v);
24
- }, [enabled, onChange]);
25
- const startEditing = useCallback(() => {
26
- setEditText(String(value));
27
- setIsEditing(true);
28
- queueMicrotask(() => inputRef.current?.select());
29
- }, [value]);
30
- const commitEdit = useCallback(() => {
31
- setIsEditing(false);
32
- const parsed = Number.parseFloat(editText);
33
- if (Number.isFinite(parsed)) {
34
- onChange(Math.min(Math.max(parsed, min), max));
35
- }
36
- }, [editText, min, max, onChange]);
37
- const handleEditKeyDown = useCallback((e) => {
38
- if (e.key === "Enter") {
39
- e.preventDefault();
40
- commitEdit();
41
- }
42
- else if (e.key === "Escape") {
43
- e.preventDefault();
44
- setIsEditing(false);
45
- }
46
- }, [commitEdit]);
47
- const disabled = !enabled;
48
- return (_jsxs("div", { className: `audio-control${disabled ? " audio-control--disabled" : ""}`, title: "-1 full left, 1 full right.", children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: enabled, onChange: (e) => onToggle(e.target.checked) }), _jsx("span", { className: "control-label", id: labelId, children: "Pan" }), _jsx(SnappableSlider, { min: min, max: max, value: value, skew: preset.skew ?? 1, defaultValue: defaultValue, ticks: preset.ticks ?? [], disabled: disabled, labelId: labelId, valueText: displayValue, onChange: handleChange }), isEditing ? (_jsx("input", { ref: inputRef, type: "text", className: "control-output control-output--editing", value: editText, onChange: (e) => setEditText(e.target.value), onBlur: commitEdit, onKeyDown: handleEditKeyDown })) : (_jsx("button", { type: "button", className: "control-output", onClick: startEditing, children: displayValue }))] }));
49
- }
50
- export const PanControl = memo(PanControlInner);
@@ -1,10 +0,0 @@
1
- interface PlaybackRateControlProps {
2
- value: number;
3
- defaultValue: number;
4
- enabled: boolean;
5
- onChange: (value: number) => void;
6
- onToggle: (enabled: boolean) => void;
7
- }
8
- declare function PlaybackRateControlInner({ value, defaultValue, enabled, onChange, onToggle, }: PlaybackRateControlProps): import("react/jsx-runtime").JSX.Element;
9
- export declare const PlaybackRateControl: import("react").MemoExoticComponent<typeof PlaybackRateControlInner>;
10
- export {};
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useId, useRef, useState } from "react";
3
- import { presets } from "../audio/utils";
4
- import { SnappableSlider } from "./SnappableSlider";
5
- function PlaybackRateControlInner({ value, defaultValue, enabled, onChange, onToggle, }) {
6
- const preset = presets.playbackRate;
7
- const min = preset.min ?? -4;
8
- const max = preset.max ?? 4;
9
- const labelId = useId();
10
- const [isEditing, setIsEditing] = useState(false);
11
- const [editText, setEditText] = useState("");
12
- const inputRef = useRef(null);
13
- const displayValue = `${value.toFixed(2)}x`;
14
- const handleChange = useCallback((v) => {
15
- if (!enabled)
16
- return;
17
- onChange(v);
18
- }, [enabled, onChange]);
19
- const startEditing = useCallback(() => {
20
- setEditText(String(value));
21
- setIsEditing(true);
22
- queueMicrotask(() => inputRef.current?.select());
23
- }, [value]);
24
- const commitEdit = useCallback(() => {
25
- setIsEditing(false);
26
- const parsed = Number.parseFloat(editText);
27
- if (Number.isFinite(parsed)) {
28
- onChange(Math.min(Math.max(parsed, min), max));
29
- }
30
- }, [editText, min, max, onChange]);
31
- const handleEditKeyDown = useCallback((e) => {
32
- if (e.key === "Enter") {
33
- e.preventDefault();
34
- commitEdit();
35
- }
36
- else if (e.key === "Escape") {
37
- e.preventDefault();
38
- setIsEditing(false);
39
- }
40
- }, [commitEdit]);
41
- const disabled = !enabled;
42
- return (_jsxs("div", { className: `audio-control${disabled ? " audio-control--disabled" : ""}`, title: "Playback speed. Negative for reverse.", children: [_jsx("input", { type: "checkbox", className: "control-toggle", checked: enabled, onChange: (e) => onToggle(e.target.checked) }), _jsx("span", { className: "control-label", id: labelId, children: "Rate" }), _jsx(SnappableSlider, { min: min, max: max, value: value, skew: preset.skew ?? 1, defaultValue: defaultValue, enableSnap: true, snaps: preset.snaps ?? [], ticks: preset.ticks ?? [], disabled: disabled, labelId: labelId, valueText: displayValue, onChange: handleChange }), isEditing ? (_jsx("input", { ref: inputRef, type: "text", className: "control-output control-output--editing", value: editText, onChange: (e) => setEditText(e.target.value), onBlur: commitEdit, onKeyDown: handleEditKeyDown })) : (_jsx("button", { type: "button", className: "control-output", onClick: startEditing, children: displayValue }))] }));
43
- }
44
- export const PlaybackRateControl = memo(PlaybackRateControlInner);
@@ -1,13 +0,0 @@
1
- export interface PlayheadSliderProps {
2
- /** Current playhead position in samples. */
3
- value: number;
4
- /** Audio duration in seconds (null when no audio loaded). */
5
- audioDuration: number | null;
6
- /** Whether playback is active (started/paused). */
7
- disabled?: boolean;
8
- /** Called when the user seeks to a new position (value in samples). */
9
- onChange: (samplePosition: number) => void;
10
- }
11
- declare function PlayheadSliderInner({ value, audioDuration, disabled, onChange, }: PlayheadSliderProps): import("react/jsx-runtime").JSX.Element;
12
- export declare const PlayheadSlider: import("react").MemoExoticComponent<typeof PlayheadSliderInner>;
13
- export {};
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useId } from "react";
3
- import { SAMPLE_RATE } from "../controls/controlDefs";
4
- import { SnappableSlider } from "./SnappableSlider";
5
- function formatTime(seconds) {
6
- const m = Math.floor(seconds / 60);
7
- const s = seconds % 60;
8
- return `${m}:${s.toFixed(2).padStart(5, "0")}`;
9
- }
10
- function PlayheadSliderInner({ value, audioDuration, disabled = false, onChange, }) {
11
- const labelId = useId();
12
- const maxSamples = audioDuration != null ? audioDuration * SAMPLE_RATE : 0;
13
- const currentSeconds = value / SAMPLE_RATE;
14
- const durationSeconds = audioDuration ?? 0;
15
- const handleChange = useCallback((v) => {
16
- onChange(Math.floor(v));
17
- }, [onChange]);
18
- return (_jsxs("div", { className: "playhead-slider", children: [_jsx("span", { className: "playhead-label", id: labelId, children: "Playhead" }), _jsx(SnappableSlider, { min: 0, max: maxSamples, value: value, disabled: disabled || maxSamples === 0, labelId: labelId, valueText: formatTime(currentSeconds), onChange: handleChange }), _jsxs("span", { className: "playhead-time", children: [formatTime(currentSeconds), " / ", formatTime(durationSeconds)] })] }));
19
- }
20
- export const PlayheadSlider = memo(PlayheadSliderInner);
@@ -1,18 +0,0 @@
1
- export interface SnappableSliderProps {
2
- min: number;
3
- max: number;
4
- value: number;
5
- skew?: number;
6
- step?: number;
7
- defaultValue?: number;
8
- enableSnap?: boolean;
9
- snaps?: number[];
10
- ticks?: number[];
11
- logarithmic?: boolean;
12
- disabled?: boolean;
13
- labelId?: string;
14
- valueText?: string;
15
- formatTick?: (value: number) => string;
16
- onChange?: (value: number) => void;
17
- }
18
- export declare function SnappableSlider({ min, max, value, skew, step, defaultValue, enableSnap, snaps, ticks, logarithmic, disabled, labelId, valueText, formatTick, onChange, }: SnappableSliderProps): import("react/jsx-runtime").JSX.Element;