@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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type SourceKind = "youtube" | "tidal" | "spotify" | "hls" | "audio";
|
|
3
|
+
export interface PlaylistItemData {
|
|
4
|
+
id: string;
|
|
5
|
+
index: number;
|
|
6
|
+
artist: string;
|
|
7
|
+
title: string;
|
|
8
|
+
version?: string | undefined;
|
|
9
|
+
lp?: number;
|
|
10
|
+
sourcesAvailable?: SourceKind[];
|
|
11
|
+
}
|
|
12
|
+
export interface PlaylistItemDisplay {
|
|
13
|
+
allowVersion?: boolean;
|
|
14
|
+
dragHandleProps?: React.HTMLAttributes<HTMLButtonElement>;
|
|
15
|
+
}
|
|
16
|
+
export interface PlaylistItemCallbacks {
|
|
17
|
+
onChange: (patch: {
|
|
18
|
+
artist?: string;
|
|
19
|
+
title?: string;
|
|
20
|
+
version?: string | undefined;
|
|
21
|
+
}) => void;
|
|
22
|
+
onRemove: () => void;
|
|
23
|
+
onMoveUp: () => void;
|
|
24
|
+
onMoveDown: () => void;
|
|
25
|
+
onChangeLp?: (n: number) => void;
|
|
26
|
+
onSelectSource?: (kind: SourceKind) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface PlaylistItemState {
|
|
29
|
+
readOnly?: boolean;
|
|
30
|
+
canMoveUp?: boolean;
|
|
31
|
+
canMoveDown?: boolean;
|
|
32
|
+
activeSource?: SourceKind;
|
|
33
|
+
}
|
|
34
|
+
export interface GenericPlaylistItemProps {
|
|
35
|
+
data: PlaylistItemData;
|
|
36
|
+
display: PlaylistItemDisplay;
|
|
37
|
+
callbacks: PlaylistItemCallbacks;
|
|
38
|
+
state: PlaylistItemState;
|
|
39
|
+
}
|
|
40
|
+
export declare const GenericPlaylistItem: React.FC<GenericPlaylistItemProps>;
|
|
41
|
+
//# sourceMappingURL=GenericPlaylistItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericPlaylistItem.d.ts","sourceRoot":"","sources":["../../src/playlist/GenericPlaylistItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAQjD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAK3E,MAAM,WAAW,gBAAgB;IAE7B,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC;AAKD,MAAM,WAAW,mBAAmB;IAEhC,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAC7D;AAKD,MAAM,WAAW,qBAAqB;IAElC,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAC;IAE7F,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CAC/C;AAKD,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B;AAKD,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAKD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAuPlE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SongRecord, PlayerTrack } from '../models/modelsAudio';
|
|
3
|
+
import { SongDescriptorDto } from '../models/modelsPlaylists';
|
|
4
|
+
export interface PlaylistBrowserProps {
|
|
5
|
+
/** Render a library search component. Receives an onPick callback. */
|
|
6
|
+
renderLibrarySearch?: (props: {
|
|
7
|
+
placeholder: string;
|
|
8
|
+
onPick: (record: SongRecord) => void;
|
|
9
|
+
}) => React.ReactNode;
|
|
10
|
+
/** Render full search results. Receives query and onPick callback. */
|
|
11
|
+
renderLibrarySearchResult?: (props: {
|
|
12
|
+
query: string;
|
|
13
|
+
onPick: (record: SongRecord) => void;
|
|
14
|
+
}) => React.ReactNode;
|
|
15
|
+
/** Render library list. Receives action callbacks. */
|
|
16
|
+
renderLibraryList?: (props: {
|
|
17
|
+
onPlayNow: (tracks: PlayerTrack[]) => void;
|
|
18
|
+
onAddToQueue: (tracks: PlayerTrack[]) => void;
|
|
19
|
+
onAddDescriptors: (descs: SongDescriptorDto[]) => void;
|
|
20
|
+
}) => React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare const PlaylistBrowser: React.FC<PlaylistBrowserProps>;
|
|
23
|
+
export default PlaylistBrowser;
|
|
24
|
+
//# sourceMappingURL=PlaylistBrowser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistBrowser.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistBrowser.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,MAAM,WAAW,oBAAoB;IACjC,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAChH,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAChH,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;QAAC,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;QAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;CACzM;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuF1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ManagedPlaylist, PlaylistTag, PlaylistTrack } from '../models/modelsPlaylistManager';
|
|
3
|
+
export interface PlaylistDualPaneProps {
|
|
4
|
+
playlists: ManagedPlaylist[];
|
|
5
|
+
tags: PlaylistTag[];
|
|
6
|
+
onCopyTracks: (sourceId: string, targetId: string, trackIds: string[]) => void;
|
|
7
|
+
onMoveTracks: (sourceId: string, targetId: string, trackIds: string[]) => void;
|
|
8
|
+
onRemoveTracks: (playlistId: string, trackIds: string[]) => void;
|
|
9
|
+
onReorderTracks: (playlistId: string, trackIds: string[]) => void;
|
|
10
|
+
onPlay: (track: PlaylistTrack) => void;
|
|
11
|
+
onTagTracks: (trackIds: string[], tagIds: string[]) => void;
|
|
12
|
+
initialLeftId?: string;
|
|
13
|
+
initialRightId?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const PlaylistDualPane: React.FC<PlaylistDualPaneProps>;
|
|
16
|
+
export default PlaylistDualPane;
|
|
17
|
+
//# sourceMappingURL=PlaylistDualPane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistDualPane.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistDualPane.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EACR,eAAe,EACf,WAAW,EACX,aAAa,EAKhB,MAAM,iCAAiC,CAAC;AAMzC,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/E,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/E,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AA0BD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAkTrD,CAAC;AAeF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ManagedPlaylist, PlaylistTag, PlaylistTrack } from '../models/modelsPlaylistManager';
|
|
3
|
+
interface PlaylistGridViewProps {
|
|
4
|
+
playlist: ManagedPlaylist;
|
|
5
|
+
tags: PlaylistTag[];
|
|
6
|
+
onPlay: (track: PlaylistTrack) => void;
|
|
7
|
+
selectedTrackIds: Set<string>;
|
|
8
|
+
onSelectionChange: (ids: Set<string>) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: React.NamedExoticComponent<PlaylistGridViewProps>;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=PlaylistGridView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistGridView.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistGridView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EACR,eAAe,EACf,WAAW,EACX,aAAa,EAChB,MAAM,iCAAiC,CAAC;AAEzC,UAAU,qBAAqB;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CACjD;;AA4FD,wBAA4C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { LocalPlaylist } from './useLocalPlaylists';
|
|
3
|
+
/** Music platform identifier for remote playlist sync */
|
|
4
|
+
export type MusicPlatform = 'tidal' | 'spotify' | 'youtube' | 'soundcloud';
|
|
5
|
+
export interface CreatePlaylistOnPlatformRequest {
|
|
6
|
+
platform: MusicPlatform;
|
|
7
|
+
name: string;
|
|
8
|
+
songs: unknown[];
|
|
9
|
+
}
|
|
10
|
+
export interface CreatePlaylistResult {
|
|
11
|
+
id?: string;
|
|
12
|
+
url?: string;
|
|
13
|
+
success: boolean;
|
|
14
|
+
}
|
|
15
|
+
type Props = {
|
|
16
|
+
selectedId?: string;
|
|
17
|
+
onSelect?: (p: LocalPlaylist) => void;
|
|
18
|
+
/** Optional sync to external platform API (e.g. TIDAL/Spotify) */
|
|
19
|
+
onCreateRemote?: (req: CreatePlaylistOnPlatformRequest) => Promise<CreatePlaylistResult>;
|
|
20
|
+
};
|
|
21
|
+
export declare const PlaylistList: React.FC<Props>;
|
|
22
|
+
export default PlaylistList;
|
|
23
|
+
//# sourceMappingURL=PlaylistList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistList.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistList.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAK5E,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,KAAK,GAAG;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,+BAA+B,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC5F,CAAC;AAOF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4DxC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ManagedPlaylist, PlaylistFolder, PlaylistTag } from '../models/modelsPlaylistManager';
|
|
3
|
+
interface PlaylistOverviewProps {
|
|
4
|
+
playlists: ManagedPlaylist[];
|
|
5
|
+
folders: PlaylistFolder[];
|
|
6
|
+
tags: PlaylistTag[];
|
|
7
|
+
activeFolderId: string | null;
|
|
8
|
+
onSelectPlaylist: (id: string) => void;
|
|
9
|
+
onDeletePlaylist: (id: string) => void;
|
|
10
|
+
onDuplicatePlaylist: (id: string) => void;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: React.NamedExoticComponent<PlaylistOverviewProps>;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=PlaylistOverview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistOverview.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,WAAW,EACd,MAAM,iCAAiC,CAAC;AAazC,UAAU,qBAAqB;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;;AAiID,wBAA4C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { TrackSource } from '../models/modelsPlaylistManager';
|
|
3
|
+
export interface SearchResult {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
artist: string;
|
|
7
|
+
album?: string;
|
|
8
|
+
duration?: number;
|
|
9
|
+
source: TrackSource;
|
|
10
|
+
externalId?: string;
|
|
11
|
+
imageUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PlaylistSearchBarProps {
|
|
14
|
+
onSearch: (query: string, sources: TrackSource[]) => void;
|
|
15
|
+
results: SearchResult[];
|
|
16
|
+
isSearching: boolean;
|
|
17
|
+
onAddToPlaylist: (results: SearchResult[]) => void;
|
|
18
|
+
onPlayPreview?: (result: SearchResult) => void;
|
|
19
|
+
}
|
|
20
|
+
declare const PlaylistSearchBar: React.FC<PlaylistSearchBarProps>;
|
|
21
|
+
export default PlaylistSearchBar;
|
|
22
|
+
//# sourceMappingURL=PlaylistSearchBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistSearchBar.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistSearchBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAM9D,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1D,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAClD;AAkBD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsRvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { PlaylistFolder, ManagedPlaylist, PlaylistTag, ServiceConnection, PlaylistType } from '../models/modelsPlaylistManager';
|
|
3
|
+
import { MusicPlatform } from '../models/modelsMusicPlatform';
|
|
4
|
+
export interface PlaylistSidebarProps {
|
|
5
|
+
folders: PlaylistFolder[];
|
|
6
|
+
playlists: ManagedPlaylist[];
|
|
7
|
+
tags: PlaylistTag[];
|
|
8
|
+
services: ServiceConnection[];
|
|
9
|
+
activeFolderId: string | null;
|
|
10
|
+
activePlaylistId: string | null;
|
|
11
|
+
onSelectFolder: (folderId: string | null) => void;
|
|
12
|
+
onSelectPlaylist: (playlistId: string) => void;
|
|
13
|
+
onCreateFolder: (name: string, parentId: string | null) => void;
|
|
14
|
+
onRenameFolder: (id: string, name: string) => void;
|
|
15
|
+
onDeleteFolder: (id: string) => void;
|
|
16
|
+
onCreatePlaylist: (name: string, type: PlaylistType, folderId: string | null) => void;
|
|
17
|
+
onConnectService: (platform: MusicPlatform) => void;
|
|
18
|
+
onDisconnectService: (platform: MusicPlatform) => void;
|
|
19
|
+
onDragPlaylistToFolder?: (playlistId: string, folderId: string | null) => void;
|
|
20
|
+
collapsed?: boolean;
|
|
21
|
+
onToggleCollapse?: () => void;
|
|
22
|
+
}
|
|
23
|
+
declare const PlaylistSidebar: React.FC<PlaylistSidebarProps>;
|
|
24
|
+
export default PlaylistSidebar;
|
|
25
|
+
//# sourceMappingURL=PlaylistSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistSidebar.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistSidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,YAAY,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtF,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACpD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,sBAAsB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AA0BD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAydnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { PlaylistTag, PlaylistTrack } from '../models/modelsPlaylistManager';
|
|
3
|
+
export interface PlaylistTagEditorProps {
|
|
4
|
+
tags: PlaylistTag[];
|
|
5
|
+
onCreateTag: (name: string, color: string, icon?: string) => void;
|
|
6
|
+
onUpdateTag: (id: string, name: string, color: string, icon?: string) => void;
|
|
7
|
+
onDeleteTag: (id: string) => void;
|
|
8
|
+
/** Selected tracks to bulk-assign tags */
|
|
9
|
+
selectedTracks?: PlaylistTrack[];
|
|
10
|
+
onAssignTag?: (trackIds: string[], tagId: string) => void;
|
|
11
|
+
onUnassignTag?: (trackIds: string[], tagId: string) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const PlaylistTagEditor: React.FC<PlaylistTagEditorProps>;
|
|
14
|
+
export default PlaylistTagEditor;
|
|
15
|
+
//# sourceMappingURL=PlaylistTagEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistTagEditor.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistTagEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAMlF,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9E,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAmBD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsVvD,CAAC;AAWF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SortDirection, PlaylistTrack, PlaylistTag, SortField } from '../models/modelsPlaylistManager';
|
|
3
|
+
export interface PlaylistTrackListProps {
|
|
4
|
+
tracks: PlaylistTrack[];
|
|
5
|
+
tags: PlaylistTag[];
|
|
6
|
+
selectedTrackIds: Set<string>;
|
|
7
|
+
onSelectionChange: (ids: Set<string>) => void;
|
|
8
|
+
onPlay?: (track: PlaylistTrack) => void;
|
|
9
|
+
onRemove?: (trackIds: string[]) => void;
|
|
10
|
+
onReorder?: (trackIds: string[]) => void;
|
|
11
|
+
onTagTracks?: (trackIds: string[], tagIds: string[]) => void;
|
|
12
|
+
onRateTracks?: (trackIds: string[], rating: number) => void;
|
|
13
|
+
sortField: SortField;
|
|
14
|
+
sortDir: SortDirection;
|
|
15
|
+
onSortChange: (field: SortField, dir: SortDirection) => void;
|
|
16
|
+
filterText: string;
|
|
17
|
+
onFilterChange: (text: string) => void;
|
|
18
|
+
compact?: boolean;
|
|
19
|
+
draggable?: boolean;
|
|
20
|
+
onDragStart?: (trackIds: string[], e: React.DragEvent) => void;
|
|
21
|
+
dropTarget?: boolean;
|
|
22
|
+
onDrop?: (e: React.DragEvent) => void;
|
|
23
|
+
}
|
|
24
|
+
declare const PlaylistTrackList: React.FC<PlaylistTrackListProps>;
|
|
25
|
+
export default PlaylistTrackList;
|
|
26
|
+
//# sourceMappingURL=PlaylistTrackList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistTrackList.d.ts","sourceRoot":"","sources":["../../src/playlist/PlaylistTrackList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAM7F,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;CACzC;AA2BD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAifvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SongDescriptorDto } from '../models/modelsPlaylists';
|
|
2
|
+
export type LocalPlaylist = {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
items: SongDescriptorDto[];
|
|
6
|
+
updatedAt: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function useLocalPlaylists(): {
|
|
9
|
+
list: () => LocalPlaylist[];
|
|
10
|
+
get: (id: string) => LocalPlaylist;
|
|
11
|
+
create: (name: string) => LocalPlaylist;
|
|
12
|
+
rename: (id: string, name: string) => void;
|
|
13
|
+
remove: (id: string) => void;
|
|
14
|
+
replaceItems: (id: string, items: SongDescriptorDto[]) => void;
|
|
15
|
+
addItems: (id: string, items: SongDescriptorDto[]) => void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useLocalPlaylists.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLocalPlaylists.d.ts","sourceRoot":"","sources":["../../src/playlist/useLocalPlaylists.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAiBF,wBAAgB,iBAAiB;;cAcf,MAAM;mBACD,MAAM;iBAMR,MAAM,QAAQ,MAAM;iBACpB,MAAM;uBACA,MAAM,SAAS,iBAAiB,EAAE;mBACtC,MAAM,SAAS,iBAAiB,EAAE;EAIxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._panelNarrow_se2i3_3{max-width:520px}._panelWide_se2i3_9{max-width:820px}._smallLabel_se2i3_19{font-size:12px}._noteText_se2i3_29{font-size:13px;color:#888}._buttonRow_se2i3_41{display:flex;gap:8px}._noteTextMargin_se2i3_49{font-size:13px;color:#888;margin-top:4px}._rangeW100_se2i3_63{width:100px}._zoomValue_se2i3_69{font-size:12px;min-width:35px}._selectW100_se2i3_77{width:100px}._inputW70_se2i3_83{width:70px}._masterVolGroup_se2i3_93{min-width:min(220px,100%)}._rangeW140_se2i3_99{width:140px}._volumeValue_se2i3_105{font-size:12px;width:42px;text-align:right}._selectW140_se2i3_115{width:140px}._freqGroup_se2i3_121{min-width:min(200px,100%)}._freqValue_se2i3_127{font-size:12px;width:60px;text-align:right}._narrowGroup_se2i3_137{min-width:min(170px,100%)}._rangeW120_se2i3_143{width:120px}._smallValue_se2i3_149{font-size:12px;width:40px;text-align:right}._presetDivider_se2i3_159{border-top:1px solid #444}._presetLabel_se2i3_165{font-size:11px;font-weight:600;color:#aaa}._presetBtn_se2i3_175{font-size:11px;padding:2px 8px}._deletePresetSelect_se2i3_183{width:140px;font-size:11px}._presetNameInput_se2i3_191{width:160px;font-size:11px}._savePresetBtn_se2i3_199{font-size:11px;padding:2px 10px}._countInAlert_se2i3_211{font-size:12px;color:#f57c00}._inputW80_se2i3_219{width:80px}._levelLabel_se2i3_225{font-size:12px;color:#555}._levelMeter_se2i3_233{position:relative;background:#f1f1f1;height:12px;border-radius:6px;overflow:hidden;width:80px}._levelBar_se2i3_249{position:absolute;left:0;top:0;bottom:0;transition:width 80ms linear}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export declare function resampleLinear(src: Float32Array, srcRate: number, dstRate: number): Float32Array;
|
|
2
|
+
export declare function floatTo16BitPCM(float32: Float32Array): Int16Array;
|
|
3
|
+
export interface BaseStreamOptions {
|
|
4
|
+
wsUrl: string;
|
|
5
|
+
chunkMs?: number;
|
|
6
|
+
onOpen?: () => void;
|
|
7
|
+
onClose?: (ev?: CloseEvent) => void;
|
|
8
|
+
onError?: (err: unknown) => void;
|
|
9
|
+
onSend?: (bytes: number) => void;
|
|
10
|
+
/** Called when the maximum number of reconnect attempts is exhausted (backend unavailable). */
|
|
11
|
+
onMaxReconnect?: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base for WebSocket audio streaming clients.
|
|
15
|
+
* Handles mic capture → resample → chunk → WS send pipeline.
|
|
16
|
+
*
|
|
17
|
+
* Subclasses override:
|
|
18
|
+
* - `get tag()` for log prefix
|
|
19
|
+
* - `handleWsMessage()` for parsing response payloads
|
|
20
|
+
* - `onMaxReconnect()` for fallback behavior (optional)
|
|
21
|
+
* - `get useWorklet()` to opt-in to AudioWorklet (default: true)
|
|
22
|
+
*/
|
|
23
|
+
export declare abstract class BaseStreamClient {
|
|
24
|
+
protected ws?: WebSocket;
|
|
25
|
+
private sendQueue;
|
|
26
|
+
private maxQueue;
|
|
27
|
+
private reconnectTimer?;
|
|
28
|
+
private reconnectAttempts;
|
|
29
|
+
private maxReconnectAttempts;
|
|
30
|
+
protected mediaStream?: MediaStream;
|
|
31
|
+
protected audioCtx?: AudioContext;
|
|
32
|
+
private workletNode?;
|
|
33
|
+
private proc?;
|
|
34
|
+
private buffer;
|
|
35
|
+
private externalStream;
|
|
36
|
+
private usingWorklet;
|
|
37
|
+
protected closed: boolean;
|
|
38
|
+
protected started: boolean;
|
|
39
|
+
private chunksSent;
|
|
40
|
+
private chunksDropped;
|
|
41
|
+
private responsesReceived;
|
|
42
|
+
private lastStatusLog;
|
|
43
|
+
protected readonly opts: BaseStreamOptions;
|
|
44
|
+
constructor(opts: BaseStreamOptions);
|
|
45
|
+
/** Log prefix, e.g. "CrepeStreamClient" */
|
|
46
|
+
protected abstract get tag(): string;
|
|
47
|
+
/** Handle parsed WS message. Subclass must call onMessage etc. */
|
|
48
|
+
protected abstract handleWsMessage(data: string): void;
|
|
49
|
+
/** Called when max reconnect attempts exhausted. Override for fallback logic. */
|
|
50
|
+
protected onMaxReconnect(): void;
|
|
51
|
+
/** Whether to try AudioWorklet before falling back to ScriptProcessor */
|
|
52
|
+
protected get useWorklet(): boolean;
|
|
53
|
+
/** Path to the AudioWorklet processor module */
|
|
54
|
+
protected get workletPath(): string;
|
|
55
|
+
protected ts(): string;
|
|
56
|
+
protected connectWs(): void;
|
|
57
|
+
private handleAudioFrame;
|
|
58
|
+
private setupAudioNodes;
|
|
59
|
+
protected stopAudioNodes(): void;
|
|
60
|
+
start(): Promise<void>;
|
|
61
|
+
startWithMediaStream(stream: MediaStream): Promise<void>;
|
|
62
|
+
stop(): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=BaseStreamClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseStreamClient.d.ts","sourceRoot":"","sources":["../../src/utils/BaseStreamClient.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAahG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAOjE;AAID,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAOD;;;;;;;;;GASG;AACH,8BAAsB,gBAAgB;IAElC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAGjC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,IAAI,CAAC,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAG7B,SAAS,CAAC,MAAM,UAAS;IACzB,SAAS,CAAC,OAAO,UAAS;IAG1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,aAAa,CAAK;IAE1B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;gBAE/B,IAAI,EAAE,iBAAiB;IAMnC,2CAA2C;IAC3C,SAAS,CAAC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC;IAErC,kEAAkE;IAClE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAEtD,iFAAiF;IACjF,SAAS,CAAC,cAAc,IAAI,IAAI;IAKhC,yEAAyE;IACzE,SAAS,KAAK,UAAU,IAAI,OAAO,CAElC;IAED,gDAAgD;IAChD,SAAS,KAAK,WAAW,IAAI,MAAM,CAElC;IAID,SAAS,CAAC,EAAE,IAAI,MAAM;IAMtB,SAAS,CAAC,SAAS,IAAI,IAAI;IAgF3B,OAAO,CAAC,gBAAgB;YAqEV,eAAe;IA+B7B,SAAS,CAAC,cAAc,IAAI,IAAI;IAmB1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,IAAI,IAAI,IAAI;CAiBf"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arpeggiator engine — generates arpeggiated patterns from held notes.
|
|
3
|
+
* Supports multiple modes, octave range, rate, gate, and pattern variations.
|
|
4
|
+
*/
|
|
5
|
+
export type ArpMode = 'up' | 'down' | 'updown' | 'downup' | 'random' | 'as-played' | 'chord';
|
|
6
|
+
export interface ArpConfig {
|
|
7
|
+
mode: ArpMode;
|
|
8
|
+
/** Octave range (1-4) */
|
|
9
|
+
octaves: number;
|
|
10
|
+
/** Rate in note divisions relative to BPM (e.g., '1/8', '1/16') */
|
|
11
|
+
rate: ArpRate;
|
|
12
|
+
/** Gate length as fraction of step duration (0-1) */
|
|
13
|
+
gate: number;
|
|
14
|
+
/** Velocity pattern (if null, uses original velocities) */
|
|
15
|
+
velocityPattern?: number[];
|
|
16
|
+
/** Swing amount (0-1) */
|
|
17
|
+
swing: number;
|
|
18
|
+
/** Number of repeats per note before advancing */
|
|
19
|
+
repeats: number;
|
|
20
|
+
/** Latch mode — keeps arp running after keys released */
|
|
21
|
+
latch: boolean;
|
|
22
|
+
}
|
|
23
|
+
export type ArpRate = '1/1' | '1/2' | '1/4' | '1/8' | '1/16' | '1/32' | '1/4T' | '1/8T' | '1/16T';
|
|
24
|
+
export interface ArpNote {
|
|
25
|
+
pitch: number;
|
|
26
|
+
velocity: number;
|
|
27
|
+
originalOrder: number;
|
|
28
|
+
}
|
|
29
|
+
export interface ArpEvent {
|
|
30
|
+
pitch: number;
|
|
31
|
+
velocity: number;
|
|
32
|
+
startTime: number;
|
|
33
|
+
duration: number;
|
|
34
|
+
step: number;
|
|
35
|
+
}
|
|
36
|
+
export declare const DEFAULT_ARP_CONFIG: ArpConfig;
|
|
37
|
+
/** Sort notes for the given arp mode and return the sequence */
|
|
38
|
+
export declare function buildArpSequence(heldNotes: ArpNote[], config: ArpConfig): ArpNote[];
|
|
39
|
+
/** Generate timed arp events from a sequence */
|
|
40
|
+
export declare function generateArpEvents(heldNotes: ArpNote[], config: ArpConfig, bpm: number, startTime?: number, cycleCount?: number): ArpEvent[];
|
|
41
|
+
/** Get available arp modes with descriptions */
|
|
42
|
+
export declare function getArpModes(): Array<{
|
|
43
|
+
mode: ArpMode;
|
|
44
|
+
label: string;
|
|
45
|
+
description: string;
|
|
46
|
+
}>;
|
|
47
|
+
/** Get available rates */
|
|
48
|
+
export declare function getArpRates(): ArpRate[];
|
|
49
|
+
//# sourceMappingURL=arpeggiator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arpeggiator.d.ts","sourceRoot":"","sources":["../../src/utils/arpeggiator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAElG,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAeD,eAAO,MAAM,kBAAkB,EAAE,SAQhC,CAAC;AAaF,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CAgDnF;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAAE,EACpB,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAU,EACrB,UAAU,GAAE,MAAU,GACrB,QAAQ,EAAE,CAoCZ;AAED,gDAAgD;AAChD,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAU1F;AAED,0BAA0B;AAC1B,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAEvC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Articulation Engine — per-note performance articulations.
|
|
3
|
+
* Supports legato, staccato, accent, glide/portamento, vibrato, and more.
|
|
4
|
+
*/
|
|
5
|
+
export type ArticulationType = 'normal' | 'legato' | 'staccato' | 'staccatissimo' | 'accent' | 'marcato' | 'tenuto' | 'glide' | 'portamento' | 'vibrato' | 'tremolo' | 'trill' | 'bend' | 'slide-up' | 'slide-down' | 'palm-mute' | 'harmonic';
|
|
6
|
+
export interface ArticulationConfig {
|
|
7
|
+
type: ArticulationType;
|
|
8
|
+
/** Intensity/depth 0-1 */
|
|
9
|
+
intensity: number;
|
|
10
|
+
/** Rate in Hz (for vibrato, tremolo, trill) */
|
|
11
|
+
rate?: number;
|
|
12
|
+
/** Duration modifier (fraction of original, 0.1-2.0) */
|
|
13
|
+
durationScale?: number;
|
|
14
|
+
/** Velocity modifier (added, -64 to 64) */
|
|
15
|
+
velocityOffset?: number;
|
|
16
|
+
/** Glide/portamento time in ms */
|
|
17
|
+
glideTimeMs?: number;
|
|
18
|
+
/** Pitch bend range in semitones (for bends) */
|
|
19
|
+
bendSemitones?: number;
|
|
20
|
+
/** Trill interval in semitones */
|
|
21
|
+
trillInterval?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ArticulatedNote {
|
|
24
|
+
pitch: number;
|
|
25
|
+
velocity: number;
|
|
26
|
+
/** Start time in seconds */
|
|
27
|
+
startTime: number;
|
|
28
|
+
/** Duration in seconds */
|
|
29
|
+
duration: number;
|
|
30
|
+
/** Applied articulation */
|
|
31
|
+
articulation: ArticulationType;
|
|
32
|
+
/** Pitch envelope events (time, pitch pairs relative to start) */
|
|
33
|
+
pitchEnvelope?: Array<{
|
|
34
|
+
time: number;
|
|
35
|
+
pitch: number;
|
|
36
|
+
}>;
|
|
37
|
+
/** Velocity envelope (time, velocity pairs for dynamics) */
|
|
38
|
+
velocityEnvelope?: Array<{
|
|
39
|
+
time: number;
|
|
40
|
+
velocity: number;
|
|
41
|
+
}>;
|
|
42
|
+
/** CC automation generated by articulation */
|
|
43
|
+
ccAutomation?: Array<{
|
|
44
|
+
time: number;
|
|
45
|
+
cc: number;
|
|
46
|
+
value: number;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export interface NoteInput {
|
|
50
|
+
pitch: number;
|
|
51
|
+
velocity: number;
|
|
52
|
+
startTime: number;
|
|
53
|
+
duration: number;
|
|
54
|
+
}
|
|
55
|
+
/** Default articulation presets */
|
|
56
|
+
export declare const ARTICULATION_PRESETS: Record<ArticulationType, ArticulationConfig>;
|
|
57
|
+
/** Apply articulation to a single note */
|
|
58
|
+
export declare function applyArticulation(note: NoteInput, config: ArticulationConfig): ArticulatedNote;
|
|
59
|
+
/** Apply legato between consecutive notes (overlap + glide) */
|
|
60
|
+
export declare function applyLegatoChain(notes: NoteInput[], config: ArticulationConfig): ArticulatedNote[];
|
|
61
|
+
/** Apply articulation to array of notes */
|
|
62
|
+
export declare function applyArticulationToAll(notes: NoteInput[], config: ArticulationConfig): ArticulatedNote[];
|
|
63
|
+
/** Get all available articulation types with labels */
|
|
64
|
+
export declare function getArticulationTypes(): Array<{
|
|
65
|
+
type: ArticulationType;
|
|
66
|
+
label: string;
|
|
67
|
+
description: string;
|
|
68
|
+
}>;
|
|
69
|
+
//# sourceMappingURL=articulationEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"articulationEngine.d.ts","sourceRoot":"","sources":["../../src/utils/articulationEngine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,eAAe,GACf,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,kEAAkE;IAClE,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,8CAA8C;IAC9C,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mCAAmC;AACnC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAkB7E,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,GAAG,eAAe,CA0D9F;AA6FD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CA+BnB;AAED,2CAA2C;AAC3C,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CAKnB;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioEditorUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioEditorUtils.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,UAE3E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EffectType, LayerSettings } from '../models/editor/audioTypes';
|
|
2
|
+
export declare function addEffectToLayer(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectType: EffectType): void;
|
|
3
|
+
export declare function removeEffectFromLayer(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectId: string): void;
|
|
4
|
+
export declare function toggleEffectBypass(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectId: string): void;
|
|
5
|
+
export declare function updateEffectParams(setLayerSettings: React.Dispatch<React.SetStateAction<Record<number, LayerSettings>>>, layerId: number, effectId: string, params: Record<string, number>): void;
|
|
6
|
+
//# sourceMappingURL=audioFxUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioFxUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioFxUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpF,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,QAuBvB;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,QASjB;AAED,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,QAWjB;AAED,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACrF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAW/B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MidiNote, MidiCCEvent } from '../models/editor/midiTypes';
|
|
2
|
+
export declare function addMidiNote(_layerMidiNotes: Record<number, MidiNote[]>, setLayerMidiNotes: React.Dispatch<React.SetStateAction<Record<number, MidiNote[]>>>, setSelectedMidiNote: React.Dispatch<React.SetStateAction<{
|
|
3
|
+
layerId: number;
|
|
4
|
+
noteId: number;
|
|
5
|
+
} | null>>, layerId: number, pitch: number, start: number, durationSec?: number, velocity?: number): void;
|
|
6
|
+
export declare function removeMidiNote(setLayerMidiNotes: React.Dispatch<React.SetStateAction<Record<number, MidiNote[]>>>, setSelectedMidiNote: React.Dispatch<React.SetStateAction<{
|
|
7
|
+
layerId: number;
|
|
8
|
+
noteId: number;
|
|
9
|
+
} | null>>, layerId: number, noteId: number): void;
|
|
10
|
+
export declare function clearMidiNotes(setLayerMidiNotes: React.Dispatch<React.SetStateAction<Record<number, MidiNote[]>>>, setSelectedMidiNote: React.Dispatch<React.SetStateAction<{
|
|
11
|
+
layerId: number;
|
|
12
|
+
noteId: number;
|
|
13
|
+
} | null>>, layerId: number): void;
|
|
14
|
+
export declare function handleSelectCCLane(setLayerCCType: React.Dispatch<React.SetStateAction<Record<number, number>>>, layerId: number, cc: number): void;
|
|
15
|
+
export declare function handleAddCCEvent(setLayerMidiCC: React.Dispatch<React.SetStateAction<Record<number, MidiCCEvent[]>>>, layerId: number, cc: number, value: number, time: number): void;
|
|
16
|
+
export declare function handleUpdateCCEvent(setLayerMidiCC: React.Dispatch<React.SetStateAction<Record<number, MidiCCEvent[]>>>, layerId: number, id: number, value: number, time: number, handleType?: 'linear' | 'step' | 'exp'): void;
|
|
17
|
+
export declare function handleRemoveCCEvent(setLayerMidiCC: React.Dispatch<React.SetStateAction<Record<number, MidiCCEvent[]>>>, layerId: number, id: number): void;
|
|
18
|
+
//# sourceMappingURL=audioMidiUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioMidiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioMidiUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEnE,wBAAgB,WAAW,CACzB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAC3C,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnF,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EACrG,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAY,EACzB,QAAQ,GAAE,MAAY,QAcvB;AAED,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnF,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EACrG,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,QAOf;AAED,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnF,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EACrG,OAAO,EAAE,MAAM,QAOhB;AAED,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAC5E,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,QAGX;AAED,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,QAYb;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,QAMvC;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,QAMX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioPitchAlgorithms.d.ts","sourceRoot":"","sources":["../../src/utils/audioPitchAlgorithms.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAE5E,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAcvE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type PitchAlgorithm = "pitchy" | "crepe" | "ultrastar-wp" | "librosa";
|
|
2
|
+
export interface PitchSegment {
|
|
3
|
+
start: number;
|
|
4
|
+
duration: number;
|
|
5
|
+
pitch: number;
|
|
6
|
+
freq: number;
|
|
7
|
+
}
|
|
8
|
+
/** Backend pitch detection result */
|
|
9
|
+
export interface PitchTrackResult {
|
|
10
|
+
track: Array<{
|
|
11
|
+
t: number;
|
|
12
|
+
hz: number;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare function analyzeAudioFileWithAlgorithm(file: File, algorithm: PitchAlgorithm, options?: {
|
|
16
|
+
signal?: AbortSignal;
|
|
17
|
+
onProgress?: (p: number) => void;
|
|
18
|
+
smoothingWindow?: number;
|
|
19
|
+
rmsThreshold?: number;
|
|
20
|
+
useHanning?: boolean;
|
|
21
|
+
/** Optional CREPE backend. Required when algorithm==='crepe'. */
|
|
22
|
+
postPitch?: (file: File) => Promise<PitchTrackResult>;
|
|
23
|
+
/** Optional librosa backend. Required when algorithm==='librosa'. */
|
|
24
|
+
postLibrosaPitchTrack?: (file: File) => Promise<PitchTrackResult>;
|
|
25
|
+
}): Promise<PitchSegment[]>;
|
|
26
|
+
//# sourceMappingURL=audioPitchAnalyzeFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioPitchAnalyzeFile.d.ts","sourceRoot":"","sources":["../../src/utils/audioPitchAnalyzeFile.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAyDD,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzC;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,qEAAqE;IACrE,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACnE,GACA,OAAO,CAAC,YAAY,EAAE,CAAC,CA4GzB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { WaveformData } from '../models/editor/timelineTypes';
|
|
2
|
+
export declare function snapToGrid(time: number, snapMode: 'beat' | 'bar' | 'off', bpm: number, quantize?: number): number;
|
|
3
|
+
export declare function mergeWaveforms(waveforms: WaveformData[]): WaveformData;
|
|
4
|
+
export declare function generatePlaceholderWaveform(duration: number, sampleRate?: number): WaveformData;
|
|
5
|
+
//# sourceMappingURL=audioTimelineUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioTimelineUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioTimelineUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAYpH;AAGD,wBAAgB,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAItE;AAGD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAc,GAAG,YAAY,CAEtG"}
|