@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.
- package/CHANGELOG.md +27 -0
- package/LICENSE +21 -0
- package/README.md +175 -0
- package/dist/assets/pitchWorker-BgAp5Z97.js +1 -0
- package/dist/assets/scoringWorker-B1PkYu_m.js +1 -0
- package/dist/config/noteSoundSets.d.ts +29 -0
- package/dist/config/noteSoundSets.d.ts.map +1 -0
- package/dist/constants/audioColors.d.ts +2 -0
- package/dist/constants/audioColors.d.ts.map +1 -0
- package/dist/constants/debugKaraoke.d.ts +20 -0
- package/dist/constants/debugKaraoke.d.ts.map +1 -0
- package/dist/constants/karaokeScoringConfig.d.ts +18 -0
- package/dist/constants/karaokeScoringConfig.d.ts.map +1 -0
- package/dist/constants/playerColors.d.ts +5 -0
- package/dist/constants/playerColors.d.ts.map +1 -0
- package/dist/constants/ui.d.ts +3 -0
- package/dist/constants/ui.d.ts.map +1 -0
- package/dist/core/i18n.d.ts +11 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/dmx/DmxChannelControls.d.ts +14 -0
- package/dist/dmx/DmxChannelControls.d.ts.map +1 -0
- package/dist/dmx/DmxEditor.d.ts +13 -0
- package/dist/dmx/DmxEditor.d.ts.map +1 -0
- package/dist/dmx/dmxService.d.ts +20 -0
- package/dist/dmx/dmxService.d.ts.map +1 -0
- package/dist/editor/AudioClipBox.d.ts +9 -0
- package/dist/editor/AudioClipBox.d.ts.map +1 -0
- package/dist/editor/AudioClipInfo.d.ts +7 -0
- package/dist/editor/AudioClipInfo.d.ts.map +1 -0
- package/dist/editor/AudioEditorPianoRoll.d.ts +20 -0
- package/dist/editor/AudioEditorPianoRoll.d.ts.map +1 -0
- package/dist/editor/AudioEditorPianoRollContainer.d.ts +20 -0
- package/dist/editor/AudioEditorPianoRollContainer.d.ts.map +1 -0
- package/dist/editor/AudioLayerDetails.d.ts +10 -0
- package/dist/editor/AudioLayerDetails.d.ts.map +1 -0
- package/dist/editor/AudioLayerDetailsContainer.d.ts +10 -0
- package/dist/editor/AudioLayerDetailsContainer.d.ts.map +1 -0
- package/dist/editor/AudioLayersNavContainer.d.ts +9 -0
- package/dist/editor/AudioLayersNavContainer.d.ts.map +1 -0
- package/dist/editor/AudioMiniMap.d.ts +11 -0
- package/dist/editor/AudioMiniMap.d.ts.map +1 -0
- package/dist/editor/AudioMiniMapContainer.d.ts +10 -0
- package/dist/editor/AudioMiniMapContainer.d.ts.map +1 -0
- package/dist/editor/AudioSourceDetails.d.ts +12 -0
- package/dist/editor/AudioSourceDetails.d.ts.map +1 -0
- package/dist/editor/AudioTimeline.d.ts +22 -0
- package/dist/editor/AudioTimeline.d.ts.map +1 -0
- package/dist/editor/AudioTimelineContainer.d.ts +18 -0
- package/dist/editor/AudioTimelineContainer.d.ts.map +1 -0
- package/dist/editor/AudioTimelineNavContainer.d.ts +14 -0
- package/dist/editor/AudioTimelineNavContainer.d.ts.map +1 -0
- package/dist/editor/CCLane.d.ts +23 -0
- package/dist/editor/CCLane.d.ts.map +1 -0
- package/dist/editor/CCLaneSelector.d.ts +14 -0
- package/dist/editor/CCLaneSelector.d.ts.map +1 -0
- package/dist/editor/PianoRoll.d.ts +14 -0
- package/dist/editor/PianoRoll.d.ts.map +1 -0
- package/dist/editor/Waveform.d.ts +9 -0
- package/dist/editor/Waveform.d.ts.map +1 -0
- package/dist/editor/editorDisplayModes.d.ts +37 -0
- package/dist/editor/editorDisplayModes.d.ts.map +1 -0
- package/dist/editor/editorIO.d.ts +11 -0
- package/dist/editor/editorIO.d.ts.map +1 -0
- package/dist/editor/hooks/index.d.ts +7 -0
- package/dist/editor/hooks/index.d.ts.map +1 -0
- package/dist/editor/hooks/useAutoSave.d.ts +13 -0
- package/dist/editor/hooks/useAutoSave.d.ts.map +1 -0
- package/dist/editor/hooks/usePlaybackEngine.d.ts +35 -0
- package/dist/editor/hooks/usePlaybackEngine.d.ts.map +1 -0
- package/dist/editor/hooks/useProjectCRUD.d.ts +45 -0
- package/dist/editor/hooks/useProjectCRUD.d.ts.map +1 -0
- package/dist/editor/hooks/useRecording.d.ts +46 -0
- package/dist/editor/hooks/useRecording.d.ts.map +1 -0
- package/dist/editor/nav/AudioLayersNav.d.ts +9 -0
- package/dist/editor/nav/AudioLayersNav.d.ts.map +1 -0
- package/dist/editor/nav/AudioProjectSectionNav.d.ts +12 -0
- package/dist/editor/nav/AudioProjectSectionNav.d.ts.map +1 -0
- package/dist/editor/nav/AudioTimelineNav.d.ts +14 -0
- package/dist/editor/nav/AudioTimelineNav.d.ts.map +1 -0
- package/dist/editor/nav/SaveLoadControls.d.ts +9 -0
- package/dist/editor/nav/SaveLoadControls.d.ts.map +1 -0
- package/dist/editor/panels/AdvancedEditingPanel.d.ts +30 -0
- package/dist/editor/panels/AdvancedEditingPanel.d.ts.map +1 -0
- package/dist/editor/panels/ArpeggiatorPanel.d.ts +12 -0
- package/dist/editor/panels/ArpeggiatorPanel.d.ts.map +1 -0
- package/dist/editor/panels/CCAutomationLaneEditor.d.ts +19 -0
- package/dist/editor/panels/CCAutomationLaneEditor.d.ts.map +1 -0
- package/dist/editor/panels/DisplayModeSelector.d.ts +9 -0
- package/dist/editor/panels/DisplayModeSelector.d.ts.map +1 -0
- package/dist/editor/panels/EditorPanels.d.ts +66 -0
- package/dist/editor/panels/EditorPanels.d.ts.map +1 -0
- package/dist/editor/panels/LFOPanel.d.ts +12 -0
- package/dist/editor/panels/LFOPanel.d.ts.map +1 -0
- package/dist/editor/panels/LayerTrack.d.ts +17 -0
- package/dist/editor/panels/LayerTrack.d.ts.map +1 -0
- package/dist/editor/panels/ProjectPanel.d.ts +23 -0
- package/dist/editor/panels/ProjectPanel.d.ts.map +1 -0
- package/dist/editor/panels/SectionPanel.d.ts +11 -0
- package/dist/editor/panels/SectionPanel.d.ts.map +1 -0
- package/dist/editor/panels/StepSequencerPanel.d.ts +8 -0
- package/dist/editor/panels/StepSequencerPanel.d.ts.map +1 -0
- package/dist/editor/useEditorRecording.d.ts +45 -0
- package/dist/editor/useEditorRecording.d.ts.map +1 -0
- package/dist/editor/useEditorTrack.d.ts +71 -0
- package/dist/editor/useEditorTrack.d.ts.map +1 -0
- package/dist/effects/NoteParticles.d.ts +2 -0
- package/dist/effects/NoteParticles.d.ts.map +1 -0
- package/dist/effects/NoteRiver.d.ts +15 -0
- package/dist/effects/NoteRiver.d.ts.map +1 -0
- package/dist/effects/noteThemeColors.d.ts +14 -0
- package/dist/effects/noteThemeColors.d.ts.map +1 -0
- package/dist/engine/audioContext.d.ts +12 -0
- package/dist/engine/audioContext.d.ts.map +1 -0
- package/dist/engine/audioKeyboard.d.ts +28 -0
- package/dist/engine/audioKeyboard.d.ts.map +1 -0
- package/dist/engine/audioLayerDetails.d.ts +13 -0
- package/dist/engine/audioLayerDetails.d.ts.map +1 -0
- package/dist/engine/audioPlaybackEngine.d.ts +186 -0
- package/dist/engine/audioPlaybackEngine.d.ts.map +1 -0
- package/dist/engine/audioProject.d.ts +10 -0
- package/dist/engine/audioProject.d.ts.map +1 -0
- package/dist/engine/audioSource.d.ts +38 -0
- package/dist/engine/audioSource.d.ts.map +1 -0
- package/dist/engine/audioTimeline.d.ts +54 -0
- package/dist/engine/audioTimeline.d.ts.map +1 -0
- package/dist/engine/audioUtils.d.ts +3 -0
- package/dist/engine/audioUtils.d.ts.map +1 -0
- package/dist/engine/generate-pitch-points.d.ts +2 -0
- package/dist/engine/generate-pitch-points.d.ts.map +1 -0
- package/dist/engine/instrumentPresets.d.ts +13 -0
- package/dist/engine/instrumentPresets.d.ts.map +1 -0
- package/dist/engine/pitch-worklet-processor.d.ts +11 -0
- package/dist/engine/pitch-worklet-processor.d.ts.map +1 -0
- package/dist/engine/pitch_client.d.ts +16 -0
- package/dist/engine/pitch_client.d.ts.map +1 -0
- package/dist/engine/recording.d.ts +31 -0
- package/dist/engine/recording.d.ts.map +1 -0
- package/dist/engine/simpleSynth.d.ts +46 -0
- package/dist/engine/simpleSynth.d.ts.map +1 -0
- package/dist/hooks/useCCAutomation.d.ts +36 -0
- package/dist/hooks/useCCAutomation.d.ts.map +1 -0
- package/dist/hooks/useStepSequencer.d.ts +48 -0
- package/dist/hooks/useStepSequencer.d.ts.map +1 -0
- package/dist/index.cjs +73 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +13179 -0
- package/dist/karaoke/AudioPitchAnalyzer.d.ts +25 -0
- package/dist/karaoke/AudioPitchAnalyzer.d.ts.map +1 -0
- package/dist/karaoke/BarFillEditor.d.ts +14 -0
- package/dist/karaoke/BarFillEditor.d.ts.map +1 -0
- package/dist/karaoke/KaraokeLyrics.d.ts +9 -0
- package/dist/karaoke/KaraokeLyrics.d.ts.map +1 -0
- package/dist/karaoke/KaraokeTimeline.d.ts +21 -0
- package/dist/karaoke/KaraokeTimeline.d.ts.map +1 -0
- package/dist/karaoke/karaokeTimelineTypes.d.ts +77 -0
- package/dist/karaoke/karaokeTimelineTypes.d.ts.map +1 -0
- package/dist/karaoke/rendering/fontCatalog.d.ts +30 -0
- package/dist/karaoke/rendering/fontCatalog.d.ts.map +1 -0
- package/dist/karaoke/rendering/glossyBarCaps.d.ts +57 -0
- package/dist/karaoke/rendering/glossyBarCaps.d.ts.map +1 -0
- package/dist/karaoke/rendering/glossyBarPatterns.d.ts +16 -0
- package/dist/karaoke/rendering/glossyBarPatterns.d.ts.map +1 -0
- package/dist/karaoke/rendering/glossyBarRenderer.d.ts +65 -0
- package/dist/karaoke/rendering/glossyBarRenderer.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeAnimations.d.ts +25 -0
- package/dist/karaoke/rendering/karaokeAnimations.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeDisplaySettings.d.ts +65 -0
- package/dist/karaoke/rendering/karaokeDisplaySettings.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeLyrics.d.ts +54 -0
- package/dist/karaoke/rendering/karaokeLyrics.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeNoteParsing.d.ts +20 -0
- package/dist/karaoke/rendering/karaokeNoteParsing.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeSettings.d.ts +143 -0
- package/dist/karaoke/rendering/karaokeSettings.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeTimeline.d.ts +8 -0
- package/dist/karaoke/rendering/karaokeTimeline.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeTimelineRenderer.d.ts +45 -0
- package/dist/karaoke/rendering/karaokeTimelineRenderer.d.ts.map +1 -0
- package/dist/karaoke/rendering/karaokeTimelineTypes.d.ts +32 -0
- package/dist/karaoke/rendering/karaokeTimelineTypes.d.ts.map +1 -0
- package/dist/karaoke/rendering/padNotePlayer.d.ts +73 -0
- package/dist/karaoke/rendering/padNotePlayer.d.ts.map +1 -0
- package/dist/karaoke/rendering/textureCache.d.ts +32 -0
- package/dist/karaoke/rendering/textureCache.d.ts.map +1 -0
- package/dist/karaoke/rendering/textureCatalog.d.ts +27 -0
- package/dist/karaoke/rendering/textureCatalog.d.ts.map +1 -0
- package/dist/karaokeEditor/KaraokeEditorManager.d.ts +21 -0
- package/dist/karaokeEditor/KaraokeEditorManager.d.ts.map +1 -0
- package/dist/karaokeEditor/KaraokePhaserRenderer.d.ts +11 -0
- package/dist/karaokeEditor/KaraokePhaserRenderer.d.ts.map +1 -0
- package/dist/midi/midiSeedGenerator.d.ts +45 -0
- package/dist/midi/midiSeedGenerator.d.ts.map +1 -0
- package/dist/midi/oxygen25Profile.d.ts +42 -0
- package/dist/midi/oxygen25Profile.d.ts.map +1 -0
- package/dist/midi/useMidiLearn.d.ts +94 -0
- package/dist/midi/useMidiLearn.d.ts.map +1 -0
- package/dist/midi/useOxygen25.d.ts +90 -0
- package/dist/midi/useOxygen25.d.ts.map +1 -0
- package/dist/midi/useWebMidi.d.ts +60 -0
- package/dist/midi/useWebMidi.d.ts.map +1 -0
- package/dist/models/editor/audioTypes.d.ts +35 -0
- package/dist/models/editor/audioTypes.d.ts.map +1 -0
- package/dist/models/editor/fxTypes.d.ts +9 -0
- package/dist/models/editor/fxTypes.d.ts.map +1 -0
- package/dist/models/editor/midiTypes.d.ts +15 -0
- package/dist/models/editor/midiTypes.d.ts.map +1 -0
- package/dist/models/editor/timelineTypes.d.ts +11 -0
- package/dist/models/editor/timelineTypes.d.ts.map +1 -0
- package/dist/models/game/modelsGame.d.ts +12 -0
- package/dist/models/game/modelsGame.d.ts.map +1 -0
- package/dist/models/modelsAiAudio.d.ts +121 -0
- package/dist/models/modelsAiAudio.d.ts.map +1 -0
- package/dist/models/modelsAiVideo.d.ts +75 -0
- package/dist/models/modelsAiVideo.d.ts.map +1 -0
- package/dist/models/modelsAudio.d.ts +160 -0
- package/dist/models/modelsAudio.d.ts.map +1 -0
- package/dist/models/modelsDmx.d.ts +75 -0
- package/dist/models/modelsDmx.d.ts.map +1 -0
- package/dist/models/modelsEditor.d.ts +112 -0
- package/dist/models/modelsEditor.d.ts.map +1 -0
- package/dist/models/modelsKaraoke.d.ts +75 -0
- package/dist/models/modelsKaraoke.d.ts.map +1 -0
- package/dist/models/modelsMusicPlatform.d.ts +8 -0
- package/dist/models/modelsMusicPlatform.d.ts.map +1 -0
- package/dist/models/modelsPlatforms.d.ts +52 -0
- package/dist/models/modelsPlatforms.d.ts.map +1 -0
- package/dist/models/modelsPlaylistManager.d.ts +197 -0
- package/dist/models/modelsPlaylistManager.d.ts.map +1 -0
- package/dist/models/modelsPlaylists.d.ts +97 -0
- package/dist/models/modelsPlaylists.d.ts.map +1 -0
- package/dist/player/GenericPlayer.d.ts +56 -0
- package/dist/player/GenericPlayer.d.ts.map +1 -0
- package/dist/player/GenericPlayerControls.d.ts +17 -0
- package/dist/player/GenericPlayerControls.d.ts.map +1 -0
- package/dist/player/GenericPlayerStage.d.ts +20 -0
- package/dist/player/GenericPlayerStage.d.ts.map +1 -0
- package/dist/player/GenericPlayerStageVisualizer.d.ts +32 -0
- package/dist/player/GenericPlayerStageVisualizer.d.ts.map +1 -0
- package/dist/player/GenericPlayerTrackList.d.ts +10 -0
- package/dist/player/GenericPlayerTrackList.d.ts.map +1 -0
- package/dist/player/YouTubePlayer.d.ts +13 -0
- package/dist/player/YouTubePlayer.d.ts.map +1 -0
- package/dist/player/nowPlayingAdapter.d.ts +19 -0
- package/dist/player/nowPlayingAdapter.d.ts.map +1 -0
- package/dist/player/visualizer/ModeSwitcher.d.ts +12 -0
- package/dist/player/visualizer/ModeSwitcher.d.ts.map +1 -0
- package/dist/player/visualizer/StageVisualizer.d.ts +23 -0
- package/dist/player/visualizer/StageVisualizer.d.ts.map +1 -0
- package/dist/player/visualizer/VuOverlay.d.ts +6 -0
- package/dist/player/visualizer/VuOverlay.d.ts.map +1 -0
- package/dist/player/visualizer/modes/BarsMode.d.ts +2 -0
- package/dist/player/visualizer/modes/BarsMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/BlobFlowMode.d.ts +11 -0
- package/dist/player/visualizer/modes/BlobFlowMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/ColorRipplesMode.d.ts +12 -0
- package/dist/player/visualizer/modes/ColorRipplesMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/CoverMode.d.ts +9 -0
- package/dist/player/visualizer/modes/CoverMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/CozyFireplaceMode.d.ts +14 -0
- package/dist/player/visualizer/modes/CozyFireplaceMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/EqualizerCircleMode.d.ts +2 -0
- package/dist/player/visualizer/modes/EqualizerCircleMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/GridMode.d.ts +2 -0
- package/dist/player/visualizer/modes/GridMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/ImageTornadoMode.d.ts +18 -0
- package/dist/player/visualizer/modes/ImageTornadoMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/LavaLampMode.d.ts +13 -0
- package/dist/player/visualizer/modes/LavaLampMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/NeonTrianglesMode.d.ts +11 -0
- package/dist/player/visualizer/modes/NeonTrianglesMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/OrbitalsMode.d.ts +2 -0
- package/dist/player/visualizer/modes/OrbitalsMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/PaletteMode.d.ts +2 -0
- package/dist/player/visualizer/modes/PaletteMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/ParticlesMode.d.ts +13 -0
- package/dist/player/visualizer/modes/ParticlesMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/PlasmaBallMode.d.ts +3 -0
- package/dist/player/visualizer/modes/PlasmaBallMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/RadialMode.d.ts +2 -0
- package/dist/player/visualizer/modes/RadialMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/RaysMode.d.ts +4 -0
- package/dist/player/visualizer/modes/RaysMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/RiftMode.d.ts +3 -0
- package/dist/player/visualizer/modes/RiftMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/RingsMode.d.ts +2 -0
- package/dist/player/visualizer/modes/RingsMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/SpectrumMode.d.ts +2 -0
- package/dist/player/visualizer/modes/SpectrumMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/StarfieldMode.d.ts +13 -0
- package/dist/player/visualizer/modes/StarfieldMode.d.ts.map +1 -0
- package/dist/player/visualizer/modes/WaveformMode.d.ts +2 -0
- package/dist/player/visualizer/modes/WaveformMode.d.ts.map +1 -0
- package/dist/player/visualizer/types.d.ts +3 -0
- package/dist/player/visualizer/types.d.ts.map +1 -0
- package/dist/player/visualizer/useLocalStorageState.d.ts +2 -0
- package/dist/player/visualizer/useLocalStorageState.d.ts.map +1 -0
- package/dist/playlist/DynamicRuleEditor.d.ts +11 -0
- package/dist/playlist/DynamicRuleEditor.d.ts.map +1 -0
- package/dist/playlist/GenericPlaylist.d.ts +22 -0
- package/dist/playlist/GenericPlaylist.d.ts.map +1 -0
- package/dist/playlist/GenericPlaylistItem.d.ts +41 -0
- package/dist/playlist/GenericPlaylistItem.d.ts.map +1 -0
- package/dist/playlist/PlaylistBrowser.d.ts +24 -0
- package/dist/playlist/PlaylistBrowser.d.ts.map +1 -0
- package/dist/playlist/PlaylistDualPane.d.ts +17 -0
- package/dist/playlist/PlaylistDualPane.d.ts.map +1 -0
- package/dist/playlist/PlaylistGridView.d.ts +12 -0
- package/dist/playlist/PlaylistGridView.d.ts.map +1 -0
- package/dist/playlist/PlaylistList.d.ts +23 -0
- package/dist/playlist/PlaylistList.d.ts.map +1 -0
- package/dist/playlist/PlaylistOverview.d.ts +14 -0
- package/dist/playlist/PlaylistOverview.d.ts.map +1 -0
- package/dist/playlist/PlaylistSearchBar.d.ts +22 -0
- package/dist/playlist/PlaylistSearchBar.d.ts.map +1 -0
- package/dist/playlist/PlaylistSidebar.d.ts +25 -0
- package/dist/playlist/PlaylistSidebar.d.ts.map +1 -0
- package/dist/playlist/PlaylistTagEditor.d.ts +15 -0
- package/dist/playlist/PlaylistTagEditor.d.ts.map +1 -0
- package/dist/playlist/PlaylistTrackList.d.ts +26 -0
- package/dist/playlist/PlaylistTrackList.d.ts.map +1 -0
- package/dist/playlist/useLocalPlaylists.d.ts +17 -0
- package/dist/playlist/useLocalPlaylists.d.ts.map +1 -0
- package/dist/ui-audio.css +1 -0
- package/dist/utils/BaseStreamClient.d.ts +64 -0
- package/dist/utils/BaseStreamClient.d.ts.map +1 -0
- package/dist/utils/arpeggiator.d.ts +49 -0
- package/dist/utils/arpeggiator.d.ts.map +1 -0
- package/dist/utils/articulationEngine.d.ts +69 -0
- package/dist/utils/articulationEngine.d.ts.map +1 -0
- package/dist/utils/audioEditorUtils.d.ts +2 -0
- package/dist/utils/audioEditorUtils.d.ts.map +1 -0
- package/dist/utils/audioFxUtils.d.ts +6 -0
- package/dist/utils/audioFxUtils.d.ts.map +1 -0
- package/dist/utils/audioMidiUtils.d.ts +18 -0
- package/dist/utils/audioMidiUtils.d.ts.map +1 -0
- package/dist/utils/audioPitchAlgorithms.d.ts +3 -0
- package/dist/utils/audioPitchAlgorithms.d.ts.map +1 -0
- package/dist/utils/audioPitchAnalyzeFile.d.ts +26 -0
- package/dist/utils/audioPitchAnalyzeFile.d.ts.map +1 -0
- package/dist/utils/audioTimelineUtils.d.ts +5 -0
- package/dist/utils/audioTimelineUtils.d.ts.map +1 -0
- package/dist/utils/ccAutomation.d.ts +51 -0
- package/dist/utils/ccAutomation.d.ts.map +1 -0
- package/dist/utils/chordScale.d.ts +47 -0
- package/dist/utils/chordScale.d.ts.map +1 -0
- package/dist/utils/clipLauncher.d.ts +97 -0
- package/dist/utils/clipLauncher.d.ts.map +1 -0
- package/dist/utils/colorResolver.d.ts +12 -0
- package/dist/utils/colorResolver.d.ts.map +1 -0
- package/dist/utils/crepeStreaming.d.ts +21 -0
- package/dist/utils/crepeStreaming.d.ts.map +1 -0
- package/dist/utils/drawTool.d.ts +31 -0
- package/dist/utils/drawTool.d.ts.map +1 -0
- package/dist/utils/envelopeFollower.d.ts +46 -0
- package/dist/utils/envelopeFollower.d.ts.map +1 -0
- package/dist/utils/gameAudio.d.ts +237 -0
- package/dist/utils/gameAudio.d.ts.map +1 -0
- package/dist/utils/grooveTemplates.d.ts +69 -0
- package/dist/utils/grooveTemplates.d.ts.map +1 -0
- package/dist/utils/karaokeHelpers.d.ts +61 -0
- package/dist/utils/karaokeHelpers.d.ts.map +1 -0
- package/dist/utils/karaokeMetadata.d.ts +27 -0
- package/dist/utils/karaokeMetadata.d.ts.map +1 -0
- package/dist/utils/karaokeScoring.d.ts +111 -0
- package/dist/utils/karaokeScoring.d.ts.map +1 -0
- package/dist/utils/latencyEstimate.d.ts +8 -0
- package/dist/utils/latencyEstimate.d.ts.map +1 -0
- package/dist/utils/lfoEngine.d.ts +55 -0
- package/dist/utils/lfoEngine.d.ts.map +1 -0
- package/dist/utils/librosaStreaming.d.ts +19 -0
- package/dist/utils/librosaStreaming.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +31 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/macroSystem.d.ts +97 -0
- package/dist/utils/macroSystem.d.ts.map +1 -0
- package/dist/utils/musicPlayerUtils.d.ts +7 -0
- package/dist/utils/musicPlayerUtils.d.ts.map +1 -0
- package/dist/utils/padKaraokeSession.d.ts +50 -0
- package/dist/utils/padKaraokeSession.d.ts.map +1 -0
- package/dist/utils/songDataHelpers.d.ts +59 -0
- package/dist/utils/songDataHelpers.d.ts.map +1 -0
- package/dist/utils/stepSequencer.d.ts +62 -0
- package/dist/utils/stepSequencer.d.ts.map +1 -0
- package/dist/utils/undoRedoUtils.d.ts +5 -0
- package/dist/utils/undoRedoUtils.d.ts.map +1 -0
- package/dist/utils/vocalEffectsEngine.d.ts +64 -0
- package/dist/utils/vocalEffectsEngine.d.ts.map +1 -0
- package/dist/utils/vocalPerformanceMetrics.d.ts +117 -0
- package/dist/utils/vocalPerformanceMetrics.d.ts.map +1 -0
- package/dist/workers/pitchWorker.d.ts +11 -0
- package/dist/workers/pitchWorker.d.ts.map +1 -0
- package/dist/workers/scoringWorker.d.ts +71 -0
- package/dist/workers/scoringWorker.d.ts.map +1 -0
- package/dist/workers/usePitchWorker.d.ts +7 -0
- package/dist/workers/usePitchWorker.d.ts.map +1 -0
- package/dist/workers/useScoringWorker.d.ts +7 -0
- package/dist/workers/useScoringWorker.d.ts.map +1 -0
- package/dist/workers/useWorker.d.ts +12 -0
- package/dist/workers/useWorker.d.ts.map +1 -0
- 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
|
+
[](https://www.npmjs.com/package/@nice2dev/ui-audio)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|