@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
package/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@nice2dev/ui-audio` will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## [0.1.0] — 2026-03-17
11
+
12
+ ### 🎵 Initial Release (Beta)
13
+
14
+ First public beta of `@nice2dev/ui-audio` — DAW editor, karaoke engine, player, visualizers & MIDI for React.
15
+
16
+ ### Features
17
+
18
+ - **NiceDAW** — multi-track digital audio workstation with timeline, mixer, effects rack
19
+ - **NiceKaraokeEngine** — synchronized lyrics display with pitch detection and scoring
20
+ - **NiceGenericPlayer** — audio player with waveform, transport controls, playlists
21
+ - **NiceMIDIEditor** — piano roll MIDI editor with note editing, velocity, quantize
22
+ - **NiceVisualizer** — audio visualizations (waveform, spectrum, bars, circular)
23
+ - **NiceDMXController** — DMX lighting control panel with channels and presets
24
+ - **NiceSoundboard** — trigger-based soundboard with banks and hotkeys
25
+ - **Audio effects** — reverb, delay, EQ, compressor, chorus, distortion
26
+ - **Web Audio API** — built on standard Web Audio API, no external audio libraries
27
+ - **Real-time analysis** — FFT spectrum, RMS levels, peak detection
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 NiceToDev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,175 @@
1
+ # @nice2dev/ui-audio
2
+
3
+ Audio UI component library for React applications. Provides a complete set of DAW editor components, karaoke engine, audio player, playlist management, music visualizers, MIDI support, effects, and audio processing utilities.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@nice2dev/ui-audio)](https://www.npmjs.com/package/@nice2dev/ui-audio)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
8
+
9
+ ---
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm install @nice2dev/ui-audio
15
+ ```
16
+
17
+ ### Peer Dependencies
18
+
19
+ **Required:**
20
+ - `react` >= 17
21
+ - `react-dom` >= 17
22
+
23
+ **Optional** (enable specific features):
24
+ - `react-youtube` — YouTube player integration
25
+ - `react-window` — virtualized playlist rendering
26
+ - `hls.js` — HLS streaming support
27
+ - `pitchy` — real-time pitch detection
28
+ - `phaser` — Phaser-based karaoke renderer
29
+ - `framer-motion` — animated transitions
30
+ - `@fortawesome/react-fontawesome` + icon packages — icons
31
+ - `music-metadata-browser` — audio file metadata parsing
32
+ - `fflate` — compression utilities
33
+ - `@ffmpeg/ffmpeg` — audio format conversion
34
+ - `@monaco-editor/react` — code editor integration
35
+ - `react-bootstrap` — Bootstrap UI components
36
+ - `wav-decoder` — WAV file decoding
37
+
38
+ ## Usage
39
+
40
+ ### i18n Setup
41
+
42
+ Wrap your app with `NiceI18nProvider` to supply translations:
43
+
44
+ ```tsx
45
+ import { NiceI18nProvider } from '@nice2dev/ui-audio';
46
+
47
+ function App() {
48
+ return (
49
+ <NiceI18nProvider t={(key, fallback) => fallback ?? key}>
50
+ <YourAudioApp />
51
+ </NiceI18nProvider>
52
+ );
53
+ }
54
+ ```
55
+
56
+ ### Audio Player
57
+
58
+ ```tsx
59
+ import { GenericPlayer, GenericPlayerControls } from '@nice2dev/ui-audio';
60
+
61
+ <GenericPlayer src="/track.mp3" title="My Song" artist="Artist" />
62
+ ```
63
+
64
+ ### Karaoke
65
+
66
+ ```tsx
67
+ import { KaraokeLyrics, KaraokeTimeline } from '@nice2dev/ui-audio';
68
+
69
+ <KaraokeLyrics notes={karaokeNotes} currentTime={time} />
70
+ <KaraokeTimeline notes={karaokeNotes} currentTime={time} duration={180} />
71
+ ```
72
+
73
+ ### DAW Editor
74
+
75
+ ```tsx
76
+ import {
77
+ Waveform, PianoRoll, AudioTimeline,
78
+ EditorTrackProvider, useEditorTrack,
79
+ } from '@nice2dev/ui-audio';
80
+
81
+ <EditorTrackProvider value={editorState}>
82
+ <Waveform data={waveformData} zoom={zoom} />
83
+ <PianoRoll notes={midiNotes} duration={duration} zoom={zoom} />
84
+ </EditorTrackProvider>
85
+ ```
86
+
87
+ ### Playlist
88
+
89
+ ```tsx
90
+ import { GenericPlaylist, PlaylistBrowser } from '@nice2dev/ui-audio';
91
+
92
+ <GenericPlaylist items={tracks} onSelect={handleSelect} />
93
+ <PlaylistBrowser
94
+ renderLibrarySearch={(props) => <MySearch {...props} />}
95
+ renderLibraryList={(props) => <MyList {...props} />}
96
+ />
97
+ ```
98
+
99
+ ### Visualizer
100
+
101
+ ```tsx
102
+ import { StageVisualizer } from '@nice2dev/ui-audio';
103
+
104
+ <StageVisualizer analyser={analyserNode} mode="spectrum" />
105
+ ```
106
+
107
+ ## API Architecture
108
+
109
+ This library is **backend-agnostic**. All API-dependent operations are exposed as **callback props** or **dependency injection** instead of hardcoded API calls:
110
+
111
+ - **Player**: `searchYouTubeByArtistTitle` callback prop on `YouTubePlayer`
112
+ - **Pitch Analysis**: `postPitch` / `postLibrosaPitchTrack` callbacks on `AudioPitchAnalyzer`
113
+ - **Playlist**: Render props (`renderLibrarySearch`, `renderLibraryList`) on `PlaylistBrowser`
114
+ - **Editor CRUD**: `ProjectCRUDDeps` interface for `useProjectCRUD` hook
115
+ - **Settings**: Optional `fetchSettings` callbacks for karaoke settings hydration
116
+ - **Audio Sources**: `registerAudioSourceComponent()` for pluggable audio source types
117
+
118
+ ## Exports
119
+
120
+ ### Components
121
+
122
+ | Module | Components |
123
+ |--------|-----------|
124
+ | **Editor** | `Waveform`, `PianoRoll`, `CCLane`, `AudioTimeline` |
125
+ | **Editor Panels** | `AutoSavePanel`, `UndoRedoPanel`, `ZoomSnapControls`, `MasterFXPanel`, `RecordingOptionsPanel`, `CCAutomationLaneEditor`, `ArpeggiatorPanel`, `LFOPanel`, `StepSequencerPanel` |
126
+ | **Karaoke** | `KaraokeLyrics`, `KaraokeTimeline`, `BarFillEditor`, `AudioPitchAnalyzer` |
127
+ | **Karaoke Editor** | `KaraokeEditorManager`, `KaraokePhaserRenderer` |
128
+ | **Player** | `GenericPlayer`, `GenericPlayerControls`, `GenericPlayerStage`, `GenericPlayerStageVisualizer`, `YouTubePlayer` |
129
+ | **Visualizer** | `StageVisualizer`, `ModeSwitcher` |
130
+ | **Playlist** | `GenericPlaylist`, `GenericPlaylistItem`, `PlaylistTagEditor`, `DynamicRuleEditor`, `PlaylistDualPane`, `PlaylistBrowser`, `PlaylistList`, `PlaylistSidebar` |
131
+ | **Effects** | `NoteRiver`, `NoteParticles` |
132
+
133
+ ### Hooks
134
+
135
+ | Hook | Purpose |
136
+ |------|---------|
137
+ | `useEditorTrack` | Shared DAW editor state via context |
138
+ | `useProjectCRUD` | Project/section/layer CRUD with dependency injection |
139
+ | `useCCAutomation` | CC automation lane management |
140
+ | `useStepSequencer` | Step sequencer state |
141
+ | `useWebMidi` | Web MIDI API access |
142
+ | `useMidiLearn` | MIDI learn/mapping |
143
+ | `useOxygen25` | M-Audio Oxygen 25 controller profile |
144
+ | `usePitchWorker` | Pitch detection Web Worker |
145
+ | `useScoringWorker` | Karaoke scoring Web Worker |
146
+ | `useLocalPlaylists` | Local playlist storage |
147
+
148
+ ### Engine
149
+
150
+ | Export | Purpose |
151
+ |--------|---------|
152
+ | `AudioPlaybackEngine` | Multi-track audio playback |
153
+ | `VocalEffectsEngine` | Real-time vocal effects (reverb, delay, distortion, etc.) |
154
+ | `SimpleSynth` | Basic synthesizer |
155
+ | `getAudioContext` | Shared AudioContext management |
156
+
157
+ ### Utilities
158
+
159
+ Karaoke scoring, pitch analysis, audio editor operations, timeline calculations, LFO engine, arpeggiator, step sequencer, CC automation, groove templates, vocal performance metrics, undo/redo, latency estimation.
160
+
161
+ ### Models
162
+
163
+ Type definitions for karaoke notes, audio projects, DMX channels, playlists, editor state, MIDI events, and timeline operations.
164
+
165
+ ## Build
166
+
167
+ ```bash
168
+ npm run build # Vite library build
169
+ npm run typecheck # TypeScript type checking
170
+ npm run test # Vitest unit tests
171
+ ```
172
+
173
+ ## License
174
+
175
+ MIT © NiceToDev
@@ -0,0 +1 @@
1
+ (function(){"use strict";function h(e,a,i){let s=0;for(let t=0;t<e.length;t++)s+=e[t]*e[t];if(s=Math.sqrt(s/e.length),s<i)return 0;let r=-1,l=0;for(let t=20;t<e.length/2;t++){let o=0;for(let n=0;n<e.length/2;n++)o+=e[n]*e[n+t];o/=e.length/2,o>l&&(l=o,r=t)}return r>0?a/r:0}self.onmessage=e=>{const{id:a,buffer:i,sampleRate:s,rmsThreshold:r}=e.data,l=h(i,s,r),t={id:a,hz:l};self.postMessage(t)}})();
@@ -0,0 +1 @@
1
+ (function(){"use strict";function k(t){return t>=.95?"Perfect":t>=.8?"Great":t>=.6?"Good":t>=.4?"OK":t>=.2?"Bad":"Awful"}function O(t){return t>=50?3:t>=30?2.5:t>=20?2:t>=10?1.5:1}function V(t,s,n){const{semitoneTolerance:c,preWindow:a,postExtra:l}=n,S=n.segMs??.25,G=typeof n.completionBonusFactor=="number"?n.completionBonusFactor:.15,H=typeof n.goldFullBonusFactor=="number"?n.goldFullBonusFactor:.3,N=typeof n.difficultyMult=="number"?n.difficultyMult:1,v=!!n.disableGoldNotes;let B=0,z=0,A=0;const W=[];let u=0,E=0,T=0;const x=new Map;t.forEach((o,h)=>{const d=o.startTime,Q=o.startTime+o.duration,U=d-a,X=Q+l,K=s.filter(e=>e.t>=U&&e.t<=X&&e.hz>0);if(!K||K.length===0)return;const m=Math.max(1,Math.ceil((o.duration||.25)/S)),Y=Math.max(10,Math.round(100*(o.duration||1))),Z=Math.max(1,Math.round(Y/m));let F=0;const y=[];for(let e=0;e<m;e++){const M=d+e*(o.duration/m),p=d+(e+1)*(o.duration/m),R=Math.min(.06,o.duration/m*.2),f=M-R,g=p+R,r=s.filter(i=>i.t>=f&&i.t<=g&&i.hz>0);if(!r||r.length===0)continue;let L=0;r.forEach(i=>{const ot=12*Math.log2(i.hz/440)+69,nt=Math.abs(ot-o.pitch);L+=nt});const $=L/r.length;let b=0;if(c<=0)b=$===0?1:0;else{const i=c*2;b=Math.max(0,1-Math.min($/i,1))}if(b<=0)continue;const tt=!v&&o.isGold?2:1,w=Math.round(Z*tt*b);w>0&&(B+=w,F+=w,y.push({segIndex:e,frac:b,add:w,segStart:f,segEnd:g,visualStart:M,visualEnd:p}))}const P=o.line??0;x.has(P)||x.set(P,{total:0,hit:0,comboBonus:0});const C=x.get(P);if(C.total++,F>0){u++,u>E&&(E=u),C.hit++;const e=O(u),M=e>1?Math.round(F*(e-1)):0;T+=M,C.comboBonus+=M;const p=Math.max(1,Math.ceil((o.duration||.25)/S)),f=y.length>=p,g=f?Math.round(Math.max(10,Math.round(100*(o.duration||1)))*G*(!v&&o.isGold?1.5:1)*N):0,r=f&&!v&&o.isGold?Math.round(Math.max(10,Math.round(100*(o.duration||1)))*H*N):0;z+=g,A+=r,W.push({noteKey:`${o.line??0}-${o.idx??0}`,segments:y,totalAdded:F,completed:f,completionBonus:g,goldFullBonus:r})}else u=0});const D=[];for(const[o,h]of x.entries()){const d=h.total>0?h.hit/h.total:0;D.push({verseIndex:o,hitFraction:d,label:k(d),comboBonus:h.comboBonus})}const J={maxCombo:E,currentCombo:u,totalComboBonus:T},I=T+z+A;return{classicScore:B,bonusScore:I,totalScore:B+I,total:B,perNote:W,combo:J,verseRatings:D}}function _(t,s){let n=0;for(const c of t){const a=Math.max(10,Math.round(100*(c.duration||1))),l=!s&&c.isGold?2:1;n+=a*l}return n}function j(t,s){return s<=0?0:Math.min(1e4,Math.round(t/s*1e4))}function q(t,s,n){const c=_(s,n);if(c<=0)return{...t,classicScore:0,bonusScore:0,totalScore:0,total:0};const a=j(t.classicScore,c),l=Math.round(t.bonusScore/c*1e4);return{...t,classicScore:a,bonusScore:l,totalScore:a+l,total:a}}self.onmessage=t=>{const{id:s,notes:n,points:c,params:a}=t.data,l=V(n,c,a),S=q(l,n,a.disableGoldNotes),G={id:s,result:S};self.postMessage(G)}})();
@@ -0,0 +1,29 @@
1
+ /**
2
+ * noteSoundSets — registry of available NoteRiver sound presets.
3
+ *
4
+ * Each set corresponds to a subdirectory under /assets/soundfonts/notes/
5
+ * containing note-{64..77}.wav files. The 'none' set uses no audio at all.
6
+ */
7
+ export interface NoteSoundSet {
8
+ /** Unique id stored in localStorage / synced settings */
9
+ id: string;
10
+ /** Display label */
11
+ name: string;
12
+ /** Short description */
13
+ description: string;
14
+ /** Emoji icon */
15
+ emoji: string;
16
+ /**
17
+ * Subdirectory name under /assets/soundfonts/notes/.
18
+ * null = no audio (silent mode).
19
+ */
20
+ dir: string | null;
21
+ /** Attribution text (shown in a tooltip when non-empty) */
22
+ attribution?: string;
23
+ }
24
+ export declare const NOTE_SOUND_SETS: NoteSoundSet[];
25
+ export declare const DEFAULT_SOUND_SET_ID = "concert-harp";
26
+ export declare const SOUND_SET_MAP: Record<string, NoteSoundSet>;
27
+ export declare function loadSoundSetId(): string;
28
+ export declare function saveSoundSetId(id: string): void;
29
+ //# sourceMappingURL=noteSoundSets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noteSoundSets.d.ts","sourceRoot":"","sources":["../../src/config/noteSoundSets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,YAAY,EAsCzC,CAAA;AAED,eAAO,MAAM,oBAAoB,iBAAiB,CAAA;AAElD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CACE,CAAA;AAKzD,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAI/C"}
@@ -0,0 +1,2 @@
1
+ export declare const LAYER_COLORS: string[];
2
+ //# sourceMappingURL=audioColors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioColors.d.ts","sourceRoot":"","sources":["../../src/constants/audioColors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,UAExB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Global debug flag for the entire karaoke flow.
3
+ *
4
+ * When enabled, detailed step-by-step console.log messages are emitted
5
+ * across all karaoke-related hooks and services — visible even in
6
+ * production builds (bypasses the scoped logger level).
7
+ *
8
+ * Toggle via:
9
+ * - Environment variable: VITE_DEBUG_KARAOKE=true in .env
10
+ * - Browser console at runtime: window.DEBUG_KARAOKE = true
11
+ *
12
+ * Usage in any karaoke file:
13
+ * import { dkLog } from '../constants/debugKaraoke';
14
+ * dkLog('stepName', 'message', { extra });
15
+ */
16
+ /** Master switch — set VITE_DEBUG_KARAOKE=true in .env, or at runtime: window.DEBUG_KARAOKE = true */
17
+ export declare const DEBUG_KARAOKE: boolean;
18
+ /** Shorthand logger that only prints when DEBUG_KARAOKE or window.DEBUG_KARAOKE is on. */
19
+ export declare function dkLog(step: string, message: string, ...args: unknown[]): void;
20
+ //# sourceMappingURL=debugKaraoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugKaraoke.d.ts","sourceRoot":"","sources":["../../src/constants/debugKaraoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sGAAsG;AACtG,eAAO,MAAM,aAAa,EAAE,OAEsB,CAAC;AAGnD,0FAA0F;AAC1F,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAY7E"}
@@ -0,0 +1,18 @@
1
+ export type DifficultyLevel = 'easy' | 'normal' | 'hard';
2
+ export interface ScoringPreset {
3
+ semitoneTolerance: number;
4
+ preWindow: number;
5
+ postExtra: number;
6
+ difficultyMult: number;
7
+ }
8
+ export declare const DefaultScoringPresets: Record<DifficultyLevel, ScoringPreset>;
9
+ export declare let ScoringPresets: Record<DifficultyLevel, ScoringPreset>;
10
+ interface KaraokeScoringConfigResponse {
11
+ presets?: Partial<Record<DifficultyLevel, Partial<ScoringPreset>>>;
12
+ }
13
+ export declare const loadRemoteScoringPresets: (fetcher?: {
14
+ getKaraokeScoringConfig: () => Promise<KaraokeScoringConfigResponse | null>;
15
+ }) => Promise<Record<DifficultyLevel, ScoringPreset>>;
16
+ export default ScoringPresets;
17
+ export declare const getScoringPreset: (level?: DifficultyLevel) => ScoringPreset;
18
+ //# sourceMappingURL=karaokeScoringConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karaokeScoringConfig.d.ts","sourceRoot":"","sources":["../../src/constants/karaokeScoringConfig.ts"],"names":[],"mappings":"AAA2C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpG,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAIxE,CAAC;AAoCF,eAAO,IAAI,cAAc,wCAAiB,CAAC;AAG3C,UAAU,4BAA4B;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,wBAAwB,GAAU,UAAU;IAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAA;CAAE,oDAkBvI,CAAC;AAEF,eAAe,cAAc,CAAC;AAG9B,eAAO,MAAM,gBAAgB,GAAI,QAAO,eAA0B,KAAG,aAEpE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const PLAYER_COLORS: string[];
2
+ export declare function getNextPlayerColor(usedColors: string[]): string;
3
+ export declare const PLAYER_COLOR_VARS: string[];
4
+ export declare function getNextPlayerColorCss(usedColors: string[]): string;
5
+ //# sourceMappingURL=playerColors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playerColors.d.ts","sourceRoot":"","sources":["../../src/constants/playerColors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,UAiBzB,CAAC;AAGF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAM/D;AAGD,eAAO,MAAM,iBAAiB,UAAoE,CAAC;AAInG,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAOlE"}
@@ -0,0 +1,3 @@
1
+ export declare const THEME_KEY = "nice2dev_theme";
2
+ export declare const gripStyle: React.CSSProperties;
3
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/constants/ui.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,aAU7B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ export type NiceTranslateFn = (key: string, defaultValue?: string) => string;
3
+ export interface NiceI18nProviderProps {
4
+ t: NiceTranslateFn;
5
+ children: React.ReactNode;
6
+ }
7
+ export declare const NiceI18nProvider: React.FC<NiceI18nProviderProps>;
8
+ export declare function useNiceTranslation(): {
9
+ t: NiceTranslateFn;
10
+ };
11
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/core/i18n.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAM7E,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAE5D,CAAC;AAEF,wBAAgB,kBAAkB,IAAI;IAAE,CAAC,EAAE,eAAe,CAAA;CAAE,CAG3D"}
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { DmxDeviceChannelInfo } from '../models/modelsDmx';
3
+ export type DmxChannelControlProps = {
4
+ channel: DmxDeviceChannelInfo;
5
+ value: number;
6
+ onChange: (val: number) => void;
7
+ onCommit?: (val: number) => void;
8
+ };
9
+ export declare const DmxSliderControl: React.FC<DmxChannelControlProps & {
10
+ showDirectionHint?: boolean;
11
+ }>;
12
+ export declare const DmxOptionsControl: React.FC<DmxChannelControlProps>;
13
+ export declare const DmxChannelControl: React.FC<DmxChannelControlProps>;
14
+ //# sourceMappingURL=DmxChannelControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DmxChannelControls.d.ts","sourceRoot":"","sources":["../../src/dmx/DmxChannelControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAEH,KAAK,oBAAoB,EAE5B,MAAM,qBAAqB,CAAC;AAwB7B,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,GAAG;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,CA4C/F,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAiC9D,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAa9D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ import { DmxService } from './dmxService';
3
+ export interface DmxEditorProps {
4
+ /** Implementation of DMX operations (REST, SignalR, etc.). */
5
+ service: DmxService;
6
+ /** Polling interval in ms. Default 500. Set 0 to disable. */
7
+ pollInterval?: number;
8
+ className?: string;
9
+ style?: React.CSSProperties;
10
+ }
11
+ export declare function DmxEditor({ service, pollInterval, className, style }: DmxEditorProps): import("react/jsx-runtime").JSX.Element;
12
+ export default DmxEditor;
13
+ //# sourceMappingURL=DmxEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DmxEditor.d.ts","sourceRoot":"","sources":["../../src/dmx/DmxEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,MAAM,WAAW,cAAc;IAC3B,8DAA8D;IAC9D,OAAO,EAAE,UAAU,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAED,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,YAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,cAAc,2CAmI1F;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { DmxStateDto, FtdiDeviceDto } from '../models/modelsDmx';
2
+ export interface DmxService {
3
+ /** Enumerate available FTDI USB-DMX devices. */
4
+ getDevices(): Promise<FtdiDeviceDto[]>;
5
+ /** Read current DMX state (channels + fps + startCode). */
6
+ getState(): Promise<DmxStateDto>;
7
+ /** Open an FTDI port (by serial number or description). */
8
+ openPort(id: string): Promise<void>;
9
+ /** Close the active port. */
10
+ closePort(): Promise<void>;
11
+ /** Update a single channel (1-based). */
12
+ setChannel(ch: number, value: number): Promise<void>;
13
+ /** Set all 512 channels at once (0-indexed). */
14
+ setUniverse?(payload512: number[]): Promise<void>;
15
+ /** Apply DMX configuration (fps + startCode). */
16
+ configure(fps: number, startCode: number): Promise<void>;
17
+ /** Blackout — set all channels to 0. */
18
+ blackout(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=dmxService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dmxService.d.ts","sourceRoot":"","sources":["../../src/dmx/dmxService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EAChB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,UAAU;IACvB,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,6BAA6B;IAC7B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,yCAAyC;IACzC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,gDAAgD;IAChD,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,wCAAwC;IACxC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { AudioClip } from '../models/modelsEditor';
3
+ interface Props {
4
+ clip: AudioClip;
5
+ onSelect?: (clip: AudioClip) => void;
6
+ }
7
+ declare const _default: React.NamedExoticComponent<Props>;
8
+ export default _default;
9
+ //# sourceMappingURL=AudioClipBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioClipBox.d.ts","sourceRoot":"","sources":["../../src/editor/AudioClipBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,UAAU,KAAK;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACxC;;AAgCD,wBAAwC"}
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ declare const _default: React.NamedExoticComponent<{
3
+ file: File;
4
+ duration?: number;
5
+ }>;
6
+ export default _default;
7
+ //# sourceMappingURL=AudioClipInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioClipInfo.d.ts","sourceRoot":"","sources":["../../src/editor/AudioClipInfo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;;UAGY,IAAI;eAAa,MAAM;;AAgB7D,wBAAyC"}
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { CCLaneEvent } from './CCLane';
3
+ import { MidiNote } from '../models/editor/midiTypes';
4
+ interface AudioEditorPianoRollProps {
5
+ notes: MidiNote[];
6
+ onAddNote: (pitch: number, start: number, duration: number) => void;
7
+ onRemoveNote: (noteId: number) => void;
8
+ selectedNoteId?: number | null;
9
+ setSelectedNoteId?: (id: number | null) => void;
10
+ duration?: number;
11
+ zoom?: number;
12
+ ccEvents?: CCLaneEvent[];
13
+ onAddCCEvent?: (cc: number, value: number, time: number) => void;
14
+ onUpdateCCEvent?: (id: number, value: number, time: number, handleType?: 'linear' | 'step' | 'exp') => void;
15
+ onRemoveCCEvent?: (id: number) => void;
16
+ ccType?: number;
17
+ }
18
+ declare const AudioEditorPianoRoll: React.FC<AudioEditorPianoRollProps>;
19
+ export default AudioEditorPianoRoll;
20
+ //# sourceMappingURL=AudioEditorPianoRoll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioEditorPianoRoll.d.ts","sourceRoot":"","sources":["../../src/editor/AudioEditorPianoRoll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D,UAAU,yBAAyB;IACjC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IAC5G,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6B7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { MidiNote } from '../models/editor/midiTypes';
3
+ import { CCLaneEvent } from './CCLane';
4
+ interface AudioEditorPianoRollContainerProps {
5
+ notes: MidiNote[];
6
+ onAddNote: (pitch: number, start: number, duration: number) => void;
7
+ onRemoveNote: (noteId: number) => void;
8
+ selectedNoteId?: number | null;
9
+ setSelectedNoteId?: (id: number | null) => void;
10
+ duration?: number;
11
+ zoom?: number;
12
+ ccEvents?: CCLaneEvent[];
13
+ onAddCCEvent?: (cc: number, value: number, time: number) => void;
14
+ onUpdateCCEvent?: (id: number, value: number, time: number, handleType?: 'linear' | 'step' | 'exp') => void;
15
+ onRemoveCCEvent?: (id: number) => void;
16
+ ccType?: number;
17
+ }
18
+ declare const AudioEditorPianoRollContainer: React.FC<AudioEditorPianoRollContainerProps>;
19
+ export default AudioEditorPianoRollContainer;
20
+ //# sourceMappingURL=AudioEditorPianoRollContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioEditorPianoRollContainer.d.ts","sourceRoot":"","sources":["../../src/editor/AudioEditorPianoRollContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,kCAAkC;IAC1C,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IAC5G,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAAC,kCAAkC,CAE/E,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { AudioLayer } from '../models/modelsEditor';
3
+ interface Props {
4
+ layer: AudioLayer;
5
+ onLayerChange: (layer: AudioLayer) => void;
6
+ onSave?: (layer: AudioLayer) => void;
7
+ }
8
+ declare const AudioLayerDetailsComponent: React.FC<Props>;
9
+ export default AudioLayerDetailsComponent;
10
+ //# sourceMappingURL=AudioLayerDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioLayerDetails.d.ts","sourceRoot":"","sources":["../../src/editor/AudioLayerDetails.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,UAAU,KAAK;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAMD,QAAA,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkE/C,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { AudioLayer } from '../models/modelsEditor';
3
+ interface AudioLayerDetailsContainerProps {
4
+ layer: AudioLayer;
5
+ onLayerChange: (layer: AudioLayer) => void;
6
+ onSave?: (layer: AudioLayer) => void;
7
+ }
8
+ declare const AudioLayerDetailsContainer: React.FC<AudioLayerDetailsContainerProps>;
9
+ export default AudioLayerDetailsContainer;
10
+ //# sourceMappingURL=AudioLayerDetailsContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioLayerDetailsContainer.d.ts","sourceRoot":"","sources":["../../src/editor/AudioLayerDetailsContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,UAAU,+BAA+B;IACvC,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED,QAAA,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAEzE,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ interface AudioLayersNavContainerProps {
3
+ onAddLayer: () => void;
4
+ onLoadPreset: () => void;
5
+ onSavePreset: () => void;
6
+ }
7
+ declare const AudioLayersNavContainer: React.FC<AudioLayersNavContainerProps>;
8
+ export default AudioLayersNavContainer;
9
+ //# sourceMappingURL=AudioLayersNavContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioLayersNavContainer.d.ts","sourceRoot":"","sources":["../../src/editor/AudioLayersNavContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAEnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { WaveformData } from '../engine/audioTimeline';
3
+ interface AudioMiniMapProps {
4
+ duration: number;
5
+ currentTime: number;
6
+ bpm: number;
7
+ waveform: WaveformData;
8
+ }
9
+ declare const _default: React.NamedExoticComponent<AudioMiniMapProps>;
10
+ export default _default;
11
+ //# sourceMappingURL=AudioMiniMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioMiniMap.d.ts","sourceRoot":"","sources":["../../src/editor/AudioMiniMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAA+B,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEpF,UAAU,iBAAiB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,YAAY,CAAC;CAC1B;;AA8BD,wBAAwC"}
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ interface AudioMiniMapContainerProps {
3
+ duration: number;
4
+ currentTime: number;
5
+ bpm: number;
6
+ waveform: number[];
7
+ }
8
+ declare const AudioMiniMapContainer: React.FC<AudioMiniMapContainerProps>;
9
+ export default AudioMiniMapContainer;
10
+ //# sourceMappingURL=AudioMiniMapContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioMiniMapContainer.d.ts","sourceRoot":"","sources":["../../src/editor/AudioMiniMapContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,0BAA0B;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAE/D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { AudioSourceType } from '../engine/audioSource';
3
+ type Params = Record<string, unknown>;
4
+ interface Props {
5
+ selectedSource?: string;
6
+ params: Params;
7
+ onSelectSource: (source: AudioSourceType, defaultParams?: Params) => void;
8
+ onParamsChange: (next: Params) => void;
9
+ }
10
+ declare const AudioSourceDetailsComponent: React.FC<Props>;
11
+ export default AudioSourceDetailsComponent;
12
+ //# sourceMappingURL=AudioSourceDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioSourceDetails.d.ts","sourceRoot":"","sources":["../../src/editor/AudioSourceDetails.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1E,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtC,UAAU,KAAK;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAOD,QAAA,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4DhD,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { default as React } from 'react';
2
+ import { WaveformData } from '../engine/audioTimeline';
3
+ interface AudioTimelineProps {
4
+ zoom: number;
5
+ duration: number;
6
+ isPlaying: boolean;
7
+ isRecording: boolean;
8
+ currentTime: number;
9
+ bpm?: number;
10
+ snapEnabled?: boolean;
11
+ snapMode?: 'beat' | 'bar' | 'second' | 'sub-beat';
12
+ waveform?: WaveformData;
13
+ waveformColor?: string;
14
+ onCurrentTimeChange: (value: number) => void;
15
+ onZoomChange?: (value: number) => void;
16
+ }
17
+ export interface AudioTimelineRef {
18
+ addSoundToLayer: (audioBuffer: AudioBuffer) => void;
19
+ }
20
+ declare const AudioTimeline: React.FC<AudioTimelineProps>;
21
+ export default AudioTimeline;
22
+ //# sourceMappingURL=AudioTimeline.d.ts.map