@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,25 @@
1
+ interface PitchSegment {
2
+ start: number;
3
+ duration: number;
4
+ pitch: number;
5
+ freq: number;
6
+ }
7
+ /** Result from a backend pitch detection endpoint */
8
+ export interface PitchTrackResult {
9
+ track: Array<{
10
+ t: number;
11
+ hz: number;
12
+ }>;
13
+ }
14
+ interface AudioPitchAnalyzerProps {
15
+ onSegments?: (segments: PitchSegment[]) => void;
16
+ defaultCompareAll?: boolean;
17
+ externalFile?: File | null;
18
+ /** Optional backend pitch detection via CREPE. If not provided, CREPE algorithm is unavailable. */
19
+ postPitch?: (file: File) => Promise<PitchTrackResult>;
20
+ /** Optional backend pitch detection via librosa. If not provided, librosa algorithm is unavailable. */
21
+ postLibrosaPitchTrack?: (file: File) => Promise<PitchTrackResult>;
22
+ }
23
+ export default function AudioPitchAnalyzer({ onSegments, defaultCompareAll, externalFile, postPitch, postLibrosaPitchTrack: apiLibrosa }: AudioPitchAnalyzerProps): import("react/jsx-runtime").JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=AudioPitchAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPitchAnalyzer.d.ts","sourceRoot":"","sources":["../../src/karaoke/AudioPitchAnalyzer.tsx"],"names":[],"mappings":"AASA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzC;AAED,UAAU,uBAAuB;IAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,mGAAmG;IACnG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,uGAAuG;IACvG,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACnE;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,UAAU,EAAE,iBAAyB,EAAE,YAAmB,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,EAAE,uBAAuB,2CA0wB/K"}
@@ -0,0 +1,14 @@
1
+ import { KaraokeBarFill } from '../karaoke/rendering/glossyBarRenderer';
2
+ interface BarFillEditorProps {
3
+ /** Current bar fill settings */
4
+ fill: KaraokeBarFill;
5
+ /** Called when any field changes */
6
+ onChange: (fill: KaraokeBarFill) => void;
7
+ /** Player / preview color for SVG preview */
8
+ previewColor: string;
9
+ /** Accent color for active border (e.g. '#d4a017' for gold bars) */
10
+ accentColor?: string;
11
+ }
12
+ declare const BarFillEditor: React.FC<BarFillEditorProps>;
13
+ export default BarFillEditor;
14
+ //# sourceMappingURL=BarFillEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarFillEditor.d.ts","sourceRoot":"","sources":["../../src/karaoke/BarFillEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAI7E,UAAU,kBAAkB;IACxB,gCAAgC;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2S/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { KaraokeSongFile } from '../models/modelsKaraoke';
3
+ interface KaraokeLyricsProps {
4
+ song: KaraokeSongFile;
5
+ currentTime: number;
6
+ }
7
+ declare const _default: React.NamedExoticComponent<KaraokeLyricsProps>;
8
+ export default _default;
9
+ //# sourceMappingURL=KaraokeLyrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KaraokeLyrics.d.ts","sourceRoot":"","sources":["../../src/karaoke/KaraokeLyrics.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,UAAU,kBAAkB;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;;AAoJD,wBAAyC"}
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { KaraokeSongFile } from '../models/modelsKaraoke';
3
+ import { KaraokeSegmentScore, KaraokeGoldBurst, KaraokeComboInfo, KaraokeVerseRating, KaraokeTimelineConfig } from './karaokeTimelineTypes';
4
+ interface KaraokeTimelineProps {
5
+ song: KaraokeSongFile;
6
+ currentTime: number;
7
+ playerRef: React.RefObject<HTMLDivElement>;
8
+ /** Optional config grouping display/layout/visual settings (reduces props drilling). */
9
+ config?: KaraokeTimelineConfig;
10
+ userPitch?: {
11
+ t: number;
12
+ hz: number;
13
+ }[];
14
+ segmentScores?: KaraokeSegmentScore[];
15
+ goldBursts?: KaraokeGoldBurst[];
16
+ combo?: KaraokeComboInfo;
17
+ verseRatings?: KaraokeVerseRating[];
18
+ }
19
+ declare const KaraokeTimeline: React.FC<KaraokeTimelineProps>;
20
+ export default KaraokeTimeline;
21
+ //# sourceMappingURL=KaraokeTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KaraokeTimeline.d.ts","sourceRoot":"","sources":["../../src/karaoke/KaraokeTimeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,KAAK,EACR,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,UAAU,oBAAoB;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,wFAAwF;IACxF,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8SnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { KaraokeAnimMode } from '../karaoke/rendering/karaokeDisplaySettings';
2
+ import { PlayerKaraokeSettings } from '../karaoke/rendering/glossyBarRenderer';
3
+ /** Per-note scoring result rendered on the timeline. */
4
+ export interface KaraokeSegmentScore {
5
+ start: number;
6
+ end: number;
7
+ pitch: number;
8
+ frac: number;
9
+ isGold?: boolean;
10
+ noteStart?: number;
11
+ noteEnd?: number;
12
+ }
13
+ /** Gold-note burst particle effect metadata. */
14
+ export interface KaraokeGoldBurst {
15
+ playerId: number;
16
+ createdAt: number;
17
+ noteStart: number;
18
+ notePitch: number;
19
+ seed: number;
20
+ }
21
+ /** Visual tuning for gold-note burst effects. */
22
+ export interface KaraokeGoldSettings {
23
+ lifeMs?: number;
24
+ count?: number;
25
+ baseSpeed?: number;
26
+ baseSize?: number;
27
+ glowBlur?: number;
28
+ shadowColor?: string;
29
+ }
30
+ /** Live combo tracking state. */
31
+ export interface KaraokeComboInfo {
32
+ maxCombo: number;
33
+ currentCombo: number;
34
+ totalComboBonus: number;
35
+ }
36
+ /** Per-verse rating after verse boundary. */
37
+ export interface KaraokeVerseRating {
38
+ verseIndex: number;
39
+ hitFraction: number;
40
+ label: string;
41
+ comboBonus: number;
42
+ }
43
+ /**
44
+ * Config object grouping optional display, layout and visual settings
45
+ * for KaraokeTimeline — reduces props drilling from 24 → 9 top-level props.
46
+ */
47
+ export interface KaraokeTimelineConfig {
48
+ /** Player display name (default: "Ziom") */
49
+ playerName?: string;
50
+ /** Current score value (default: 10000) */
51
+ score?: number;
52
+ /** CSS color for player background (default: accent blue) */
53
+ playerBgColor?: string;
54
+ /** Number of players — affects timeline width scaling */
55
+ playerCount?: number;
56
+ /** Whether the karaoke is currently playing */
57
+ isPlaying?: boolean;
58
+ /** Override for vertical position (px) */
59
+ top?: number;
60
+ /** Network latency badge value (ms) */
61
+ latencyMs?: number | null;
62
+ /** Gap between notes desaturation level */
63
+ gapDesaturation?: number;
64
+ /** Difficulty label display */
65
+ difficultyLevel?: string;
66
+ /** Pitch algorithm label */
67
+ algorithmLabel?: string;
68
+ /** Pitch algorithm theme color */
69
+ algorithmColor?: string;
70
+ /** Animation rendering mode */
71
+ animationMode?: KaraokeAnimMode;
72
+ /** Per-player karaoke visual settings */
73
+ karaokeSettings?: PlayerKaraokeSettings | null;
74
+ /** Gold note burst visual tuning */
75
+ goldSettings?: KaraokeGoldSettings;
76
+ }
77
+ //# sourceMappingURL=karaokeTimelineTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeTimelineTypes.d.ts","sourceRoot":"","sources":["../../src/karaoke/karaokeTimelineTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,yCAAyC;IACzC,eAAe,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC/C,oCAAoC;IACpC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACtC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * fontCatalog.ts — Catalog of custom fonts from public/fonts/ for karaoke bar rendering.
3
+ *
4
+ * Each entry maps a human-readable font family name to the URL of the font file.
5
+ * Fonts are registered as @font-face on demand so canvas can use them.
6
+ */
7
+ export interface FontEntry {
8
+ /** CSS font-family name to use in canvas ctx.font */
9
+ family: string;
10
+ /** URL path relative to public root */
11
+ url: string;
12
+ /** Format hint for @font-face src (truetype, opentype, woff, woff2) */
13
+ format: string;
14
+ }
15
+ /** All available custom fonts from public/fonts/ */
16
+ export declare const FONT_CATALOG: FontEntry[];
17
+ /**
18
+ * Register a custom font via @font-face so canvas ctx.font can use it.
19
+ * Returns a promise that resolves when the font is loaded and ready.
20
+ */
21
+ export declare function loadCustomFont(fe: FontEntry): Promise<void>;
22
+ /**
23
+ * Ensure the given font family is loaded and ready for canvas use.
24
+ * If it's a custom font from the catalog, registers @font-face and loads it.
25
+ * For system fonts (Arial etc.) this is a no-op.
26
+ */
27
+ export declare function ensureFontLoaded(family: string): Promise<void>;
28
+ /** Find a font entry by family name */
29
+ export declare function findFontByFamily(family: string): FontEntry | undefined;
30
+ //# sourceMappingURL=fontCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fontCatalog.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/fontCatalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACtB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;CAClB;AAUD,oDAAoD;AACpD,eAAO,MAAM,YAAY,EAAE,SAAS,EA8BnC,CAAC;AAKF;;;GAGG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAYjE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEtE"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * glossyBarCaps.ts — Cap shape definitions and registries for glossy karaoke bars.
3
+ *
4
+ * Each cap shape is a pair of left/right generator functions that produce
5
+ * SVG paths (outer border + inner fill) for a given bar height.
6
+ */
7
+ /** Cap shape geometry result */
8
+ export interface CapGeometry {
9
+ /** Width of the cap in pixels */
10
+ w: number;
11
+ /** SVG path for the outer border shape */
12
+ out: string;
13
+ /** SVG path for the inner (fill) shape (inset by border width) */
14
+ inn: string;
15
+ }
16
+ /** Cap shape generator function */
17
+ export type CapShapeGenerator = (H: number) => CapGeometry;
18
+ /** A named cap style with left and right generators */
19
+ export interface CapStyle {
20
+ name: string;
21
+ L: CapShapeGenerator;
22
+ R: CapShapeGenerator;
23
+ }
24
+ export declare function pill_L(H: number): CapGeometry;
25
+ export declare function sharp_L(H: number): CapGeometry;
26
+ export declare function soft_L(H: number): CapGeometry;
27
+ export declare function chamfer_L(H: number): CapGeometry;
28
+ export declare function arrow_L(H: number): CapGeometry;
29
+ export declare function shield_L(H: number): CapGeometry;
30
+ export declare function bracket_L(H: number): CapGeometry;
31
+ export declare function tab_L(H: number): CapGeometry;
32
+ export declare function wave_L(H: number): CapGeometry;
33
+ export declare function ornate_L(H: number): CapGeometry;
34
+ export declare function skewTL_L(H: number): CapGeometry;
35
+ export declare function skewTR_L(H: number): CapGeometry;
36
+ export declare function pill_R(H: number): CapGeometry;
37
+ export declare function sharp_R(H: number): CapGeometry;
38
+ export declare function soft_R(H: number): CapGeometry;
39
+ export declare function chamfer_R(H: number): CapGeometry;
40
+ export declare function arrow_R(H: number): CapGeometry;
41
+ export declare function shield_R(H: number): CapGeometry;
42
+ export declare function bracket_R(H: number): CapGeometry;
43
+ export declare function tab_R(H: number): CapGeometry;
44
+ export declare function wave_R(H: number): CapGeometry;
45
+ export declare function ornate_R(H: number): CapGeometry;
46
+ export declare function skewTL_R(H: number): CapGeometry;
47
+ export declare function skewTR_R(H: number): CapGeometry;
48
+ export declare const SYMMETRIC_CAPS: CapStyle[];
49
+ export declare const ASYMMETRIC_CAPS: CapStyle[];
50
+ export declare const SKEW_CAPS: CapStyle[];
51
+ /** All cap styles in one flat list for lookup by name */
52
+ export declare const ALL_CAP_STYLES: CapStyle[];
53
+ /** Default cap style */
54
+ export declare const DEFAULT_CAP_STYLE: CapStyle;
55
+ /** Lookup cap style by name, falling back to Pill */
56
+ export declare function getCapStyleByName(name: string): CapStyle;
57
+ //# sourceMappingURL=glossyBarCaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossyBarCaps.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/glossyBarCaps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,gCAAgC;AAChC,MAAM,WAAW,WAAW;IACxB,iCAAiC;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;AAE3D,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,iBAAiB,CAAC;IACrB,CAAC,EAAE,iBAAiB,CAAC;CACxB;AAUD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7C;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAE9C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAOhD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAOhD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO5C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAMD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7C;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAE9C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAOhD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAOhD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO5C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAO/C;AAMD,eAAO,MAAM,cAAc,EAAE,QAAQ,EAWpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QAAQ,EAqBrC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QAAQ,EAW/B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,cAAc,EAAE,QAAQ,EAA0D,CAAC;AAEhG,wBAAwB;AACxB,eAAO,MAAM,iBAAiB,UAAoB,CAAC;AAEnD,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAExD"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * glossyBarPatterns.ts — Overlay pattern definitions for glossy karaoke bars.
3
+ *
4
+ * Each pattern is an SVG <pattern> generator that produces a tiling fill.
5
+ * 30 patterns total including flames, zigzag, scales, hex, dots, stars, etc.
6
+ */
7
+ /** Named overlay pattern */
8
+ export interface OverlayPattern {
9
+ name: string;
10
+ /** Generate an SVG <pattern> element string. `color` = primary, `color2` = optional secondary */
11
+ mk: (id: string, color: string, color2?: string) => string;
12
+ }
13
+ export declare const OVERLAY_PATTERNS: OverlayPattern[];
14
+ /** Lookup a pattern by name */
15
+ export declare function getPatternByName(name: string): OverlayPattern | null;
16
+ //# sourceMappingURL=glossyBarPatterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossyBarPatterns.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/glossyBarPatterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,4BAA4B;AAC5B,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,iGAAiG;IACjG,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9D;AAMD,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAkN5C,CAAC;AAEF,+BAA+B;AAC/B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEpE"}
@@ -0,0 +1,65 @@
1
+ import { CapStyle } from './glossyBarCaps';
2
+ import { OverlayPattern } from './glossyBarPatterns';
3
+ /**
4
+ * glossyBarRenderer.ts — Glossy SVG bar generator for karaoke note timeline.
5
+ *
6
+ * Generates glossy, 3D-look note bars with configurable:
7
+ * - Cap shapes (pill, sharp, soft, chamfer, arrow, shield, bracket, tab, wave, ornate, skew)
8
+ * - Overlay patterns (flames, zigzag, scales, hex, dots, stars, etc.)
9
+ * - Colors, highlight, glow, glass transparency
10
+ *
11
+ * Based on the standalone glossy-buttons-v8 generator, adapted for Canvas rendering.
12
+ *
13
+ * Sub-modules:
14
+ * - glossyBarCaps.ts — cap shape definitions & registries
15
+ * - glossyBarPatterns.ts — overlay pattern definitions
16
+ * - karaokeSettings.ts — per-player karaoke visual settings (bar fills + font)
17
+ */
18
+ export type { CapGeometry, CapShapeGenerator, CapStyle } from './glossyBarCaps';
19
+ export { pill_L, sharp_L, soft_L, chamfer_L, arrow_L, shield_L, bracket_L, tab_L, wave_L, ornate_L, skewTL_L, skewTR_L, pill_R, sharp_R, soft_R, chamfer_R, arrow_R, shield_R, bracket_R, tab_R, wave_R, ornate_R, skewTL_R, skewTR_R, SYMMETRIC_CAPS, ASYMMETRIC_CAPS, SKEW_CAPS, ALL_CAP_STYLES, DEFAULT_CAP_STYLE, getCapStyleByName } from './glossyBarCaps';
20
+ export type { OverlayPattern } from './glossyBarPatterns';
21
+ export { OVERLAY_PATTERNS, getPatternByName } from './glossyBarPatterns';
22
+ export type { KaraokeBarFill, KaraokeFontSettings, PlayerKaraokeSettings, EmptyBarPreset, PlayerBarStyle } from './karaokeSettings';
23
+ export { DEFAULT_BAR_FILL, DEFAULT_EMPTY_BAR_FILL, DEFAULT_GOLD_EMPTY_BAR_FILL, DEFAULT_GOLD_FILLED_BAR_FILL, DEFAULT_FONT_SETTINGS, DEFAULT_KARAOKE_SETTINGS, DEFAULT_PLAYER_BAR_STYLE, loadKaraokeSettings, saveKaraokeSettings, hydratePlayerKaraokeSettingsFromBackend, loadAllKaraokeSettings, loadPlayerBarStyle, savePlayerBarStyle, loadPlayerBarStyles } from './karaokeSettings';
24
+ /** Render options for a glossy bar */
25
+ export interface GlossyBarOptions {
26
+ /** Total width in pixels */
27
+ width: number;
28
+ /** Total height in pixels */
29
+ height: number;
30
+ /** Cap style to use */
31
+ capStyle: CapStyle;
32
+ /** Base color (hex, e.g. "#2196f3") */
33
+ color: string;
34
+ /** Highlight intensity 0-100 (default 70) */
35
+ highlight?: number;
36
+ /** Bottom glow intensity 0-100 (default 55) */
37
+ glow?: number;
38
+ /** Glass transparency 0-100 — 100 = fully transparent/white (default 0) */
39
+ glass?: number;
40
+ /** optional overlay pattern */
41
+ pattern?: OverlayPattern | null;
42
+ /** Secondary color for pattern overlay (hex). If omitted, auto-derived from main color */
43
+ patternColor?: string | null;
44
+ /** Pattern-only mode: no glossy 3D button, just the pattern fill inside a simple rounded rect.
45
+ * Gray bars = unsung notes, colored bars = sung by player. */
46
+ patternOnly?: boolean;
47
+ /** Texture image URL for filling the bar (overrides/supplements gradient fill) */
48
+ textureUrl?: string | null;
49
+ /** Texture tile scale for SVG preview (default 1.0) */
50
+ textureScale?: number;
51
+ }
52
+ /** Convert hex color to HSL [h: 0-360, s: 0-100, l: 0-100] */
53
+ export declare function hexToHsl(hex: string): [number, number, number];
54
+ /** Normalize any CSS hex to 6-digit lowercase */
55
+ export declare function normalizeHex(hex: string): string;
56
+ /** Render a complete glossy bar as SVG markup string */
57
+ export declare function renderGlossyBarSvg(opts: GlossyBarOptions): string;
58
+ /**
59
+ * Draw a glossy bar directly onto a Canvas2D context at position (x, y).
60
+ *
61
+ * This renders the same visual as `renderGlossyBarSvg` but using Canvas commands,
62
+ * which is much more efficient for real-time karaoke timeline rendering.
63
+ */
64
+ export declare function drawGlossyBarOnCanvas(ctx: CanvasRenderingContext2D, x: number, y: number, totalW: number, H: number, capStyle: CapStyle, color: string, highlight?: number, glow?: number, glass?: number, _pattern?: OverlayPattern | null, _patternColor?: string | null, patternOnly?: boolean, texturePattern?: CanvasPattern | null, overlayCanvasPattern?: CanvasPattern | null): void;
65
+ //# sourceMappingURL=glossyBarRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossyBarRenderer.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/glossyBarRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAC7G,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAC7G,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EACnG,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpI,OAAO,EACH,gBAAgB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,4BAA4B,EACnG,qBAAqB,EAAE,wBAAwB,EAC/C,wBAAwB,EACxB,mBAAmB,EAAE,mBAAmB,EAAE,uCAAuC,EACjF,sBAAsB,EACtB,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAC9D,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC7B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;mEAC+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAiB9D;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAyBD,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA0EjE;AA6ED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,SAAK,EACd,IAAI,SAAK,EACT,KAAK,SAAI,EACT,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,EAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,WAAW,UAAQ,EACnB,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,EACrC,oBAAoB,CAAC,EAAE,aAAa,GAAG,IAAI,GAC5C,IAAI,CAmLN"}
@@ -0,0 +1,25 @@
1
+ import { KaraokeAnimMode } from './karaokeDisplaySettings';
2
+ export interface AnimDrawParams {
3
+ ctx: CanvasRenderingContext2D;
4
+ ballX: number;
5
+ ballY: number;
6
+ ballRadius: number;
7
+ playerColor: string;
8
+ ballIsGold: boolean;
9
+ currentTime: number;
10
+ width: number;
11
+ height: number;
12
+ /** Notes currently visible on screen, mapped to pixel coords */
13
+ visibleNotes: {
14
+ x: number;
15
+ y: number;
16
+ w: number;
17
+ h: number;
18
+ isGold?: boolean;
19
+ isSung?: boolean;
20
+ }[];
21
+ }
22
+ /** Draw the alternative animation indicator based on the selected mode.
23
+ * Returns false if mode is 'ball' (caller should use existing code). */
24
+ export declare function drawAlternativeAnimation(mode: KaraokeAnimMode, params: AnimDrawParams): boolean;
25
+ //# sourceMappingURL=karaokeAnimations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeAnimations.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeAnimations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,wBAAwB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CACtG;AAgLD;yEACyE;AACzE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAe/F"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Karaoke display settings � user-configurable visual options
3
+ * persisted in localStorage and applied as CSS custom properties.
4
+ */
5
+ /** Curtain transition effect type */
6
+ export type CurtainEffect = 'none' | 'fade' | 'slide' | 'curtain' | 'iris';
7
+ /** Gradient color preset definition */
8
+ export interface GradientPreset {
9
+ id: string;
10
+ name: string;
11
+ /** [start, mid, end] hex colors for the sung-text sweep */
12
+ sungGradient: [string, string, string];
13
+ /** Gold note gradient */
14
+ goldGradient: [string, string, string];
15
+ /** Glow color for active syllables */
16
+ glowColor: string;
17
+ }
18
+ /** Karaoke animation mode */
19
+ export type KaraokeAnimMode = "ball" | "wipe" | "pulse" | "bounce";
20
+ /** Font options for karaoke display � system fonts + fonts from public/fonts/ catalog */
21
+ export declare const KARAOKE_FONT_OPTIONS: {
22
+ value: string;
23
+ label: string;
24
+ }[];
25
+ /** Persisted display settings */
26
+ export interface KaraokeDisplaySettings {
27
+ /** Color preset id or 'custom' */
28
+ presetId: string;
29
+ /** Custom gradient colors (used when presetId === 'custom') */
30
+ customSungGradient: [string, string, string];
31
+ customGoldGradient: [string, string, string];
32
+ customGlowColor: string;
33
+ /** Animation mode for the timeline canvas */
34
+ animationMode: KaraokeAnimMode;
35
+ /** Font family for canvas text and lyrics overlay */
36
+ fontFamily: string;
37
+ /** Transition effect shown between karaoke scenes */
38
+ transitionEffect: CurtainEffect;
39
+ /** Primary curtain / overlay color */
40
+ curtainPrimaryColor: string;
41
+ /** Secondary accent color (gradients, trims) */
42
+ curtainSecondaryColor: string;
43
+ /** Transition animation duration in ms */
44
+ curtainDurationMs: number;
45
+ /** Enter immersive mode (hide navbar) while singing */
46
+ immersiveMode: boolean;
47
+ }
48
+ /** Built-in gradient presets */
49
+ export declare const GRADIENT_PRESETS: GradientPreset[];
50
+ export declare function loadKaraokeDisplaySettings(): KaraokeDisplaySettings;
51
+ /** Hydrate from external source (call early in app lifecycle). Pass a fetcher that returns settings JSON string or null. */
52
+ export declare function hydrateKaraokeDisplayFromBackend(fetchSettings?: () => Promise<string | null>): Promise<void>;
53
+ /** Save settings to localStorage + backend */
54
+ export declare function saveKaraokeDisplaySettings(settings: KaraokeDisplaySettings): void;
55
+ /** Get the active gradient colors based on current settings */
56
+ export declare function getActiveGradient(settings: KaraokeDisplaySettings): {
57
+ sungGradient: [string, string, string];
58
+ goldGradient: [string, string, string];
59
+ glowColor: string;
60
+ };
61
+ /** Apply karaoke display CSS custom properties to :root */
62
+ export declare function applyKaraokeDisplayVars(settings: KaraokeDisplaySettings): void;
63
+ /** Initialize karaoke display vars on app startup */
64
+ export declare function initKaraokeDisplaySettings(): void;
65
+ //# sourceMappingURL=karaokeDisplaySettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeDisplaySettings.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeDisplaySettings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAI3E,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,yBAAyB;IACzB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnE,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EASlE,CAAC;AAEF,iCAAiC;AACjC,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,aAAa,EAAE,eAAe,CAAC;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAGnB,qDAAqD;IACrD,gBAAgB,EAAE,aAAa,CAAC;IAChC,sCAAsC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,gCAAgC;AAChC,eAAO,MAAM,gBAAgB,EAAE,cAAc,EA2C5C,CAAC;AAkBF,wBAAgB,0BAA0B,IAAI,sBAAsB,CASnE;AAED,4HAA4H;AAC5H,wBAAsB,gCAAgC,CACpD,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,8CAA8C;AAC9C,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAKjF;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,sBAAsB,GAAG;IACnE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB,CAqBA;AAED,2DAA2D;AAC3D,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CA6B9E;AAED,qDAAqD;AACrD,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD"}
@@ -0,0 +1,54 @@
1
+ export interface KaraokeLine {
2
+ text: string;
3
+ timestamp: number;
4
+ }
5
+ /**
6
+ * Represents a single word/syllable in the karaoke
7
+ */
8
+ export interface KaraokeWord {
9
+ text: string;
10
+ startTime: number;
11
+ endTime: number;
12
+ isGolden: boolean;
13
+ }
14
+ /**
15
+ * Represents a verse (line) with words
16
+ */
17
+ export interface KaraokeVerse {
18
+ text: string;
19
+ timestamp: number;
20
+ words: KaraokeWord[];
21
+ }
22
+ /**
23
+ * Parses Ultrastar notes into lyric lines with timestamps.
24
+ * Returns lines with full text (for backward compatibility).
25
+ */
26
+ export declare const parseLyrics: (notes: string[], bpmOverride?: number) => KaraokeLine[];
27
+ export declare const parseVersesWithWords: (notes: string[], bpmOverride?: number) => KaraokeVerse[];
28
+ /**
29
+ * Represents a single syllable in the karaoke with precise timing
30
+ */
31
+ export interface KaraokeSyllable {
32
+ text: string;
33
+ startTime: number;
34
+ endTime: number;
35
+ isGolden: boolean;
36
+ hasTrailingSpace: boolean;
37
+ }
38
+ /**
39
+ * Represents a verse (line) with syllables
40
+ */
41
+ export interface KaraokeSyllableVerse {
42
+ timestamp: number;
43
+ syllables: KaraokeSyllable[];
44
+ }
45
+ /**
46
+ * Parses UltraStar notes into verses with syllables — each note = separate syllable with its own timing.
47
+ */
48
+ export declare const parseVersesWithSyllables: (notes: string[], bpmOverride?: number) => KaraokeSyllableVerse[];
49
+ export declare const getActiveLyrics: (lyrics: KaraokeLine[], currentTime: number, maxLines?: number) => string[];
50
+ /**
51
+ * Finds active words to display based on the current time.
52
+ */
53
+ export declare const getActiveWords: (verses: KaraokeVerse[], currentTime: number) => KaraokeWord[];
54
+ //# sourceMappingURL=karaokeLyrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeLyrics.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeLyrics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,EAAE,CAAC;CACxB;AAwBD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,EAAE,cAAc,MAAM,KAAG,WAAW,EAuE9E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,EAAE,cAAc,MAAM,KAAG,YAAY,EA8GxF,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,EAAE,EAAE,cAAc,MAAM,KAAG,oBAAoB,EAqEpG,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,QAAQ,WAAW,EAAE,EAAE,aAAa,MAAM,EAAE,iBAAY,KAAG,MAAM,EAwBhG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,EAAE,EAAE,aAAa,MAAM,KAAG,WAAW,EAWvF,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { KaraokeNoteData } from './karaokeTimelineTypes';
2
+ /**
3
+ * Searches for BPM value from #BPM: headers in UltraStar note lines.
4
+ * UltraStar WorldParty internally multiplies BPM×4, so the time formula is:
5
+ * time_seconds = beat * 60 / (fileBPM * 4) = beat * 15 / fileBPM
6
+ */
7
+ export declare const extractBpmFromNotes: (notes: string[]) => number | null;
8
+ /**
9
+ * Converts Ultrastar note lines to `KaraokeNoteData` objects.
10
+ * Automatically extracts BPM from #BPM: headers (if present) for beat-to-seconds conversion.
11
+ */
12
+ export declare const parseNotes: (notes: string[], bpmOverride?: number) => KaraokeNoteData[][];
13
+ /**
14
+ * Converts Hz to UltraStar pitch with octave-folding per UltraStar WorldParty:
15
+ * 1. Hz → MIDI → pitch class (0-11)
16
+ * 2. Adjust octave so detected pitch is within ±6 of target note.
17
+ * If no target note, returns raw MIDI value mod 12.
18
+ */
19
+ export declare const hzToUltrastarPitch: (hz: number, targetNotePitch: number | null) => number;
20
+ //# sourceMappingURL=karaokeNoteParsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeNoteParsing.d.ts","sourceRoot":"","sources":["../../../src/karaoke/rendering/karaokeNoteParsing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,EAAE,KAAG,MAAM,GAAG,IAS9D,CAAC;AAYF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,EAAE,cAAc,MAAM,KAAG,eAAe,EAAE,EA6BnF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,IAAI,MAAM,EAAE,iBAAiB,MAAM,GAAG,IAAI,KAAG,MAa/E,CAAC"}