@nice2dev/ui-audio 0.1.0

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 (401) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +21 -0
  3. package/README.md +175 -0
  4. package/dist/assets/pitchWorker-BgAp5Z97.js +1 -0
  5. package/dist/assets/scoringWorker-B1PkYu_m.js +1 -0
  6. package/dist/config/noteSoundSets.d.ts +29 -0
  7. package/dist/config/noteSoundSets.d.ts.map +1 -0
  8. package/dist/constants/audioColors.d.ts +2 -0
  9. package/dist/constants/audioColors.d.ts.map +1 -0
  10. package/dist/constants/debugKaraoke.d.ts +20 -0
  11. package/dist/constants/debugKaraoke.d.ts.map +1 -0
  12. package/dist/constants/karaokeScoringConfig.d.ts +18 -0
  13. package/dist/constants/karaokeScoringConfig.d.ts.map +1 -0
  14. package/dist/constants/playerColors.d.ts +5 -0
  15. package/dist/constants/playerColors.d.ts.map +1 -0
  16. package/dist/constants/ui.d.ts +3 -0
  17. package/dist/constants/ui.d.ts.map +1 -0
  18. package/dist/core/i18n.d.ts +11 -0
  19. package/dist/core/i18n.d.ts.map +1 -0
  20. package/dist/dmx/DmxChannelControls.d.ts +14 -0
  21. package/dist/dmx/DmxChannelControls.d.ts.map +1 -0
  22. package/dist/dmx/DmxEditor.d.ts +13 -0
  23. package/dist/dmx/DmxEditor.d.ts.map +1 -0
  24. package/dist/dmx/dmxService.d.ts +20 -0
  25. package/dist/dmx/dmxService.d.ts.map +1 -0
  26. package/dist/editor/AudioClipBox.d.ts +9 -0
  27. package/dist/editor/AudioClipBox.d.ts.map +1 -0
  28. package/dist/editor/AudioClipInfo.d.ts +7 -0
  29. package/dist/editor/AudioClipInfo.d.ts.map +1 -0
  30. package/dist/editor/AudioEditorPianoRoll.d.ts +20 -0
  31. package/dist/editor/AudioEditorPianoRoll.d.ts.map +1 -0
  32. package/dist/editor/AudioEditorPianoRollContainer.d.ts +20 -0
  33. package/dist/editor/AudioEditorPianoRollContainer.d.ts.map +1 -0
  34. package/dist/editor/AudioLayerDetails.d.ts +10 -0
  35. package/dist/editor/AudioLayerDetails.d.ts.map +1 -0
  36. package/dist/editor/AudioLayerDetailsContainer.d.ts +10 -0
  37. package/dist/editor/AudioLayerDetailsContainer.d.ts.map +1 -0
  38. package/dist/editor/AudioLayersNavContainer.d.ts +9 -0
  39. package/dist/editor/AudioLayersNavContainer.d.ts.map +1 -0
  40. package/dist/editor/AudioMiniMap.d.ts +11 -0
  41. package/dist/editor/AudioMiniMap.d.ts.map +1 -0
  42. package/dist/editor/AudioMiniMapContainer.d.ts +10 -0
  43. package/dist/editor/AudioMiniMapContainer.d.ts.map +1 -0
  44. package/dist/editor/AudioSourceDetails.d.ts +12 -0
  45. package/dist/editor/AudioSourceDetails.d.ts.map +1 -0
  46. package/dist/editor/AudioTimeline.d.ts +22 -0
  47. package/dist/editor/AudioTimeline.d.ts.map +1 -0
  48. package/dist/editor/AudioTimelineContainer.d.ts +18 -0
  49. package/dist/editor/AudioTimelineContainer.d.ts.map +1 -0
  50. package/dist/editor/AudioTimelineNavContainer.d.ts +14 -0
  51. package/dist/editor/AudioTimelineNavContainer.d.ts.map +1 -0
  52. package/dist/editor/CCLane.d.ts +23 -0
  53. package/dist/editor/CCLane.d.ts.map +1 -0
  54. package/dist/editor/CCLaneSelector.d.ts +14 -0
  55. package/dist/editor/CCLaneSelector.d.ts.map +1 -0
  56. package/dist/editor/PianoRoll.d.ts +14 -0
  57. package/dist/editor/PianoRoll.d.ts.map +1 -0
  58. package/dist/editor/Waveform.d.ts +9 -0
  59. package/dist/editor/Waveform.d.ts.map +1 -0
  60. package/dist/editor/editorDisplayModes.d.ts +37 -0
  61. package/dist/editor/editorDisplayModes.d.ts.map +1 -0
  62. package/dist/editor/editorIO.d.ts +11 -0
  63. package/dist/editor/editorIO.d.ts.map +1 -0
  64. package/dist/editor/hooks/index.d.ts +7 -0
  65. package/dist/editor/hooks/index.d.ts.map +1 -0
  66. package/dist/editor/hooks/useAutoSave.d.ts +13 -0
  67. package/dist/editor/hooks/useAutoSave.d.ts.map +1 -0
  68. package/dist/editor/hooks/usePlaybackEngine.d.ts +35 -0
  69. package/dist/editor/hooks/usePlaybackEngine.d.ts.map +1 -0
  70. package/dist/editor/hooks/useProjectCRUD.d.ts +45 -0
  71. package/dist/editor/hooks/useProjectCRUD.d.ts.map +1 -0
  72. package/dist/editor/hooks/useRecording.d.ts +46 -0
  73. package/dist/editor/hooks/useRecording.d.ts.map +1 -0
  74. package/dist/editor/nav/AudioLayersNav.d.ts +9 -0
  75. package/dist/editor/nav/AudioLayersNav.d.ts.map +1 -0
  76. package/dist/editor/nav/AudioProjectSectionNav.d.ts +12 -0
  77. package/dist/editor/nav/AudioProjectSectionNav.d.ts.map +1 -0
  78. package/dist/editor/nav/AudioTimelineNav.d.ts +14 -0
  79. package/dist/editor/nav/AudioTimelineNav.d.ts.map +1 -0
  80. package/dist/editor/nav/SaveLoadControls.d.ts +9 -0
  81. package/dist/editor/nav/SaveLoadControls.d.ts.map +1 -0
  82. package/dist/editor/panels/AdvancedEditingPanel.d.ts +30 -0
  83. package/dist/editor/panels/AdvancedEditingPanel.d.ts.map +1 -0
  84. package/dist/editor/panels/ArpeggiatorPanel.d.ts +12 -0
  85. package/dist/editor/panels/ArpeggiatorPanel.d.ts.map +1 -0
  86. package/dist/editor/panels/CCAutomationLaneEditor.d.ts +19 -0
  87. package/dist/editor/panels/CCAutomationLaneEditor.d.ts.map +1 -0
  88. package/dist/editor/panels/DisplayModeSelector.d.ts +9 -0
  89. package/dist/editor/panels/DisplayModeSelector.d.ts.map +1 -0
  90. package/dist/editor/panels/EditorPanels.d.ts +66 -0
  91. package/dist/editor/panels/EditorPanels.d.ts.map +1 -0
  92. package/dist/editor/panels/LFOPanel.d.ts +12 -0
  93. package/dist/editor/panels/LFOPanel.d.ts.map +1 -0
  94. package/dist/editor/panels/LayerTrack.d.ts +17 -0
  95. package/dist/editor/panels/LayerTrack.d.ts.map +1 -0
  96. package/dist/editor/panels/ProjectPanel.d.ts +23 -0
  97. package/dist/editor/panels/ProjectPanel.d.ts.map +1 -0
  98. package/dist/editor/panels/SectionPanel.d.ts +11 -0
  99. package/dist/editor/panels/SectionPanel.d.ts.map +1 -0
  100. package/dist/editor/panels/StepSequencerPanel.d.ts +8 -0
  101. package/dist/editor/panels/StepSequencerPanel.d.ts.map +1 -0
  102. package/dist/editor/useEditorRecording.d.ts +45 -0
  103. package/dist/editor/useEditorRecording.d.ts.map +1 -0
  104. package/dist/editor/useEditorTrack.d.ts +71 -0
  105. package/dist/editor/useEditorTrack.d.ts.map +1 -0
  106. package/dist/effects/NoteParticles.d.ts +2 -0
  107. package/dist/effects/NoteParticles.d.ts.map +1 -0
  108. package/dist/effects/NoteRiver.d.ts +15 -0
  109. package/dist/effects/NoteRiver.d.ts.map +1 -0
  110. package/dist/effects/noteThemeColors.d.ts +14 -0
  111. package/dist/effects/noteThemeColors.d.ts.map +1 -0
  112. package/dist/engine/audioContext.d.ts +12 -0
  113. package/dist/engine/audioContext.d.ts.map +1 -0
  114. package/dist/engine/audioKeyboard.d.ts +28 -0
  115. package/dist/engine/audioKeyboard.d.ts.map +1 -0
  116. package/dist/engine/audioLayerDetails.d.ts +13 -0
  117. package/dist/engine/audioLayerDetails.d.ts.map +1 -0
  118. package/dist/engine/audioPlaybackEngine.d.ts +186 -0
  119. package/dist/engine/audioPlaybackEngine.d.ts.map +1 -0
  120. package/dist/engine/audioProject.d.ts +10 -0
  121. package/dist/engine/audioProject.d.ts.map +1 -0
  122. package/dist/engine/audioSource.d.ts +38 -0
  123. package/dist/engine/audioSource.d.ts.map +1 -0
  124. package/dist/engine/audioTimeline.d.ts +54 -0
  125. package/dist/engine/audioTimeline.d.ts.map +1 -0
  126. package/dist/engine/audioUtils.d.ts +3 -0
  127. package/dist/engine/audioUtils.d.ts.map +1 -0
  128. package/dist/engine/generate-pitch-points.d.ts +2 -0
  129. package/dist/engine/generate-pitch-points.d.ts.map +1 -0
  130. package/dist/engine/instrumentPresets.d.ts +13 -0
  131. package/dist/engine/instrumentPresets.d.ts.map +1 -0
  132. package/dist/engine/pitch-worklet-processor.d.ts +11 -0
  133. package/dist/engine/pitch-worklet-processor.d.ts.map +1 -0
  134. package/dist/engine/pitch_client.d.ts +16 -0
  135. package/dist/engine/pitch_client.d.ts.map +1 -0
  136. package/dist/engine/recording.d.ts +31 -0
  137. package/dist/engine/recording.d.ts.map +1 -0
  138. package/dist/engine/simpleSynth.d.ts +46 -0
  139. package/dist/engine/simpleSynth.d.ts.map +1 -0
  140. package/dist/hooks/useCCAutomation.d.ts +36 -0
  141. package/dist/hooks/useCCAutomation.d.ts.map +1 -0
  142. package/dist/hooks/useStepSequencer.d.ts +48 -0
  143. package/dist/hooks/useStepSequencer.d.ts.map +1 -0
  144. package/dist/index.cjs +73 -0
  145. package/dist/index.d.ts +101 -0
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.mjs +13179 -0
  148. package/dist/karaoke/AudioPitchAnalyzer.d.ts +25 -0
  149. package/dist/karaoke/AudioPitchAnalyzer.d.ts.map +1 -0
  150. package/dist/karaoke/BarFillEditor.d.ts +14 -0
  151. package/dist/karaoke/BarFillEditor.d.ts.map +1 -0
  152. package/dist/karaoke/KaraokeLyrics.d.ts +9 -0
  153. package/dist/karaoke/KaraokeLyrics.d.ts.map +1 -0
  154. package/dist/karaoke/KaraokeTimeline.d.ts +21 -0
  155. package/dist/karaoke/KaraokeTimeline.d.ts.map +1 -0
  156. package/dist/karaoke/karaokeTimelineTypes.d.ts +77 -0
  157. package/dist/karaoke/karaokeTimelineTypes.d.ts.map +1 -0
  158. package/dist/karaoke/rendering/fontCatalog.d.ts +30 -0
  159. package/dist/karaoke/rendering/fontCatalog.d.ts.map +1 -0
  160. package/dist/karaoke/rendering/glossyBarCaps.d.ts +57 -0
  161. package/dist/karaoke/rendering/glossyBarCaps.d.ts.map +1 -0
  162. package/dist/karaoke/rendering/glossyBarPatterns.d.ts +16 -0
  163. package/dist/karaoke/rendering/glossyBarPatterns.d.ts.map +1 -0
  164. package/dist/karaoke/rendering/glossyBarRenderer.d.ts +65 -0
  165. package/dist/karaoke/rendering/glossyBarRenderer.d.ts.map +1 -0
  166. package/dist/karaoke/rendering/karaokeAnimations.d.ts +25 -0
  167. package/dist/karaoke/rendering/karaokeAnimations.d.ts.map +1 -0
  168. package/dist/karaoke/rendering/karaokeDisplaySettings.d.ts +65 -0
  169. package/dist/karaoke/rendering/karaokeDisplaySettings.d.ts.map +1 -0
  170. package/dist/karaoke/rendering/karaokeLyrics.d.ts +54 -0
  171. package/dist/karaoke/rendering/karaokeLyrics.d.ts.map +1 -0
  172. package/dist/karaoke/rendering/karaokeNoteParsing.d.ts +20 -0
  173. package/dist/karaoke/rendering/karaokeNoteParsing.d.ts.map +1 -0
  174. package/dist/karaoke/rendering/karaokeSettings.d.ts +143 -0
  175. package/dist/karaoke/rendering/karaokeSettings.d.ts.map +1 -0
  176. package/dist/karaoke/rendering/karaokeTimeline.d.ts +8 -0
  177. package/dist/karaoke/rendering/karaokeTimeline.d.ts.map +1 -0
  178. package/dist/karaoke/rendering/karaokeTimelineRenderer.d.ts +45 -0
  179. package/dist/karaoke/rendering/karaokeTimelineRenderer.d.ts.map +1 -0
  180. package/dist/karaoke/rendering/karaokeTimelineTypes.d.ts +32 -0
  181. package/dist/karaoke/rendering/karaokeTimelineTypes.d.ts.map +1 -0
  182. package/dist/karaoke/rendering/padNotePlayer.d.ts +73 -0
  183. package/dist/karaoke/rendering/padNotePlayer.d.ts.map +1 -0
  184. package/dist/karaoke/rendering/textureCache.d.ts +32 -0
  185. package/dist/karaoke/rendering/textureCache.d.ts.map +1 -0
  186. package/dist/karaoke/rendering/textureCatalog.d.ts +27 -0
  187. package/dist/karaoke/rendering/textureCatalog.d.ts.map +1 -0
  188. package/dist/karaokeEditor/KaraokeEditorManager.d.ts +21 -0
  189. package/dist/karaokeEditor/KaraokeEditorManager.d.ts.map +1 -0
  190. package/dist/karaokeEditor/KaraokePhaserRenderer.d.ts +11 -0
  191. package/dist/karaokeEditor/KaraokePhaserRenderer.d.ts.map +1 -0
  192. package/dist/midi/midiSeedGenerator.d.ts +45 -0
  193. package/dist/midi/midiSeedGenerator.d.ts.map +1 -0
  194. package/dist/midi/oxygen25Profile.d.ts +42 -0
  195. package/dist/midi/oxygen25Profile.d.ts.map +1 -0
  196. package/dist/midi/useMidiLearn.d.ts +94 -0
  197. package/dist/midi/useMidiLearn.d.ts.map +1 -0
  198. package/dist/midi/useOxygen25.d.ts +90 -0
  199. package/dist/midi/useOxygen25.d.ts.map +1 -0
  200. package/dist/midi/useWebMidi.d.ts +60 -0
  201. package/dist/midi/useWebMidi.d.ts.map +1 -0
  202. package/dist/models/editor/audioTypes.d.ts +35 -0
  203. package/dist/models/editor/audioTypes.d.ts.map +1 -0
  204. package/dist/models/editor/fxTypes.d.ts +9 -0
  205. package/dist/models/editor/fxTypes.d.ts.map +1 -0
  206. package/dist/models/editor/midiTypes.d.ts +15 -0
  207. package/dist/models/editor/midiTypes.d.ts.map +1 -0
  208. package/dist/models/editor/timelineTypes.d.ts +11 -0
  209. package/dist/models/editor/timelineTypes.d.ts.map +1 -0
  210. package/dist/models/game/modelsGame.d.ts +12 -0
  211. package/dist/models/game/modelsGame.d.ts.map +1 -0
  212. package/dist/models/modelsAiAudio.d.ts +121 -0
  213. package/dist/models/modelsAiAudio.d.ts.map +1 -0
  214. package/dist/models/modelsAiVideo.d.ts +75 -0
  215. package/dist/models/modelsAiVideo.d.ts.map +1 -0
  216. package/dist/models/modelsAudio.d.ts +160 -0
  217. package/dist/models/modelsAudio.d.ts.map +1 -0
  218. package/dist/models/modelsDmx.d.ts +75 -0
  219. package/dist/models/modelsDmx.d.ts.map +1 -0
  220. package/dist/models/modelsEditor.d.ts +112 -0
  221. package/dist/models/modelsEditor.d.ts.map +1 -0
  222. package/dist/models/modelsKaraoke.d.ts +75 -0
  223. package/dist/models/modelsKaraoke.d.ts.map +1 -0
  224. package/dist/models/modelsMusicPlatform.d.ts +8 -0
  225. package/dist/models/modelsMusicPlatform.d.ts.map +1 -0
  226. package/dist/models/modelsPlatforms.d.ts +52 -0
  227. package/dist/models/modelsPlatforms.d.ts.map +1 -0
  228. package/dist/models/modelsPlaylistManager.d.ts +197 -0
  229. package/dist/models/modelsPlaylistManager.d.ts.map +1 -0
  230. package/dist/models/modelsPlaylists.d.ts +97 -0
  231. package/dist/models/modelsPlaylists.d.ts.map +1 -0
  232. package/dist/player/GenericPlayer.d.ts +56 -0
  233. package/dist/player/GenericPlayer.d.ts.map +1 -0
  234. package/dist/player/GenericPlayerControls.d.ts +17 -0
  235. package/dist/player/GenericPlayerControls.d.ts.map +1 -0
  236. package/dist/player/GenericPlayerStage.d.ts +20 -0
  237. package/dist/player/GenericPlayerStage.d.ts.map +1 -0
  238. package/dist/player/GenericPlayerStageVisualizer.d.ts +32 -0
  239. package/dist/player/GenericPlayerStageVisualizer.d.ts.map +1 -0
  240. package/dist/player/GenericPlayerTrackList.d.ts +10 -0
  241. package/dist/player/GenericPlayerTrackList.d.ts.map +1 -0
  242. package/dist/player/YouTubePlayer.d.ts +13 -0
  243. package/dist/player/YouTubePlayer.d.ts.map +1 -0
  244. package/dist/player/nowPlayingAdapter.d.ts +19 -0
  245. package/dist/player/nowPlayingAdapter.d.ts.map +1 -0
  246. package/dist/player/visualizer/ModeSwitcher.d.ts +12 -0
  247. package/dist/player/visualizer/ModeSwitcher.d.ts.map +1 -0
  248. package/dist/player/visualizer/StageVisualizer.d.ts +23 -0
  249. package/dist/player/visualizer/StageVisualizer.d.ts.map +1 -0
  250. package/dist/player/visualizer/VuOverlay.d.ts +6 -0
  251. package/dist/player/visualizer/VuOverlay.d.ts.map +1 -0
  252. package/dist/player/visualizer/modes/BarsMode.d.ts +2 -0
  253. package/dist/player/visualizer/modes/BarsMode.d.ts.map +1 -0
  254. package/dist/player/visualizer/modes/BlobFlowMode.d.ts +11 -0
  255. package/dist/player/visualizer/modes/BlobFlowMode.d.ts.map +1 -0
  256. package/dist/player/visualizer/modes/ColorRipplesMode.d.ts +12 -0
  257. package/dist/player/visualizer/modes/ColorRipplesMode.d.ts.map +1 -0
  258. package/dist/player/visualizer/modes/CoverMode.d.ts +9 -0
  259. package/dist/player/visualizer/modes/CoverMode.d.ts.map +1 -0
  260. package/dist/player/visualizer/modes/CozyFireplaceMode.d.ts +14 -0
  261. package/dist/player/visualizer/modes/CozyFireplaceMode.d.ts.map +1 -0
  262. package/dist/player/visualizer/modes/EqualizerCircleMode.d.ts +2 -0
  263. package/dist/player/visualizer/modes/EqualizerCircleMode.d.ts.map +1 -0
  264. package/dist/player/visualizer/modes/GridMode.d.ts +2 -0
  265. package/dist/player/visualizer/modes/GridMode.d.ts.map +1 -0
  266. package/dist/player/visualizer/modes/ImageTornadoMode.d.ts +18 -0
  267. package/dist/player/visualizer/modes/ImageTornadoMode.d.ts.map +1 -0
  268. package/dist/player/visualizer/modes/LavaLampMode.d.ts +13 -0
  269. package/dist/player/visualizer/modes/LavaLampMode.d.ts.map +1 -0
  270. package/dist/player/visualizer/modes/NeonTrianglesMode.d.ts +11 -0
  271. package/dist/player/visualizer/modes/NeonTrianglesMode.d.ts.map +1 -0
  272. package/dist/player/visualizer/modes/OrbitalsMode.d.ts +2 -0
  273. package/dist/player/visualizer/modes/OrbitalsMode.d.ts.map +1 -0
  274. package/dist/player/visualizer/modes/PaletteMode.d.ts +2 -0
  275. package/dist/player/visualizer/modes/PaletteMode.d.ts.map +1 -0
  276. package/dist/player/visualizer/modes/ParticlesMode.d.ts +13 -0
  277. package/dist/player/visualizer/modes/ParticlesMode.d.ts.map +1 -0
  278. package/dist/player/visualizer/modes/PlasmaBallMode.d.ts +3 -0
  279. package/dist/player/visualizer/modes/PlasmaBallMode.d.ts.map +1 -0
  280. package/dist/player/visualizer/modes/RadialMode.d.ts +2 -0
  281. package/dist/player/visualizer/modes/RadialMode.d.ts.map +1 -0
  282. package/dist/player/visualizer/modes/RaysMode.d.ts +4 -0
  283. package/dist/player/visualizer/modes/RaysMode.d.ts.map +1 -0
  284. package/dist/player/visualizer/modes/RiftMode.d.ts +3 -0
  285. package/dist/player/visualizer/modes/RiftMode.d.ts.map +1 -0
  286. package/dist/player/visualizer/modes/RingsMode.d.ts +2 -0
  287. package/dist/player/visualizer/modes/RingsMode.d.ts.map +1 -0
  288. package/dist/player/visualizer/modes/SpectrumMode.d.ts +2 -0
  289. package/dist/player/visualizer/modes/SpectrumMode.d.ts.map +1 -0
  290. package/dist/player/visualizer/modes/StarfieldMode.d.ts +13 -0
  291. package/dist/player/visualizer/modes/StarfieldMode.d.ts.map +1 -0
  292. package/dist/player/visualizer/modes/WaveformMode.d.ts +2 -0
  293. package/dist/player/visualizer/modes/WaveformMode.d.ts.map +1 -0
  294. package/dist/player/visualizer/types.d.ts +3 -0
  295. package/dist/player/visualizer/types.d.ts.map +1 -0
  296. package/dist/player/visualizer/useLocalStorageState.d.ts +2 -0
  297. package/dist/player/visualizer/useLocalStorageState.d.ts.map +1 -0
  298. package/dist/playlist/DynamicRuleEditor.d.ts +11 -0
  299. package/dist/playlist/DynamicRuleEditor.d.ts.map +1 -0
  300. package/dist/playlist/GenericPlaylist.d.ts +22 -0
  301. package/dist/playlist/GenericPlaylist.d.ts.map +1 -0
  302. package/dist/playlist/GenericPlaylistItem.d.ts +41 -0
  303. package/dist/playlist/GenericPlaylistItem.d.ts.map +1 -0
  304. package/dist/playlist/PlaylistBrowser.d.ts +24 -0
  305. package/dist/playlist/PlaylistBrowser.d.ts.map +1 -0
  306. package/dist/playlist/PlaylistDualPane.d.ts +17 -0
  307. package/dist/playlist/PlaylistDualPane.d.ts.map +1 -0
  308. package/dist/playlist/PlaylistGridView.d.ts +12 -0
  309. package/dist/playlist/PlaylistGridView.d.ts.map +1 -0
  310. package/dist/playlist/PlaylistList.d.ts +23 -0
  311. package/dist/playlist/PlaylistList.d.ts.map +1 -0
  312. package/dist/playlist/PlaylistOverview.d.ts +14 -0
  313. package/dist/playlist/PlaylistOverview.d.ts.map +1 -0
  314. package/dist/playlist/PlaylistSearchBar.d.ts +22 -0
  315. package/dist/playlist/PlaylistSearchBar.d.ts.map +1 -0
  316. package/dist/playlist/PlaylistSidebar.d.ts +25 -0
  317. package/dist/playlist/PlaylistSidebar.d.ts.map +1 -0
  318. package/dist/playlist/PlaylistTagEditor.d.ts +15 -0
  319. package/dist/playlist/PlaylistTagEditor.d.ts.map +1 -0
  320. package/dist/playlist/PlaylistTrackList.d.ts +26 -0
  321. package/dist/playlist/PlaylistTrackList.d.ts.map +1 -0
  322. package/dist/playlist/useLocalPlaylists.d.ts +17 -0
  323. package/dist/playlist/useLocalPlaylists.d.ts.map +1 -0
  324. package/dist/ui-audio.css +1 -0
  325. package/dist/utils/BaseStreamClient.d.ts +64 -0
  326. package/dist/utils/BaseStreamClient.d.ts.map +1 -0
  327. package/dist/utils/arpeggiator.d.ts +49 -0
  328. package/dist/utils/arpeggiator.d.ts.map +1 -0
  329. package/dist/utils/articulationEngine.d.ts +69 -0
  330. package/dist/utils/articulationEngine.d.ts.map +1 -0
  331. package/dist/utils/audioEditorUtils.d.ts +2 -0
  332. package/dist/utils/audioEditorUtils.d.ts.map +1 -0
  333. package/dist/utils/audioFxUtils.d.ts +6 -0
  334. package/dist/utils/audioFxUtils.d.ts.map +1 -0
  335. package/dist/utils/audioMidiUtils.d.ts +18 -0
  336. package/dist/utils/audioMidiUtils.d.ts.map +1 -0
  337. package/dist/utils/audioPitchAlgorithms.d.ts +3 -0
  338. package/dist/utils/audioPitchAlgorithms.d.ts.map +1 -0
  339. package/dist/utils/audioPitchAnalyzeFile.d.ts +26 -0
  340. package/dist/utils/audioPitchAnalyzeFile.d.ts.map +1 -0
  341. package/dist/utils/audioTimelineUtils.d.ts +5 -0
  342. package/dist/utils/audioTimelineUtils.d.ts.map +1 -0
  343. package/dist/utils/ccAutomation.d.ts +51 -0
  344. package/dist/utils/ccAutomation.d.ts.map +1 -0
  345. package/dist/utils/chordScale.d.ts +47 -0
  346. package/dist/utils/chordScale.d.ts.map +1 -0
  347. package/dist/utils/clipLauncher.d.ts +97 -0
  348. package/dist/utils/clipLauncher.d.ts.map +1 -0
  349. package/dist/utils/colorResolver.d.ts +12 -0
  350. package/dist/utils/colorResolver.d.ts.map +1 -0
  351. package/dist/utils/crepeStreaming.d.ts +21 -0
  352. package/dist/utils/crepeStreaming.d.ts.map +1 -0
  353. package/dist/utils/drawTool.d.ts +31 -0
  354. package/dist/utils/drawTool.d.ts.map +1 -0
  355. package/dist/utils/envelopeFollower.d.ts +46 -0
  356. package/dist/utils/envelopeFollower.d.ts.map +1 -0
  357. package/dist/utils/gameAudio.d.ts +237 -0
  358. package/dist/utils/gameAudio.d.ts.map +1 -0
  359. package/dist/utils/grooveTemplates.d.ts +69 -0
  360. package/dist/utils/grooveTemplates.d.ts.map +1 -0
  361. package/dist/utils/karaokeHelpers.d.ts +61 -0
  362. package/dist/utils/karaokeHelpers.d.ts.map +1 -0
  363. package/dist/utils/karaokeMetadata.d.ts +27 -0
  364. package/dist/utils/karaokeMetadata.d.ts.map +1 -0
  365. package/dist/utils/karaokeScoring.d.ts +111 -0
  366. package/dist/utils/karaokeScoring.d.ts.map +1 -0
  367. package/dist/utils/latencyEstimate.d.ts +8 -0
  368. package/dist/utils/latencyEstimate.d.ts.map +1 -0
  369. package/dist/utils/lfoEngine.d.ts +55 -0
  370. package/dist/utils/lfoEngine.d.ts.map +1 -0
  371. package/dist/utils/librosaStreaming.d.ts +19 -0
  372. package/dist/utils/librosaStreaming.d.ts.map +1 -0
  373. package/dist/utils/logger.d.ts +31 -0
  374. package/dist/utils/logger.d.ts.map +1 -0
  375. package/dist/utils/macroSystem.d.ts +97 -0
  376. package/dist/utils/macroSystem.d.ts.map +1 -0
  377. package/dist/utils/musicPlayerUtils.d.ts +7 -0
  378. package/dist/utils/musicPlayerUtils.d.ts.map +1 -0
  379. package/dist/utils/padKaraokeSession.d.ts +50 -0
  380. package/dist/utils/padKaraokeSession.d.ts.map +1 -0
  381. package/dist/utils/songDataHelpers.d.ts +59 -0
  382. package/dist/utils/songDataHelpers.d.ts.map +1 -0
  383. package/dist/utils/stepSequencer.d.ts +62 -0
  384. package/dist/utils/stepSequencer.d.ts.map +1 -0
  385. package/dist/utils/undoRedoUtils.d.ts +5 -0
  386. package/dist/utils/undoRedoUtils.d.ts.map +1 -0
  387. package/dist/utils/vocalEffectsEngine.d.ts +64 -0
  388. package/dist/utils/vocalEffectsEngine.d.ts.map +1 -0
  389. package/dist/utils/vocalPerformanceMetrics.d.ts +117 -0
  390. package/dist/utils/vocalPerformanceMetrics.d.ts.map +1 -0
  391. package/dist/workers/pitchWorker.d.ts +11 -0
  392. package/dist/workers/pitchWorker.d.ts.map +1 -0
  393. package/dist/workers/scoringWorker.d.ts +71 -0
  394. package/dist/workers/scoringWorker.d.ts.map +1 -0
  395. package/dist/workers/usePitchWorker.d.ts +7 -0
  396. package/dist/workers/usePitchWorker.d.ts.map +1 -0
  397. package/dist/workers/useScoringWorker.d.ts +7 -0
  398. package/dist/workers/useScoringWorker.d.ts.map +1 -0
  399. package/dist/workers/useWorker.d.ts +12 -0
  400. package/dist/workers/useWorker.d.ts.map +1 -0
  401. package/package.json +84 -0
@@ -0,0 +1,41 @@
1
+ import { default as React } from 'react';
2
+ export type SourceKind = "youtube" | "tidal" | "spotify" | "hls" | "audio";
3
+ export interface PlaylistItemData {
4
+ id: string;
5
+ index: number;
6
+ artist: string;
7
+ title: string;
8
+ version?: string | undefined;
9
+ lp?: number;
10
+ sourcesAvailable?: SourceKind[];
11
+ }
12
+ export interface PlaylistItemDisplay {
13
+ allowVersion?: boolean;
14
+ dragHandleProps?: React.HTMLAttributes<HTMLButtonElement>;
15
+ }
16
+ export interface PlaylistItemCallbacks {
17
+ onChange: (patch: {
18
+ artist?: string;
19
+ title?: string;
20
+ version?: string | undefined;
21
+ }) => void;
22
+ onRemove: () => void;
23
+ onMoveUp: () => void;
24
+ onMoveDown: () => void;
25
+ onChangeLp?: (n: number) => void;
26
+ onSelectSource?: (kind: SourceKind) => void;
27
+ }
28
+ export interface PlaylistItemState {
29
+ readOnly?: boolean;
30
+ canMoveUp?: boolean;
31
+ canMoveDown?: boolean;
32
+ activeSource?: SourceKind;
33
+ }
34
+ export interface GenericPlaylistItemProps {
35
+ data: PlaylistItemData;
36
+ display: PlaylistItemDisplay;
37
+ callbacks: PlaylistItemCallbacks;
38
+ state: PlaylistItemState;
39
+ }
40
+ export declare const GenericPlaylistItem: React.FC<GenericPlaylistItemProps>;
41
+ //# sourceMappingURL=GenericPlaylistItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericPlaylistItem.d.ts","sourceRoot":"","sources":["../../src/playlist/GenericPlaylistItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAQjD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAK3E,MAAM,WAAW,gBAAgB;IAE7B,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC;AAKD,MAAM,WAAW,mBAAmB;IAEhC,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAC7D;AAKD,MAAM,WAAW,qBAAqB;IAElC,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAC;IAE7F,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CAC/C;AAKD,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B;AAKD,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAKD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAuPlE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { default as React } from 'react';
2
+ import { SongRecord, PlayerTrack } from '../models/modelsAudio';
3
+ import { SongDescriptorDto } from '../models/modelsPlaylists';
4
+ export interface PlaylistBrowserProps {
5
+ /** Render a library search component. Receives an onPick callback. */
6
+ renderLibrarySearch?: (props: {
7
+ placeholder: string;
8
+ onPick: (record: SongRecord) => void;
9
+ }) => React.ReactNode;
10
+ /** Render full search results. Receives query and onPick callback. */
11
+ renderLibrarySearchResult?: (props: {
12
+ query: string;
13
+ onPick: (record: SongRecord) => void;
14
+ }) => React.ReactNode;
15
+ /** Render library list. Receives action callbacks. */
16
+ renderLibraryList?: (props: {
17
+ onPlayNow: (tracks: PlayerTrack[]) => void;
18
+ onAddToQueue: (tracks: PlayerTrack[]) => void;
19
+ onAddDescriptors: (descs: SongDescriptorDto[]) => void;
20
+ }) => React.ReactNode;
21
+ }
22
+ export declare const PlaylistBrowser: React.FC<PlaylistBrowserProps>;
23
+ export default PlaylistBrowser;
24
+ //# sourceMappingURL=PlaylistBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistBrowser.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistBrowser.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,MAAM,WAAW,oBAAoB;IACjC,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAChH,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAChH,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;QAAC,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;QAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;CACzM;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuF1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ import { ManagedPlaylist, PlaylistTag, PlaylistTrack } from '../models/modelsPlaylistManager';
3
+ export interface PlaylistDualPaneProps {
4
+ playlists: ManagedPlaylist[];
5
+ tags: PlaylistTag[];
6
+ onCopyTracks: (sourceId: string, targetId: string, trackIds: string[]) => void;
7
+ onMoveTracks: (sourceId: string, targetId: string, trackIds: string[]) => void;
8
+ onRemoveTracks: (playlistId: string, trackIds: string[]) => void;
9
+ onReorderTracks: (playlistId: string, trackIds: string[]) => void;
10
+ onPlay: (track: PlaylistTrack) => void;
11
+ onTagTracks: (trackIds: string[], tagIds: string[]) => void;
12
+ initialLeftId?: string;
13
+ initialRightId?: string;
14
+ }
15
+ declare const PlaylistDualPane: React.FC<PlaylistDualPaneProps>;
16
+ export default PlaylistDualPane;
17
+ //# sourceMappingURL=PlaylistDualPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistDualPane.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistDualPane.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EACR,eAAe,EACf,WAAW,EACX,aAAa,EAKhB,MAAM,iCAAiC,CAAC;AAMzC,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/E,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/E,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AA0BD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAkTrD,CAAC;AAeF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { ManagedPlaylist, PlaylistTag, PlaylistTrack } from '../models/modelsPlaylistManager';
3
+ interface PlaylistGridViewProps {
4
+ playlist: ManagedPlaylist;
5
+ tags: PlaylistTag[];
6
+ onPlay: (track: PlaylistTrack) => void;
7
+ selectedTrackIds: Set<string>;
8
+ onSelectionChange: (ids: Set<string>) => void;
9
+ }
10
+ declare const _default: React.NamedExoticComponent<PlaylistGridViewProps>;
11
+ export default _default;
12
+ //# sourceMappingURL=PlaylistGridView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistGridView.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistGridView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EACR,eAAe,EACf,WAAW,EACX,aAAa,EAChB,MAAM,iCAAiC,CAAC;AAEzC,UAAU,qBAAqB;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CACjD;;AA4FD,wBAA4C"}
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ import { LocalPlaylist } from './useLocalPlaylists';
3
+ /** Music platform identifier for remote playlist sync */
4
+ export type MusicPlatform = 'tidal' | 'spotify' | 'youtube' | 'soundcloud';
5
+ export interface CreatePlaylistOnPlatformRequest {
6
+ platform: MusicPlatform;
7
+ name: string;
8
+ songs: unknown[];
9
+ }
10
+ export interface CreatePlaylistResult {
11
+ id?: string;
12
+ url?: string;
13
+ success: boolean;
14
+ }
15
+ type Props = {
16
+ selectedId?: string;
17
+ onSelect?: (p: LocalPlaylist) => void;
18
+ /** Optional sync to external platform API (e.g. TIDAL/Spotify) */
19
+ onCreateRemote?: (req: CreatePlaylistOnPlatformRequest) => Promise<CreatePlaylistResult>;
20
+ };
21
+ export declare const PlaylistList: React.FC<Props>;
22
+ export default PlaylistList;
23
+ //# sourceMappingURL=PlaylistList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistList.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistList.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAK5E,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,KAAK,GAAG;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,+BAA+B,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC5F,CAAC;AAOF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4DxC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { ManagedPlaylist, PlaylistFolder, PlaylistTag } from '../models/modelsPlaylistManager';
3
+ interface PlaylistOverviewProps {
4
+ playlists: ManagedPlaylist[];
5
+ folders: PlaylistFolder[];
6
+ tags: PlaylistTag[];
7
+ activeFolderId: string | null;
8
+ onSelectPlaylist: (id: string) => void;
9
+ onDeletePlaylist: (id: string) => void;
10
+ onDuplicatePlaylist: (id: string) => void;
11
+ }
12
+ declare const _default: React.NamedExoticComponent<PlaylistOverviewProps>;
13
+ export default _default;
14
+ //# sourceMappingURL=PlaylistOverview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistOverview.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,WAAW,EACd,MAAM,iCAAiC,CAAC;AAazC,UAAU,qBAAqB;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;;AAiID,wBAA4C"}
@@ -0,0 +1,22 @@
1
+ import { default as React } from 'react';
2
+ import { TrackSource } from '../models/modelsPlaylistManager';
3
+ export interface SearchResult {
4
+ id: string;
5
+ title: string;
6
+ artist: string;
7
+ album?: string;
8
+ duration?: number;
9
+ source: TrackSource;
10
+ externalId?: string;
11
+ imageUrl?: string;
12
+ }
13
+ export interface PlaylistSearchBarProps {
14
+ onSearch: (query: string, sources: TrackSource[]) => void;
15
+ results: SearchResult[];
16
+ isSearching: boolean;
17
+ onAddToPlaylist: (results: SearchResult[]) => void;
18
+ onPlayPreview?: (result: SearchResult) => void;
19
+ }
20
+ declare const PlaylistSearchBar: React.FC<PlaylistSearchBarProps>;
21
+ export default PlaylistSearchBar;
22
+ //# sourceMappingURL=PlaylistSearchBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistSearchBar.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistSearchBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAM9D,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1D,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAClD;AAkBD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsRvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ import { PlaylistFolder, ManagedPlaylist, PlaylistTag, ServiceConnection, PlaylistType } from '../models/modelsPlaylistManager';
3
+ import { MusicPlatform } from '../models/modelsMusicPlatform';
4
+ export interface PlaylistSidebarProps {
5
+ folders: PlaylistFolder[];
6
+ playlists: ManagedPlaylist[];
7
+ tags: PlaylistTag[];
8
+ services: ServiceConnection[];
9
+ activeFolderId: string | null;
10
+ activePlaylistId: string | null;
11
+ onSelectFolder: (folderId: string | null) => void;
12
+ onSelectPlaylist: (playlistId: string) => void;
13
+ onCreateFolder: (name: string, parentId: string | null) => void;
14
+ onRenameFolder: (id: string, name: string) => void;
15
+ onDeleteFolder: (id: string) => void;
16
+ onCreatePlaylist: (name: string, type: PlaylistType, folderId: string | null) => void;
17
+ onConnectService: (platform: MusicPlatform) => void;
18
+ onDisconnectService: (platform: MusicPlatform) => void;
19
+ onDragPlaylistToFolder?: (playlistId: string, folderId: string | null) => void;
20
+ collapsed?: boolean;
21
+ onToggleCollapse?: () => void;
22
+ }
23
+ declare const PlaylistSidebar: React.FC<PlaylistSidebarProps>;
24
+ export default PlaylistSidebar;
25
+ //# sourceMappingURL=PlaylistSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistSidebar.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistSidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,YAAY,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtF,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACpD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,sBAAsB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AA0BD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAydnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ import { PlaylistTag, PlaylistTrack } from '../models/modelsPlaylistManager';
3
+ export interface PlaylistTagEditorProps {
4
+ tags: PlaylistTag[];
5
+ onCreateTag: (name: string, color: string, icon?: string) => void;
6
+ onUpdateTag: (id: string, name: string, color: string, icon?: string) => void;
7
+ onDeleteTag: (id: string) => void;
8
+ /** Selected tracks to bulk-assign tags */
9
+ selectedTracks?: PlaylistTrack[];
10
+ onAssignTag?: (trackIds: string[], tagId: string) => void;
11
+ onUnassignTag?: (trackIds: string[], tagId: string) => void;
12
+ }
13
+ declare const PlaylistTagEditor: React.FC<PlaylistTagEditorProps>;
14
+ export default PlaylistTagEditor;
15
+ //# sourceMappingURL=PlaylistTagEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistTagEditor.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistTagEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAMlF,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9E,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAmBD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsVvD,CAAC;AAWF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { default as React } from 'react';
2
+ import { SortDirection, PlaylistTrack, PlaylistTag, SortField } from '../models/modelsPlaylistManager';
3
+ export interface PlaylistTrackListProps {
4
+ tracks: PlaylistTrack[];
5
+ tags: PlaylistTag[];
6
+ selectedTrackIds: Set<string>;
7
+ onSelectionChange: (ids: Set<string>) => void;
8
+ onPlay?: (track: PlaylistTrack) => void;
9
+ onRemove?: (trackIds: string[]) => void;
10
+ onReorder?: (trackIds: string[]) => void;
11
+ onTagTracks?: (trackIds: string[], tagIds: string[]) => void;
12
+ onRateTracks?: (trackIds: string[], rating: number) => void;
13
+ sortField: SortField;
14
+ sortDir: SortDirection;
15
+ onSortChange: (field: SortField, dir: SortDirection) => void;
16
+ filterText: string;
17
+ onFilterChange: (text: string) => void;
18
+ compact?: boolean;
19
+ draggable?: boolean;
20
+ onDragStart?: (trackIds: string[], e: React.DragEvent) => void;
21
+ dropTarget?: boolean;
22
+ onDrop?: (e: React.DragEvent) => void;
23
+ }
24
+ declare const PlaylistTrackList: React.FC<PlaylistTrackListProps>;
25
+ export default PlaylistTrackList;
26
+ //# sourceMappingURL=PlaylistTrackList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaylistTrackList.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistTrackList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAM7F,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;CACzC;AA2BD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAifvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { SongDescriptorDto } from '../models/modelsPlaylists';
2
+ export type LocalPlaylist = {
3
+ id: string;
4
+ name: string;
5
+ items: SongDescriptorDto[];
6
+ updatedAt: string;
7
+ };
8
+ export declare function useLocalPlaylists(): {
9
+ list: () => LocalPlaylist[];
10
+ get: (id: string) => LocalPlaylist;
11
+ create: (name: string) => LocalPlaylist;
12
+ rename: (id: string, name: string) => void;
13
+ remove: (id: string) => void;
14
+ replaceItems: (id: string, items: SongDescriptorDto[]) => void;
15
+ addItems: (id: string, items: SongDescriptorDto[]) => void;
16
+ };
17
+ //# sourceMappingURL=useLocalPlaylists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalPlaylists.d.ts","sourceRoot":"","sources":["../../src/playlist/useLocalPlaylists.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAiBF,wBAAgB,iBAAiB;;cAcf,MAAM;mBACD,MAAM;iBAMR,MAAM,QAAQ,MAAM;iBACpB,MAAM;uBACA,MAAM,SAAS,iBAAiB,EAAE;mBACtC,MAAM,SAAS,iBAAiB,EAAE;EAIxD"}
@@ -0,0 +1 @@
1
+ ._panelNarrow_se2i3_3{max-width:520px}._panelWide_se2i3_9{max-width:820px}._smallLabel_se2i3_19{font-size:12px}._noteText_se2i3_29{font-size:13px;color:#888}._buttonRow_se2i3_41{display:flex;gap:8px}._noteTextMargin_se2i3_49{font-size:13px;color:#888;margin-top:4px}._rangeW100_se2i3_63{width:100px}._zoomValue_se2i3_69{font-size:12px;min-width:35px}._selectW100_se2i3_77{width:100px}._inputW70_se2i3_83{width:70px}._masterVolGroup_se2i3_93{min-width:min(220px,100%)}._rangeW140_se2i3_99{width:140px}._volumeValue_se2i3_105{font-size:12px;width:42px;text-align:right}._selectW140_se2i3_115{width:140px}._freqGroup_se2i3_121{min-width:min(200px,100%)}._freqValue_se2i3_127{font-size:12px;width:60px;text-align:right}._narrowGroup_se2i3_137{min-width:min(170px,100%)}._rangeW120_se2i3_143{width:120px}._smallValue_se2i3_149{font-size:12px;width:40px;text-align:right}._presetDivider_se2i3_159{border-top:1px solid #444}._presetLabel_se2i3_165{font-size:11px;font-weight:600;color:#aaa}._presetBtn_se2i3_175{font-size:11px;padding:2px 8px}._deletePresetSelect_se2i3_183{width:140px;font-size:11px}._presetNameInput_se2i3_191{width:160px;font-size:11px}._savePresetBtn_se2i3_199{font-size:11px;padding:2px 10px}._countInAlert_se2i3_211{font-size:12px;color:#f57c00}._inputW80_se2i3_219{width:80px}._levelLabel_se2i3_225{font-size:12px;color:#555}._levelMeter_se2i3_233{position:relative;background:#f1f1f1;height:12px;border-radius:6px;overflow:hidden;width:80px}._levelBar_se2i3_249{position:absolute;left:0;top:0;bottom:0;transition:width 80ms linear}
@@ -0,0 +1,64 @@
1
+ export declare function resampleLinear(src: Float32Array, srcRate: number, dstRate: number): Float32Array;
2
+ export declare function floatTo16BitPCM(float32: Float32Array): Int16Array;
3
+ export interface BaseStreamOptions {
4
+ wsUrl: string;
5
+ chunkMs?: number;
6
+ onOpen?: () => void;
7
+ onClose?: (ev?: CloseEvent) => void;
8
+ onError?: (err: unknown) => void;
9
+ onSend?: (bytes: number) => void;
10
+ /** Called when the maximum number of reconnect attempts is exhausted (backend unavailable). */
11
+ onMaxReconnect?: () => void;
12
+ }
13
+ /**
14
+ * Abstract base for WebSocket audio streaming clients.
15
+ * Handles mic capture → resample → chunk → WS send pipeline.
16
+ *
17
+ * Subclasses override:
18
+ * - `get tag()` for log prefix
19
+ * - `handleWsMessage()` for parsing response payloads
20
+ * - `onMaxReconnect()` for fallback behavior (optional)
21
+ * - `get useWorklet()` to opt-in to AudioWorklet (default: true)
22
+ */
23
+ export declare abstract class BaseStreamClient {
24
+ protected ws?: WebSocket;
25
+ private sendQueue;
26
+ private maxQueue;
27
+ private reconnectTimer?;
28
+ private reconnectAttempts;
29
+ private maxReconnectAttempts;
30
+ protected mediaStream?: MediaStream;
31
+ protected audioCtx?: AudioContext;
32
+ private workletNode?;
33
+ private proc?;
34
+ private buffer;
35
+ private externalStream;
36
+ private usingWorklet;
37
+ protected closed: boolean;
38
+ protected started: boolean;
39
+ private chunksSent;
40
+ private chunksDropped;
41
+ private responsesReceived;
42
+ private lastStatusLog;
43
+ protected readonly opts: BaseStreamOptions;
44
+ constructor(opts: BaseStreamOptions);
45
+ /** Log prefix, e.g. "CrepeStreamClient" */
46
+ protected abstract get tag(): string;
47
+ /** Handle parsed WS message. Subclass must call onMessage etc. */
48
+ protected abstract handleWsMessage(data: string): void;
49
+ /** Called when max reconnect attempts exhausted. Override for fallback logic. */
50
+ protected onMaxReconnect(): void;
51
+ /** Whether to try AudioWorklet before falling back to ScriptProcessor */
52
+ protected get useWorklet(): boolean;
53
+ /** Path to the AudioWorklet processor module */
54
+ protected get workletPath(): string;
55
+ protected ts(): string;
56
+ protected connectWs(): void;
57
+ private handleAudioFrame;
58
+ private setupAudioNodes;
59
+ protected stopAudioNodes(): void;
60
+ start(): Promise<void>;
61
+ startWithMediaStream(stream: MediaStream): Promise<void>;
62
+ stop(): void;
63
+ }
64
+ //# sourceMappingURL=BaseStreamClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStreamClient.d.ts","sourceRoot":"","sources":["../../src/utils/BaseStreamClient.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAahG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAOjE;AAID,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAOD;;;;;;;;;GASG;AACH,8BAAsB,gBAAgB;IAElC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAGjC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,IAAI,CAAC,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAG7B,SAAS,CAAC,MAAM,UAAS;IACzB,SAAS,CAAC,OAAO,UAAS;IAG1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,aAAa,CAAK;IAE1B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;gBAE/B,IAAI,EAAE,iBAAiB;IAMnC,2CAA2C;IAC3C,SAAS,CAAC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC;IAErC,kEAAkE;IAClE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAEtD,iFAAiF;IACjF,SAAS,CAAC,cAAc,IAAI,IAAI;IAKhC,yEAAyE;IACzE,SAAS,KAAK,UAAU,IAAI,OAAO,CAElC;IAED,gDAAgD;IAChD,SAAS,KAAK,WAAW,IAAI,MAAM,CAElC;IAID,SAAS,CAAC,EAAE,IAAI,MAAM;IAMtB,SAAS,CAAC,SAAS,IAAI,IAAI;IAgF3B,OAAO,CAAC,gBAAgB;YAqEV,eAAe;IA+B7B,SAAS,CAAC,cAAc,IAAI,IAAI;IAmB1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,IAAI,IAAI,IAAI;CAiBf"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Arpeggiator engine — generates arpeggiated patterns from held notes.
3
+ * Supports multiple modes, octave range, rate, gate, and pattern variations.
4
+ */
5
+ export type ArpMode = 'up' | 'down' | 'updown' | 'downup' | 'random' | 'as-played' | 'chord';
6
+ export interface ArpConfig {
7
+ mode: ArpMode;
8
+ /** Octave range (1-4) */
9
+ octaves: number;
10
+ /** Rate in note divisions relative to BPM (e.g., '1/8', '1/16') */
11
+ rate: ArpRate;
12
+ /** Gate length as fraction of step duration (0-1) */
13
+ gate: number;
14
+ /** Velocity pattern (if null, uses original velocities) */
15
+ velocityPattern?: number[];
16
+ /** Swing amount (0-1) */
17
+ swing: number;
18
+ /** Number of repeats per note before advancing */
19
+ repeats: number;
20
+ /** Latch mode — keeps arp running after keys released */
21
+ latch: boolean;
22
+ }
23
+ export type ArpRate = '1/1' | '1/2' | '1/4' | '1/8' | '1/16' | '1/32' | '1/4T' | '1/8T' | '1/16T';
24
+ export interface ArpNote {
25
+ pitch: number;
26
+ velocity: number;
27
+ originalOrder: number;
28
+ }
29
+ export interface ArpEvent {
30
+ pitch: number;
31
+ velocity: number;
32
+ startTime: number;
33
+ duration: number;
34
+ step: number;
35
+ }
36
+ export declare const DEFAULT_ARP_CONFIG: ArpConfig;
37
+ /** Sort notes for the given arp mode and return the sequence */
38
+ export declare function buildArpSequence(heldNotes: ArpNote[], config: ArpConfig): ArpNote[];
39
+ /** Generate timed arp events from a sequence */
40
+ export declare function generateArpEvents(heldNotes: ArpNote[], config: ArpConfig, bpm: number, startTime?: number, cycleCount?: number): ArpEvent[];
41
+ /** Get available arp modes with descriptions */
42
+ export declare function getArpModes(): Array<{
43
+ mode: ArpMode;
44
+ label: string;
45
+ description: string;
46
+ }>;
47
+ /** Get available rates */
48
+ export declare function getArpRates(): ArpRate[];
49
+ //# sourceMappingURL=arpeggiator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arpeggiator.d.ts","sourceRoot":"","sources":["../../src/utils/arpeggiator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAElG,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAeD,eAAO,MAAM,kBAAkB,EAAE,SAQhC,CAAC;AAaF,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CAgDnF;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAAE,EACpB,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAU,EACrB,UAAU,GAAE,MAAU,GACrB,QAAQ,EAAE,CAoCZ;AAED,gDAAgD;AAChD,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAU1F;AAED,0BAA0B;AAC1B,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAEvC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Articulation Engine — per-note performance articulations.
3
+ * Supports legato, staccato, accent, glide/portamento, vibrato, and more.
4
+ */
5
+ export type ArticulationType = 'normal' | 'legato' | 'staccato' | 'staccatissimo' | 'accent' | 'marcato' | 'tenuto' | 'glide' | 'portamento' | 'vibrato' | 'tremolo' | 'trill' | 'bend' | 'slide-up' | 'slide-down' | 'palm-mute' | 'harmonic';
6
+ export interface ArticulationConfig {
7
+ type: ArticulationType;
8
+ /** Intensity/depth 0-1 */
9
+ intensity: number;
10
+ /** Rate in Hz (for vibrato, tremolo, trill) */
11
+ rate?: number;
12
+ /** Duration modifier (fraction of original, 0.1-2.0) */
13
+ durationScale?: number;
14
+ /** Velocity modifier (added, -64 to 64) */
15
+ velocityOffset?: number;
16
+ /** Glide/portamento time in ms */
17
+ glideTimeMs?: number;
18
+ /** Pitch bend range in semitones (for bends) */
19
+ bendSemitones?: number;
20
+ /** Trill interval in semitones */
21
+ trillInterval?: number;
22
+ }
23
+ export interface ArticulatedNote {
24
+ pitch: number;
25
+ velocity: number;
26
+ /** Start time in seconds */
27
+ startTime: number;
28
+ /** Duration in seconds */
29
+ duration: number;
30
+ /** Applied articulation */
31
+ articulation: ArticulationType;
32
+ /** Pitch envelope events (time, pitch pairs relative to start) */
33
+ pitchEnvelope?: Array<{
34
+ time: number;
35
+ pitch: number;
36
+ }>;
37
+ /** Velocity envelope (time, velocity pairs for dynamics) */
38
+ velocityEnvelope?: Array<{
39
+ time: number;
40
+ velocity: number;
41
+ }>;
42
+ /** CC automation generated by articulation */
43
+ ccAutomation?: Array<{
44
+ time: number;
45
+ cc: number;
46
+ value: number;
47
+ }>;
48
+ }
49
+ export interface NoteInput {
50
+ pitch: number;
51
+ velocity: number;
52
+ startTime: number;
53
+ duration: number;
54
+ }
55
+ /** Default articulation presets */
56
+ export declare const ARTICULATION_PRESETS: Record<ArticulationType, ArticulationConfig>;
57
+ /** Apply articulation to a single note */
58
+ export declare function applyArticulation(note: NoteInput, config: ArticulationConfig): ArticulatedNote;
59
+ /** Apply legato between consecutive notes (overlap + glide) */
60
+ export declare function applyLegatoChain(notes: NoteInput[], config: ArticulationConfig): ArticulatedNote[];
61
+ /** Apply articulation to array of notes */
62
+ export declare function applyArticulationToAll(notes: NoteInput[], config: ArticulationConfig): ArticulatedNote[];
63
+ /** Get all available articulation types with labels */
64
+ export declare function getArticulationTypes(): Array<{
65
+ type: ArticulationType;
66
+ label: string;
67
+ description: string;
68
+ }>;
69
+ //# sourceMappingURL=articulationEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"articulationEngine.d.ts","sourceRoot":"","sources":["../../src/utils/articulationEngine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,eAAe,GACf,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,kEAAkE;IAClE,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,8CAA8C;IAC9C,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mCAAmC;AACnC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAkB7E,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,GAAG,eAAe,CA0D9F;AA6FD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CA+BnB;AAED,2CAA2C;AAC3C,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CAKnB;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB5G"}
@@ -0,0 +1,2 @@
1
+ export declare function makeClipSelectionId(layerId: number, clipId: number | string): string;
2
+ //# sourceMappingURL=audioEditorUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioEditorUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioEditorUtils.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,UAE3E"}
@@ -0,0 +1,6 @@
1
+ import { EffectType, LayerSettings } from '../models/editor/audioTypes';
2
+ export declare function addEffectToLayer(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectType: EffectType): void;
3
+ export declare function removeEffectFromLayer(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectId: string): void;
4
+ export declare function toggleEffectBypass(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectId: string): void;
5
+ export declare function updateEffectParams(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectId: string, params: Record<string, number>): void;
6
+ //# sourceMappingURL=audioFxUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioFxUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioFxUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpF,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,QAuBvB;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,QASjB;AAED,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,QAWjB;AAED,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAW/B"}
@@ -0,0 +1,18 @@
1
+ import { MidiNote, MidiCCEvent } from '../models/editor/midiTypes';
2
+ export declare function addMidiNote(_layerMidiNotes: Record<number, MidiNote[]>, setLayerMidiNotes: React.Dispatch<React.SetStateAction<Record<number, MidiNote[]>>>, setSelectedMidiNote: React.Dispatch<React.SetStateAction<{
3
+ layerId: number;
4
+ noteId: number;
5
+ } | null>>, layerId: number, pitch: number, start: number, durationSec?: number, velocity?: number): void;
6
+ export declare function removeMidiNote(setLayerMidiNotes: React.Dispatch<React.SetStateAction<Record<number, MidiNote[]>>>, setSelectedMidiNote: React.Dispatch<React.SetStateAction<{
7
+ layerId: number;
8
+ noteId: number;
9
+ } | null>>, layerId: number, noteId: number): void;
10
+ export declare function clearMidiNotes(setLayerMidiNotes: React.Dispatch<React.SetStateAction<Record<number, MidiNote[]>>>, setSelectedMidiNote: React.Dispatch<React.SetStateAction<{
11
+ layerId: number;
12
+ noteId: number;
13
+ } | null>>, layerId: number): void;
14
+ export declare function handleSelectCCLane(setLayerCCType: React.Dispatch<React.SetStateAction<Record<number, number>>>, layerId: number, cc: number): void;
15
+ export declare function handleAddCCEvent(setLayerMidiCC: React.Dispatch<React.SetStateAction<Record<number, MidiCCEvent[]>>>, layerId: number, cc: number, value: number, time: number): void;
16
+ export declare function handleUpdateCCEvent(setLayerMidiCC: React.Dispatch<React.SetStateAction<Record<number, MidiCCEvent[]>>>, layerId: number, id: number, value: number, time: number, handleType?: 'linear' | 'step' | 'exp'): void;
17
+ export declare function handleRemoveCCEvent(setLayerMidiCC: React.Dispatch<React.SetStateAction<Record<number, MidiCCEvent[]>>>, layerId: number, id: number): void;
18
+ //# sourceMappingURL=audioMidiUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioMidiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioMidiUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEnE,wBAAgB,WAAW,CACzB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAC3C,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnF,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EACrG,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAY,EACzB,QAAQ,GAAE,MAAY,QAcvB;AAED,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnF,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EACrG,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,QAOf;AAED,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnF,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EACrG,OAAO,EAAE,MAAM,QAOhB;AAED,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAC5E,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,QAGX;AAED,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,QAYb;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,QAMvC;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,QAMX"}
@@ -0,0 +1,3 @@
1
+ export type PitchAlgorithm = "pitchy" | "crepe" | "ultrastarws" | "librosa";
2
+ export declare function generateUltrastarText(algorithm: PitchAlgorithm): string;
3
+ //# sourceMappingURL=audioPitchAlgorithms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioPitchAlgorithms.d.ts","sourceRoot":"","sources":["../../src/utils/audioPitchAlgorithms.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAE5E,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAcvE"}
@@ -0,0 +1,26 @@
1
+ export type PitchAlgorithm = "pitchy" | "crepe" | "ultrastar-wp" | "librosa";
2
+ export interface PitchSegment {
3
+ start: number;
4
+ duration: number;
5
+ pitch: number;
6
+ freq: number;
7
+ }
8
+ /** Backend pitch detection result */
9
+ export interface PitchTrackResult {
10
+ track: Array<{
11
+ t: number;
12
+ hz: number;
13
+ }>;
14
+ }
15
+ export declare function analyzeAudioFileWithAlgorithm(file: File, algorithm: PitchAlgorithm, options?: {
16
+ signal?: AbortSignal;
17
+ onProgress?: (p: number) => void;
18
+ smoothingWindow?: number;
19
+ rmsThreshold?: number;
20
+ useHanning?: boolean;
21
+ /** Optional CREPE backend. Required when algorithm==='crepe'. */
22
+ postPitch?: (file: File) => Promise<PitchTrackResult>;
23
+ /** Optional librosa backend. Required when algorithm==='librosa'. */
24
+ postLibrosaPitchTrack?: (file: File) => Promise<PitchTrackResult>;
25
+ }): Promise<PitchSegment[]>;
26
+ //# sourceMappingURL=audioPitchAnalyzeFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioPitchAnalyzeFile.d.ts","sourceRoot":"","sources":["../../src/utils/audioPitchAnalyzeFile.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAyDD,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzC;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,qEAAqE;IACrE,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACnE,GACA,OAAO,CAAC,YAAY,EAAE,CAAC,CA4GzB"}
@@ -0,0 +1,5 @@
1
+ import { WaveformData } from '../models/editor/timelineTypes';
2
+ export declare function snapToGrid(time: number, snapMode: 'beat' | 'bar' | 'off', bpm: number, quantize?: number): number;
3
+ export declare function mergeWaveforms(waveforms: WaveformData[]): WaveformData;
4
+ export declare function generatePlaceholderWaveform(duration: number, sampleRate?: number): WaveformData;
5
+ //# sourceMappingURL=audioTimelineUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioTimelineUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioTimelineUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAYpH;AAGD,wBAAgB,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAItE;AAGD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAc,GAAG,YAAY,CAEtG"}