@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,143 @@
1
+ /**
2
+ * karaokeSettings.ts � Per-player karaoke visual settings (bar fills + font).
3
+ *
4
+ * Handles loading, saving, migration (old PlayerBarStyle ? new PlayerKaraokeSettings),
5
+ * backend hydration, and legacy wrappers for backward compatibility.
6
+ */
7
+ /** Visual settings for a single bar type (filled, empty, gold-filled, gold-empty) */
8
+ export interface KaraokeBarFill {
9
+ /** Base color override (hex). null = auto (player/accuracy, gray, gold depending on bar type) */
10
+ color: string | null;
11
+ /** Cap style name (e.g. "Pill", "Arrow", "Shield") */
12
+ capStyleName: string;
13
+ /** Overlay pattern name (e.g. "Flames", "Scales") or null */
14
+ patternName: string | null;
15
+ /** Secondary color for pattern overlay (hex) or null for auto */
16
+ patternColor: string | null;
17
+ /** Pattern-only mode: no glossy 3D button, just the pattern fill */
18
+ patternOnly: boolean;
19
+ /** Highlight intensity 0-100 */
20
+ highlight: number;
21
+ /** Glow intensity 0-100 */
22
+ glow: number;
23
+ /** Glass transparency 0-100 (0 = opaque, 100 = fully transparent) */
24
+ glass: number;
25
+ /** Texture URL for tiling, or null */
26
+ textureUrl: string | null;
27
+ /** Texture tile scale factor (0.1�2.0; default 1.0) */
28
+ textureScale: number;
29
+ }
30
+ /** Font settings for karaoke canvas text (stored per player, only player 1's is used) */
31
+ export interface KaraokeFontSettings {
32
+ /** Font family (null = system default / Arial) */
33
+ fontFamily: string | null;
34
+ /** Font size in px */
35
+ fontSize: number;
36
+ /** Font color (hex or CSS, null = auto #fff) */
37
+ fontColor: string | null;
38
+ /** Outline/stroke color (null = no outline) */
39
+ outlineColor: string | null;
40
+ /** Outline width in px (0 = no outline) */
41
+ outlineWidth: number;
42
+ /** Text shadow CSS string (null = none, e.g. "2px 2px 4px #000") */
43
+ shadow: string | null;
44
+ }
45
+ /** Complete karaoke visual settings per player */
46
+ export interface PlayerKaraokeSettings {
47
+ /** Bar fill for sung (hit) regular notes */
48
+ filledBar: KaraokeBarFill;
49
+ /** Bar fill for unsung (empty) regular notes */
50
+ emptyBar: KaraokeBarFill;
51
+ /** Bar fill for sung (hit) golden notes */
52
+ goldFilledBar: KaraokeBarFill;
53
+ /** Bar fill for unsung (empty) golden notes */
54
+ goldEmptyBar: KaraokeBarFill;
55
+ /** Font settings */
56
+ font: KaraokeFontSettings;
57
+ /** When true, gold notes are scored as regular (no 2� multiplier). Max stays 10k. */
58
+ disableGoldNotes?: boolean;
59
+ }
60
+ export declare const DEFAULT_BAR_FILL: KaraokeBarFill;
61
+ export declare const DEFAULT_EMPTY_BAR_FILL: KaraokeBarFill;
62
+ export declare const DEFAULT_GOLD_EMPTY_BAR_FILL: KaraokeBarFill;
63
+ export declare const DEFAULT_GOLD_FILLED_BAR_FILL: KaraokeBarFill;
64
+ export declare const DEFAULT_FONT_SETTINGS: KaraokeFontSettings;
65
+ export declare const DEFAULT_KARAOKE_SETTINGS: PlayerKaraokeSettings;
66
+ /** Preset modes for empty (unsung) bar appearance */
67
+ export type EmptyBarPreset = 'custom' | 'maxGlass' | 'wireframe' | 'dimTexture' | 'none';
68
+ /** @deprecated Use PlayerKaraokeSettings instead */
69
+ export interface PlayerBarStyle {
70
+ /** Cap style name (e.g. "Pill", "Arrow", "Shield") */
71
+ capStyleName: string;
72
+ /** Overlay pattern name (e.g. "Flames", "Scales") or null */
73
+ patternName: string | null;
74
+ /** Secondary color for pattern overlay (hex) or null for auto */
75
+ patternColor: string | null;
76
+ /** Pattern-only mode: no glossy 3D button, just the pattern as the bar shape.
77
+ * Unsung = gray patterned bar, sung = player-colored pattern. */
78
+ patternOnly: boolean;
79
+ /** Highlight intensity 0-100 (ignored in patternOnly) */
80
+ highlight: number;
81
+ /** Glow intensity 0-100 (ignored in patternOnly) */
82
+ glow: number;
83
+ /** Glass factor for empty bars 0-100 */
84
+ emptyGlass: number;
85
+ /** Texture URL for filled (sung) bars, or null for no texture */
86
+ filledTextureUrl: string | null;
87
+ /** Texture URL for empty (unsung) bars, or null for no texture */
88
+ emptyTextureUrl: string | null;
89
+ /** Texture tile scale factor (0.1�2.0; default 1.0 = natural size) */
90
+ textureScale: number;
91
+ /** Empty bar preset � quick setup for empty bar appearance */
92
+ emptyPreset: EmptyBarPreset;
93
+ /** Overlay pattern name for gold (unhit) bars, or null */
94
+ goldPatternName: string | null;
95
+ /** Pattern color for gold bars, or null for auto */
96
+ goldPatternColor: string | null;
97
+ /** Overlay pattern name for gold hit bars, or null (same as goldPatternName) */
98
+ goldHitPatternName: string | null;
99
+ /** Pattern color for gold hit bars, or null for auto */
100
+ goldHitPatternColor: string | null;
101
+ /** Texture URL for gold unhit bars */
102
+ goldEmptyTextureUrl: string | null;
103
+ /** Texture URL for gold hit bars */
104
+ goldFilledTextureUrl: string | null;
105
+ /** Font family for this player's karaoke canvas text (null = default/Arial) */
106
+ fontFamily: string | null;
107
+ /** Font size in px (default 18) */
108
+ fontSize: number;
109
+ /** Font color (hex or CSS, null = auto) */
110
+ fontColor: string | null;
111
+ /** Outline color (null = no outline) */
112
+ fontOutlineColor: string | null;
113
+ /** Outline width in px (default 0 = no outline) */
114
+ fontOutlineWidth: number;
115
+ /** Text shadow CSS string (null = none) */
116
+ fontShadow: string | null;
117
+ }
118
+ export declare const DEFAULT_PLAYER_BAR_STYLE: PlayerBarStyle;
119
+ export declare function loadKaraokeSettings(playerId?: number): PlayerKaraokeSettings;
120
+ export declare function saveKaraokeSettings(settings: PlayerKaraokeSettings, playerId?: number): void;
121
+ /**
122
+ * Persist karaoke settings to the backend for a specific player.
123
+ * Fire-and-forget � errors are logged but do not propagate.
124
+ */
125
+ export declare function syncPlayerKaraokeSettingsToBackend(profileId: number, playerId: number, settings: PlayerKaraokeSettings): void;
126
+ /**
127
+ * Hydrate localStorage with karaoke settings from backend player data.
128
+ * Call this when player data is fetched to seed localStorage with backend truth.
129
+ */
130
+ export declare function hydrateKaraokeSettingsFromPlayerData(playerId: number, karaokeSettings: Record<string, unknown> | null | undefined): void;
131
+ export declare function hydratePlayerKaraokeSettingsFromBackend(fetchSettings?: () => Promise<string | null>): Promise<void>;
132
+ /**
133
+ * Load karaoke settings for all given player IDs.
134
+ * Returns a map playerId ? PlayerKaraokeSettings.
135
+ */
136
+ export declare function loadAllKaraokeSettings(playerIds: number[]): Map<number, PlayerKaraokeSettings>;
137
+ /** @deprecated Use loadKaraokeSettings */
138
+ export declare function loadPlayerBarStyle(playerId?: number): PlayerBarStyle;
139
+ /** @deprecated Use saveKaraokeSettings */
140
+ export declare function savePlayerBarStyle(style: PlayerBarStyle, playerId?: number): void;
141
+ /** @deprecated Use loadAllKaraokeSettings */
142
+ export declare function loadPlayerBarStyles(playerIds: number[]): Map<number, PlayerBarStyle>;
143
+ //# sourceMappingURL=karaokeSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeSettings.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeSettings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Barrel re-export for karaokeTimeline sub-modules.
3
+ * Consumers should continue importing from this file — no import changes needed.
4
+ */
5
+ export type { KaraokeNoteData } from './karaokeTimelineTypes';
6
+ export { extractBpmFromNotes, parseNotes, hzToUltrastarPitch } from './karaokeNoteParsing';
7
+ export { drawTimeline } from './karaokeTimelineRenderer';
8
+ //# sourceMappingURL=karaokeTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeTimeline.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeTimeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { KaraokeNoteData } from './karaokeTimelineTypes';
2
+ import { KaraokeAnimMode } from './karaokeDisplaySettings';
3
+ import { PlayerKaraokeSettings } from './glossyBarRenderer';
4
+ /**
5
+ * Draws the full note line, golden ball and UI.
6
+ */
7
+ export declare const drawTimeline: (ctx: CanvasRenderingContext2D, width: number, height: number, noteLines: KaraokeNoteData[][], currentTime: number, playerName: string, score: number, playerBgColor: string, userPitch?: {
8
+ t: number;
9
+ hz: number;
10
+ }[], songId?: string | number, gapDesaturation?: number, segmentScores?: {
11
+ start: number;
12
+ end: number;
13
+ pitch: number;
14
+ frac: number;
15
+ isGold?: boolean;
16
+ noteStart?: number;
17
+ noteEnd?: number;
18
+ }[], difficultyLevel?: string, isPlaying?: boolean, goldSettings?: {
19
+ lifeMs?: number;
20
+ count?: number;
21
+ baseSpeed?: number;
22
+ baseSize?: number;
23
+ glowBlur?: number;
24
+ shadowColor?: string;
25
+ }, goldBursts?: {
26
+ playerId: number;
27
+ createdAt: number;
28
+ noteStart: number;
29
+ notePitch: number;
30
+ seed: number;
31
+ }[], algorithmLabel?: string, algorithmColor?: string, panOffset?: number, visibleWidth?: number, combo?: {
32
+ maxCombo: number;
33
+ currentCombo: number;
34
+ totalComboBonus: number;
35
+ }, verseRatings?: {
36
+ verseIndex: number;
37
+ hitFraction: number;
38
+ label: string;
39
+ comboBonus: number;
40
+ }[], animationMode?: KaraokeAnimMode, karaokeSettings?: PlayerKaraokeSettings | null) => {
41
+ ballX: number;
42
+ ballY: number;
43
+ ballIsGold: boolean;
44
+ };
45
+ //# sourceMappingURL=karaokeTimelineRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeTimelineRenderer.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeTimelineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIhE,OAAO,KAAK,EAAE,qBAAqB,EAAiE,MAAM,qBAAqB,CAAC;AAqBhI;;GAEG;AACH,eAAO,MAAM,YAAY,GACrB,KAAK,wBAAwB,EAC7B,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,WAAW,eAAe,EAAE,EAAE,EAC9B,aAAa,MAAM,EACnB,YAAY,MAAM,EAClB,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,YAAY;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EACvC,SAAS,MAAM,GAAG,MAAM,EACxB,kBAAkB,MAAM,EACxB,gBAAgB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACrI,kBAAkB,MAAM,EACxB,YAAY,OAAO,EACnB,eAAe;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAClI,aAAa;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1G,iBAAiB,MAAM,EACvB,iBAAiB,MAAM,EACvB,YAAY,MAAM,EAClB,eAAe,MAAM,EACrB,QAAQ;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EAC3E,eAAe;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/F,gBAAgB,eAAe,EAC/B,kBAAkB,qBAAqB,GAAG,IAAI;;;;CA4sBjD,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface KaraokeNoteData {
2
+ startTime: number;
3
+ duration: number;
4
+ pitch: number;
5
+ isGold?: boolean;
6
+ }
7
+ export declare const GOLD_PARTICLE_LIFE_MS = 1000;
8
+ export declare const GOLD_PARTICLE_COUNT = 20;
9
+ export declare const GOLD_PARTICLE_BASE_SPEED = 70;
10
+ export declare const GOLD_PARTICLE_BASE_SIZE = 5;
11
+ export declare const GOLD_GLOW_BLUR = 26;
12
+ export declare const GOLD_SHADOW_COLOR = "rgba(255,215,70,0.98)";
13
+ export declare const makeParticleSvgDataUrl: (hue: number, sat: number, light: number, size: number, seed: number) => string;
14
+ export declare const getParticleImage: (hue: number, sat: number, light: number, size: number, seed: number) => HTMLImageElement;
15
+ export declare const hexToHsl: (hex: string) => {
16
+ h: number;
17
+ s: number;
18
+ l: number;
19
+ };
20
+ export declare const hslToCss: (h: number, s: number, l: number, a?: number) => string;
21
+ /**
22
+ * Returns per-accuracy RGB color based on frac (0–1):
23
+ * perfect (≥0.8) → green, good (0.4–0.8) → yellow, bad (<0.4) → orange-red
24
+ */
25
+ export declare function accuracyColor(frac: number): [number, number, number];
26
+ /** Resolve any CSS color (possibly var(...)) and return a hex string `#rrggbb`.
27
+ * Falls back to `#ffcc00` if parsing fails.
28
+ */
29
+ export declare function cssColorToHex(color: string): string;
30
+ /** Rounded rectangle path helper (does NOT call fill/stroke) */
31
+ export declare function roundedRect(ctx: CanvasRenderingContext2D, rx: number, ry: number, rw: number, rh: number, radius: number): void;
32
+ //# sourceMappingURL=karaokeTimelineTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeTimelineTypes.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeTimelineTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AAKzD,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,WAiBzG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,qBASnG,CAAC;AAGF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM;;;;CAmBnC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,IAAG,MAAU,WAEtE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAaxH"}
@@ -0,0 +1,73 @@
1
+ import { KaraokeNoteData } from './karaokeTimeline';
2
+ export type PadDifficulty = 'easy' | 'normal' | 'hard';
3
+ export interface PadLane {
4
+ index: number;
5
+ key: string;
6
+ gamepadButton: number;
7
+ label: string;
8
+ minPitch: number;
9
+ maxPitch: number;
10
+ color: string;
11
+ }
12
+ export interface PadNoteEvent {
13
+ note: KaraokeNoteData;
14
+ lane: number;
15
+ lineIndex: number;
16
+ noteIndex: number;
17
+ }
18
+ export interface PadHitFeedback {
19
+ type: 'perfect' | 'good' | 'miss';
20
+ lane: number;
21
+ time: number;
22
+ }
23
+ export interface PadConfig {
24
+ difficulty: PadDifficulty;
25
+ noteLines: string[];
26
+ bpm?: number;
27
+ gap?: number;
28
+ onPitch: (hz: number) => void;
29
+ onHitFeedback?: (feedback: PadHitFeedback) => void;
30
+ onLaneActive?: (activeLanes: boolean[]) => void;
31
+ onCurrentNote?: (note: PadNoteEvent | null) => void;
32
+ }
33
+ declare const LANE_COLORS: string[];
34
+ declare const KEY_MAPS: Record<PadDifficulty, {
35
+ keys: string[];
36
+ buttons: number[];
37
+ labels: string[];
38
+ }>;
39
+ export declare function midiToHz(midi: number): number;
40
+ export declare function buildLanes(allNotes: KaraokeNoteData[][], difficulty: PadDifficulty): PadLane[];
41
+ /** Determine which lane a note pitch belongs to */
42
+ export declare function getLaneForPitch(pitch: number, lanes: PadLane[]): number;
43
+ export declare function buildPadNoteEvents(noteLines: KaraokeNoteData[][], lanes: PadLane[], gapSec: number): PadNoteEvent[];
44
+ export declare class PadNotePlayer {
45
+ private config;
46
+ private lanes;
47
+ private events;
48
+ private raf;
49
+ private keysDown;
50
+ private gamepadButtonsDown;
51
+ private running;
52
+ private getCurrentTime;
53
+ private lastFeedbackTime;
54
+ private lastActiveNote;
55
+ private preWindow;
56
+ private postWindow;
57
+ constructor(config: PadConfig);
58
+ getLanes(): PadLane[];
59
+ getEvents(): PadNoteEvent[];
60
+ /** Start the input loop. Provide a function that returns current playback time. */
61
+ start(getCurrentTime: () => number): void;
62
+ stop(): void;
63
+ private handleKeyDown;
64
+ private handleKeyUp;
65
+ private pollGamepad;
66
+ /** Check which lanes are currently pressed (keyboard OR gamepad) */
67
+ private getActiveLanes;
68
+ /** Find the note currently active at the given time */
69
+ private findActiveNote;
70
+ private loop;
71
+ }
72
+ export { KEY_MAPS, LANE_COLORS };
73
+ //# sourceMappingURL=padNotePlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"padNotePlayer.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/padNotePlayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { OverlayPattern } from './glossyBarPatterns';
2
+ /**
3
+ * textureCache.ts — Async image loader + cache for seamless bar textures.
4
+ *
5
+ * Usage:
6
+ * preloadTexture(url); // fire-and-forget preload
7
+ * const pat = getTexturePattern(ctx, url, scale); // returns CanvasPattern | null
8
+ * const img = getCachedImage(url); // returns HTMLImageElement | null
9
+ */
10
+ /**
11
+ * Start loading a texture image. Resolves when the image is ready.
12
+ * Subsequent calls with the same URL return the cached image immediately.
13
+ */
14
+ export declare function preloadTexture(url: string): Promise<HTMLImageElement>;
15
+ /** Get a cached image (null if not yet loaded) */
16
+ export declare function getCachedImage(url: string): HTMLImageElement | null;
17
+ /**
18
+ * Get a CanvasPattern for the texture, or null if not yet loaded.
19
+ * Automatically starts loading if not cached.
20
+ * Scale: 1.0 = natural size, <1 = shrunken tiles, >1 = enlarged tiles.
21
+ */
22
+ export declare function getTexturePattern(ctx: CanvasRenderingContext2D, url: string, scale?: number): CanvasPattern | null;
23
+ /**
24
+ * Preload multiple texture URLs in parallel.
25
+ */
26
+ export declare function preloadTextures(urls: (string | null | undefined)[]): void;
27
+ /**
28
+ * Get a CanvasPattern for an overlay pattern, or null if the tile isn't loaded yet.
29
+ * Automatically starts rendering the tile in the background if not cached.
30
+ */
31
+ export declare function getOverlayCanvasPattern(ctx: CanvasRenderingContext2D, pattern: OverlayPattern, color: string, color2?: string | null): CanvasPattern | null;
32
+ //# sourceMappingURL=textureCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureCache.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/textureCache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiCrE;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,GAAG,EAAE,MAAM,EACX,KAAK,SAAM,GACZ,aAAa,GAAG,IAAI,CAoBtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAIzE;AAMD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAuE1D;;;GAGG;AACH,wBAAgB,uBAAuB,CACnC,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,aAAa,GAAG,IAAI,CAWtB"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * textureCatalog.ts — Catalog of available seamless textures for bar rendering.
3
+ *
4
+ * All textures reside in /textures/seamless/256x256/{Category}/.
5
+ * Two naming conventions:
6
+ * - Photoreal_{Category}_{NN}-512x512.png (8 per category)
7
+ * - {Category}_{NN}-256x256.png (24 per category)
8
+ */
9
+ export interface TextureEntry {
10
+ /** Display-friendly label, e.g. "Fire 03" */
11
+ label: string;
12
+ /** URL path relative to public root */
13
+ url: string;
14
+ }
15
+ export interface TextureCategory {
16
+ name: string;
17
+ /** Emoji icon for UI */
18
+ icon: string;
19
+ entries: TextureEntry[];
20
+ }
21
+ /** All available texture categories */
22
+ export declare const TEXTURE_CATEGORIES: TextureCategory[];
23
+ /** Flat list of all texture entries for quick lookup */
24
+ export declare const ALL_TEXTURES: TextureEntry[];
25
+ /** Find a texture entry by URL */
26
+ export declare function findTextureByUrl(url: string): TextureEntry | undefined;
27
+ //# sourceMappingURL=textureCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureCatalog.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/textureCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IACzB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CAC3B;AAgCD,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAkB/C,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,YAAY,EAAE,YAAY,EAA+C,CAAC;AAEvF,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEtE"}
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ interface AnimationConfig {
3
+ enabled?: boolean;
4
+ durationMs?: number;
5
+ translateX?: number;
6
+ scale?: number;
7
+ easing?: string;
8
+ opacityInactive?: number;
9
+ boxShadow?: string;
10
+ scrollSmooth?: number;
11
+ scrollEasing?: 'linear' | 'easeOutCubic';
12
+ }
13
+ interface Props {
14
+ ultrastarText: string;
15
+ audioUrl?: string | null;
16
+ audioRef?: React.RefObject<HTMLAudioElement | null>;
17
+ animationConfig?: AnimationConfig;
18
+ }
19
+ declare const KaraokeEditorManager: React.FC<Props>;
20
+ export default KaraokeEditorManager;
21
+ //# sourceMappingURL=KaraokeEditorManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KaraokeEditorManager.d.ts","sourceRoot":"","sources":["../../src/karaokeEditor/KaraokeEditorManager.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAwBnF,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;CAC1C;AAED,UAAU,KAAK;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAqCD,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwHzC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { YouTubePlayer } from 'react-youtube';
3
+ interface Props {
4
+ ultrastarText: string;
5
+ audioUrl?: string | null;
6
+ audioRef?: React.RefObject<HTMLAudioElement | null>;
7
+ ytRef?: React.RefObject<YouTubePlayer | null>;
8
+ }
9
+ export default function KaraokePhaserRenderer({ ultrastarText, audioUrl, audioRef, ytRef }: Props): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=KaraokePhaserRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KaraokePhaserRenderer.d.ts","sourceRoot":"","sources":["../../src/karaokeEditor/KaraokePhaserRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,UAAU,KAAK;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC/C;AAwBD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,2CAgJhG"}
@@ -0,0 +1,45 @@
1
+ import { MidiNote } from '../models/editor/midiTypes';
2
+ declare const SCALES: Record<string, number[]>;
3
+ declare const NOTE_NAMES: string[];
4
+ declare const PROGRESSIONS: Record<string, number[][]>;
5
+ interface DrumHit {
6
+ step: number;
7
+ pitch: number;
8
+ vel: number;
9
+ }
10
+ declare const DRUM_PATTERNS: Record<string, DrumHit[]>;
11
+ export interface SeedConfig {
12
+ /** Root note (0=C, 1=C#, ..., 11=B) */
13
+ root: number;
14
+ /** Scale name (key into SCALES) */
15
+ scale: keyof typeof SCALES;
16
+ /** BPM */
17
+ tempo: number;
18
+ /** Number of bars to generate */
19
+ bars: number;
20
+ /** Chord progression style */
21
+ progression: keyof typeof PROGRESSIONS;
22
+ /** Drum pattern style */
23
+ drumPattern: keyof typeof DRUM_PATTERNS;
24
+ /** Sixteenth-note density for melody (0..1) */
25
+ density: number;
26
+ /** Base octave for melody (3-5) */
27
+ octave: number;
28
+ /** Seed for pseudo-random (0 = truly random) */
29
+ seed: number;
30
+ }
31
+ export declare const DEFAULT_SEED_CONFIG: SeedConfig;
32
+ export interface SeedResult {
33
+ melody: MidiNote[];
34
+ bass: MidiNote[];
35
+ chords: MidiNote[];
36
+ drums: MidiNote[];
37
+ config: SeedConfig;
38
+ }
39
+ /** Generate the complete seed. */
40
+ export declare function generateSeed(cfg?: SeedConfig): SeedResult;
41
+ export declare const SCALE_NAMES: string[];
42
+ export declare const PROGRESSION_NAMES: string[];
43
+ export declare const DRUM_PATTERN_NAMES: string[];
44
+ export { NOTE_NAMES };
45
+ //# sourceMappingURL=midiSeedGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"midiSeedGenerator.d.ts","sourceRoot":"","sources":["../../src/midi/midiSeedGenerator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASpC,CAAC;AAEF,QAAA,MAAM,UAAU,UAAoE,CAAC;AAIrF,QAAA,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAO5C,CAAC;AAUF,UAAU,OAAO;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAE9D,QAAA,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAmC5C,CAAC;AAIF,MAAM,WAAW,UAAU;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,KAAK,EAAE,MAAM,OAAO,MAAM,CAAC;IAC3B,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,WAAW,EAAE,MAAM,OAAO,YAAY,CAAC;IACvC,yBAAyB;IACzB,WAAW,EAAE,MAAM,OAAO,aAAa,CAAC;IACxC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,mBAAmB,EAAE,UAUjC,CAAC;AAEF,MAAM,WAAW,UAAU;IACvB,MAAM,EAAG,QAAQ,EAAE,CAAC;IACpB,IAAI,EAAK,QAAQ,EAAE,CAAC;IACpB,MAAM,EAAG,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAI,QAAQ,EAAE,CAAC;IACpB,MAAM,EAAG,UAAU,CAAC;CACvB;AAiCD,kCAAkC;AAClC,wBAAgB,YAAY,CAAC,GAAG,GAAE,UAAgC,GAAG,UAAU,CA+E9E;AAID,eAAO,MAAM,WAAW,UAAsB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,UAA4B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,UAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ export type ControlId = {
2
+ kind: "key";
3
+ note: number;
4
+ } | {
5
+ kind: "pad";
6
+ note: number;
7
+ } | {
8
+ kind: "knob";
9
+ cc: number;
10
+ index: number;
11
+ } | {
12
+ kind: "fader";
13
+ cc: number;
14
+ } | {
15
+ kind: "transport";
16
+ cc: number;
17
+ action: "play" | "stop" | "record" | "rew" | "ff" | "loop";
18
+ } | {
19
+ kind: "pitchbend";
20
+ } | {
21
+ kind: "aftertouch";
22
+ };
23
+ export type OxygenLayout = {
24
+ name: string;
25
+ deviceMatch: string;
26
+ knobs: {
27
+ index: number;
28
+ cc: number;
29
+ label: string;
30
+ }[];
31
+ fader?: {
32
+ cc: number;
33
+ label: string;
34
+ };
35
+ pads: {
36
+ note: number;
37
+ label: string;
38
+ }[];
39
+ transport: Partial<Record<"play" | "stop" | "record" | "rew" | "ff" | "loop", number>>;
40
+ };
41
+ export declare const oxygen25mkiv: OxygenLayout;
42
+ //# sourceMappingURL=oxygen25Profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxygen25Profile.d.ts","sourceRoot":"","sources":["../../src/midi/oxygen25Profile.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,SAAS,GACf;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAEpB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1F,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YAoC1B,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { MidiCoreEvent } from './useWebMidi';
2
+ export type MidiBindingType = 'cc' | 'note' | 'pitchbend' | 'aftertouch' | 'channel-aftertouch';
3
+ export interface MidiBinding {
4
+ id: string;
5
+ /** Human-readable parameter name */
6
+ paramName: string;
7
+ /** What type of MIDI message triggers this */
8
+ type: MidiBindingType;
9
+ /** CC number (for 'cc' type) or note number (for 'note' type) */
10
+ number?: number;
11
+ /** MIDI channel filter (undefined = any) */
12
+ channel?: number;
13
+ /** Min output value */
14
+ min: number;
15
+ /** Max output value */
16
+ max: number;
17
+ /** Current value (0-1 normalized) */
18
+ value: number;
19
+ }
20
+ export interface MidiLearnState {
21
+ /** Whether we're in learn mode */
22
+ learning: boolean;
23
+ /** Which binding ID is being learned */
24
+ targetId: string | null;
25
+ }
26
+ export type MidiLearnStorage = Record<string, Omit<MidiBinding, 'value' | 'paramName'>>;
27
+ export interface UseMidiLearnOptions {
28
+ /** Parameters available for binding */
29
+ parameters: {
30
+ id: string;
31
+ name: string;
32
+ min?: number;
33
+ max?: number;
34
+ }[];
35
+ /** Called when a bound parameter value changes */
36
+ onParameterChange?: (id: string, value: number, normalizedValue: number) => void;
37
+ }
38
+ export interface UseMidiLearnResult {
39
+ /** All current bindings */
40
+ bindings: MidiBinding[];
41
+ /** Start learning for a specific parameter */
42
+ startLearn: (paramId: string) => void;
43
+ /** Cancel learning */
44
+ cancelLearn: () => void;
45
+ /** Remove a binding */
46
+ removeBinding: (paramId: string) => void;
47
+ /** Clear all bindings */
48
+ clearAll: () => void;
49
+ /** Current learn state */
50
+ learnState: MidiLearnState;
51
+ /** MIDI connection status */
52
+ midiSupported: boolean | null;
53
+ midiGranted: boolean;
54
+ /** Last received MIDI event (for display) */
55
+ lastEvent: MidiCoreEvent | null;
56
+ }
57
+ export declare function useMidiLearn(options: UseMidiLearnOptions): UseMidiLearnResult;
58
+ export interface MPENote {
59
+ note: number;
60
+ channel: number;
61
+ velocity: number;
62
+ /** Per-note pitch bend (-8192 to 8191, 14-bit) */
63
+ pitchBend: number;
64
+ /** Per-note pressure / aftertouch (0-127) */
65
+ pressure: number;
66
+ /** Per-note slide / CC74 (0-127) */
67
+ slide: number;
68
+ /** Timestamp of last update */
69
+ lastUpdate: number;
70
+ }
71
+ export interface MPEZone {
72
+ /** Master channel (usually 0 or 15) */
73
+ masterChannel: number;
74
+ /** Member channels */
75
+ memberChannels: number[];
76
+ /** Pitch bend range in semitones (default 48 for MPE) */
77
+ pitchBendRange: number;
78
+ }
79
+ export interface UseMPEOptions {
80
+ /** Lower zone config (default: master=0, members=1-14) */
81
+ lowerZone?: MPEZone;
82
+ /** Callback when a note's expression changes */
83
+ onNoteExpression?: (note: MPENote) => void;
84
+ /** Callback when a note starts */
85
+ onNoteOn?: (note: MPENote) => void;
86
+ /** Callback when a note ends */
87
+ onNoteOff?: (channel: number, note: number) => void;
88
+ }
89
+ export declare function useMPE(options?: UseMPEOptions): {
90
+ activeNotes: MPENote[];
91
+ midiSupported: boolean | null;
92
+ midiGranted: boolean;
93
+ };
94
+ //# sourceMappingURL=useMidiLearn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMidiLearn.d.ts","sourceRoot":"","sources":["../../src/midi/useMidiLearn.ts"],"names":[],"mappings":"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"}