@drop-ai/core 0.2.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/LICENSE +21 -0
- package/README.md +316 -0
- package/dist/actions/ActionRegistry.d.ts +33 -0
- package/dist/actions/ActionRegistry.d.ts.map +1 -0
- package/dist/actions/ActionRegistry.js +96 -0
- package/dist/actions/ActionRegistry.js.map +1 -0
- package/dist/actions/types.d.ts +31 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/actions/types.js +11 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/analysis/TransientDetector.d.ts +28 -0
- package/dist/analysis/TransientDetector.d.ts.map +1 -0
- package/dist/analysis/TransientDetector.js +109 -0
- package/dist/analysis/TransientDetector.js.map +1 -0
- package/dist/audio/AudioEngine.d.ts +107 -0
- package/dist/audio/AudioEngine.d.ts.map +1 -0
- package/dist/audio/AudioEngine.js +798 -0
- package/dist/audio/AudioEngine.js.map +1 -0
- package/dist/audio/AudioProvider.d.ts +96 -0
- package/dist/audio/AudioProvider.d.ts.map +1 -0
- package/dist/audio/AudioProvider.js +2 -0
- package/dist/audio/AudioProvider.js.map +1 -0
- package/dist/audio/BufferPool.d.ts +92 -0
- package/dist/audio/BufferPool.d.ts.map +1 -0
- package/dist/audio/BufferPool.js +172 -0
- package/dist/audio/BufferPool.js.map +1 -0
- package/dist/audio/LoudnessUtils.d.ts +18 -0
- package/dist/audio/LoudnessUtils.d.ts.map +1 -0
- package/dist/audio/LoudnessUtils.js +91 -0
- package/dist/audio/LoudnessUtils.js.map +1 -0
- package/dist/audio/MeterUtils.d.ts +37 -0
- package/dist/audio/MeterUtils.d.ts.map +1 -0
- package/dist/audio/MeterUtils.js +71 -0
- package/dist/audio/MeterUtils.js.map +1 -0
- package/dist/audio/OfflineExporter.d.ts +48 -0
- package/dist/audio/OfflineExporter.d.ts.map +1 -0
- package/dist/audio/OfflineExporter.js +202 -0
- package/dist/audio/OfflineExporter.js.map +1 -0
- package/dist/audio/ProcessingGraph.d.ts +152 -0
- package/dist/audio/ProcessingGraph.d.ts.map +1 -0
- package/dist/audio/ProcessingGraph.js +360 -0
- package/dist/audio/ProcessingGraph.js.map +1 -0
- package/dist/audio/SourceCache.d.ts +124 -0
- package/dist/audio/SourceCache.d.ts.map +1 -0
- package/dist/audio/SourceCache.js +205 -0
- package/dist/audio/SourceCache.js.map +1 -0
- package/dist/audio/dto.d.ts +50 -0
- package/dist/audio/dto.d.ts.map +1 -0
- package/dist/audio/dto.js +2 -0
- package/dist/audio/dto.js.map +1 -0
- package/dist/audio/engine/PlaylistEngine.d.ts +19 -0
- package/dist/audio/engine/PlaylistEngine.d.ts.map +1 -0
- package/dist/audio/engine/PlaylistEngine.js +83 -0
- package/dist/audio/engine/PlaylistEngine.js.map +1 -0
- package/dist/automation/AutomationCurve.d.ts +61 -0
- package/dist/automation/AutomationCurve.d.ts.map +1 -0
- package/dist/automation/AutomationCurve.js +198 -0
- package/dist/automation/AutomationCurve.js.map +1 -0
- package/dist/automation/AutomationList.d.ts +185 -0
- package/dist/automation/AutomationList.d.ts.map +1 -0
- package/dist/automation/AutomationList.js +459 -0
- package/dist/automation/AutomationList.js.map +1 -0
- package/dist/automation/AutomationMode.d.ts +17 -0
- package/dist/automation/AutomationMode.d.ts.map +1 -0
- package/dist/automation/AutomationMode.js +18 -0
- package/dist/automation/AutomationMode.js.map +1 -0
- package/dist/automation/ParameterDescriptor.d.ts +65 -0
- package/dist/automation/ParameterDescriptor.d.ts.map +1 -0
- package/dist/automation/ParameterDescriptor.js +113 -0
- package/dist/automation/ParameterDescriptor.js.map +1 -0
- package/dist/automation/PointThinning.d.ts +14 -0
- package/dist/automation/PointThinning.d.ts.map +1 -0
- package/dist/automation/PointThinning.js +52 -0
- package/dist/automation/PointThinning.js.map +1 -0
- package/dist/automation/types.d.ts +14 -0
- package/dist/automation/types.d.ts.map +1 -0
- package/dist/automation/types.js +9 -0
- package/dist/automation/types.js.map +1 -0
- package/dist/commands/Command.d.ts +8 -0
- package/dist/commands/Command.d.ts.map +1 -0
- package/dist/commands/Command.js +2 -0
- package/dist/commands/Command.js.map +1 -0
- package/dist/commands/CommandExecutor.d.ts +36 -0
- package/dist/commands/CommandExecutor.d.ts.map +1 -0
- package/dist/commands/CommandExecutor.js +108 -0
- package/dist/commands/CommandExecutor.js.map +1 -0
- package/dist/commands/CommandHistory.d.ts +155 -0
- package/dist/commands/CommandHistory.d.ts.map +1 -0
- package/dist/commands/CommandHistory.js +316 -0
- package/dist/commands/CommandHistory.js.map +1 -0
- package/dist/commands/CommandRegistry.d.ts +110 -0
- package/dist/commands/CommandRegistry.d.ts.map +1 -0
- package/dist/commands/CommandRegistry.js +91 -0
- package/dist/commands/CommandRegistry.js.map +1 -0
- package/dist/commands/UndoTransaction.d.ts +54 -0
- package/dist/commands/UndoTransaction.d.ts.map +1 -0
- package/dist/commands/UndoTransaction.js +77 -0
- package/dist/commands/UndoTransaction.js.map +1 -0
- package/dist/commands/handlers/AutomationHandler.d.ts +14 -0
- package/dist/commands/handlers/AutomationHandler.d.ts.map +1 -0
- package/dist/commands/handlers/AutomationHandler.js +84 -0
- package/dist/commands/handlers/AutomationHandler.js.map +1 -0
- package/dist/commands/handlers/CommandHandler.d.ts +57 -0
- package/dist/commands/handlers/CommandHandler.d.ts.map +1 -0
- package/dist/commands/handlers/CommandHandler.js +22 -0
- package/dist/commands/handlers/CommandHandler.js.map +1 -0
- package/dist/commands/handlers/ExportHandler.d.ts +14 -0
- package/dist/commands/handlers/ExportHandler.d.ts.map +1 -0
- package/dist/commands/handlers/ExportHandler.js +166 -0
- package/dist/commands/handlers/ExportHandler.js.map +1 -0
- package/dist/commands/handlers/HistoryHandler.d.ts +29 -0
- package/dist/commands/handlers/HistoryHandler.d.ts.map +1 -0
- package/dist/commands/handlers/HistoryHandler.js +124 -0
- package/dist/commands/handlers/HistoryHandler.js.map +1 -0
- package/dist/commands/handlers/IOHandler.d.ts +14 -0
- package/dist/commands/handlers/IOHandler.d.ts.map +1 -0
- package/dist/commands/handlers/IOHandler.js +59 -0
- package/dist/commands/handlers/IOHandler.js.map +1 -0
- package/dist/commands/handlers/MarkerHandler.d.ts +13 -0
- package/dist/commands/handlers/MarkerHandler.d.ts.map +1 -0
- package/dist/commands/handlers/MarkerHandler.js +95 -0
- package/dist/commands/handlers/MarkerHandler.js.map +1 -0
- package/dist/commands/handlers/MidiHandler.d.ts +14 -0
- package/dist/commands/handlers/MidiHandler.d.ts.map +1 -0
- package/dist/commands/handlers/MidiHandler.js +153 -0
- package/dist/commands/handlers/MidiHandler.js.map +1 -0
- package/dist/commands/handlers/MixerSceneHandler.d.ts +12 -0
- package/dist/commands/handlers/MixerSceneHandler.d.ts.map +1 -0
- package/dist/commands/handlers/MixerSceneHandler.js +113 -0
- package/dist/commands/handlers/MixerSceneHandler.js.map +1 -0
- package/dist/commands/handlers/RangeHandler.d.ts +14 -0
- package/dist/commands/handlers/RangeHandler.d.ts.map +1 -0
- package/dist/commands/handlers/RangeHandler.js +108 -0
- package/dist/commands/handlers/RangeHandler.js.map +1 -0
- package/dist/commands/handlers/RegionHandler.d.ts +14 -0
- package/dist/commands/handlers/RegionHandler.d.ts.map +1 -0
- package/dist/commands/handlers/RegionHandler.js +313 -0
- package/dist/commands/handlers/RegionHandler.js.map +1 -0
- package/dist/commands/handlers/SendBusHandler.d.ts +14 -0
- package/dist/commands/handlers/SendBusHandler.d.ts.map +1 -0
- package/dist/commands/handlers/SendBusHandler.js +55 -0
- package/dist/commands/handlers/SendBusHandler.js.map +1 -0
- package/dist/commands/handlers/SessionHandler.d.ts +14 -0
- package/dist/commands/handlers/SessionHandler.d.ts.map +1 -0
- package/dist/commands/handlers/SessionHandler.js +80 -0
- package/dist/commands/handlers/SessionHandler.js.map +1 -0
- package/dist/commands/handlers/TrackGroupHandler.d.ts +18 -0
- package/dist/commands/handlers/TrackGroupHandler.d.ts.map +1 -0
- package/dist/commands/handlers/TrackGroupHandler.js +210 -0
- package/dist/commands/handlers/TrackGroupHandler.js.map +1 -0
- package/dist/commands/handlers/TrackHandler.d.ts +14 -0
- package/dist/commands/handlers/TrackHandler.d.ts.map +1 -0
- package/dist/commands/handlers/TrackHandler.js +241 -0
- package/dist/commands/handlers/TrackHandler.js.map +1 -0
- package/dist/commands/handlers/TransportHandler.d.ts +14 -0
- package/dist/commands/handlers/TransportHandler.d.ts.map +1 -0
- package/dist/commands/handlers/TransportHandler.js +117 -0
- package/dist/commands/handlers/TransportHandler.js.map +1 -0
- package/dist/commands/handlers/index.d.ts +18 -0
- package/dist/commands/handlers/index.d.ts.map +1 -0
- package/dist/commands/handlers/index.js +17 -0
- package/dist/commands/handlers/index.js.map +1 -0
- package/dist/commands/impl/AddAutomationPointCommand.d.ts +20 -0
- package/dist/commands/impl/AddAutomationPointCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddAutomationPointCommand.js +45 -0
- package/dist/commands/impl/AddAutomationPointCommand.js.map +1 -0
- package/dist/commands/impl/AddAuxTrackCommand.d.ts +11 -0
- package/dist/commands/impl/AddAuxTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddAuxTrackCommand.js +23 -0
- package/dist/commands/impl/AddAuxTrackCommand.js.map +1 -0
- package/dist/commands/impl/AddBusTrackCommand.d.ts +11 -0
- package/dist/commands/impl/AddBusTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddBusTrackCommand.js +23 -0
- package/dist/commands/impl/AddBusTrackCommand.js.map +1 -0
- package/dist/commands/impl/AddMarkerCommand.d.ts +13 -0
- package/dist/commands/impl/AddMarkerCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddMarkerCommand.js +25 -0
- package/dist/commands/impl/AddMarkerCommand.js.map +1 -0
- package/dist/commands/impl/AddMidiNoteCommand.d.ts +22 -0
- package/dist/commands/impl/AddMidiNoteCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddMidiNoteCommand.js +45 -0
- package/dist/commands/impl/AddMidiNoteCommand.js.map +1 -0
- package/dist/commands/impl/AddPluginCommand.d.ts +19 -0
- package/dist/commands/impl/AddPluginCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddPluginCommand.js +43 -0
- package/dist/commands/impl/AddPluginCommand.js.map +1 -0
- package/dist/commands/impl/AddRangeCommand.d.ts +19 -0
- package/dist/commands/impl/AddRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddRangeCommand.js +32 -0
- package/dist/commands/impl/AddRangeCommand.js.map +1 -0
- package/dist/commands/impl/AddRegionCommand.d.ts +19 -0
- package/dist/commands/impl/AddRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddRegionCommand.js +58 -0
- package/dist/commands/impl/AddRegionCommand.js.map +1 -0
- package/dist/commands/impl/AddSendBusCommand.d.ts +23 -0
- package/dist/commands/impl/AddSendBusCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddSendBusCommand.js +30 -0
- package/dist/commands/impl/AddSendBusCommand.js.map +1 -0
- package/dist/commands/impl/AddSourceCommand.d.ts +12 -0
- package/dist/commands/impl/AddSourceCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddSourceCommand.js +16 -0
- package/dist/commands/impl/AddSourceCommand.js.map +1 -0
- package/dist/commands/impl/AddTempoChangeCommand.d.ts +15 -0
- package/dist/commands/impl/AddTempoChangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddTempoChangeCommand.js +45 -0
- package/dist/commands/impl/AddTempoChangeCommand.js.map +1 -0
- package/dist/commands/impl/AddTrackCommand.d.ts +13 -0
- package/dist/commands/impl/AddTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddTrackCommand.js +26 -0
- package/dist/commands/impl/AddTrackCommand.js.map +1 -0
- package/dist/commands/impl/ConnectIOCommand.d.ts +13 -0
- package/dist/commands/impl/ConnectIOCommand.d.ts.map +1 -0
- package/dist/commands/impl/ConnectIOCommand.js +31 -0
- package/dist/commands/impl/ConnectIOCommand.js.map +1 -0
- package/dist/commands/impl/CopyRegionCommand.d.ts +12 -0
- package/dist/commands/impl/CopyRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/CopyRegionCommand.js +42 -0
- package/dist/commands/impl/CopyRegionCommand.js.map +1 -0
- package/dist/commands/impl/DisconnectIOCommand.d.ts +13 -0
- package/dist/commands/impl/DisconnectIOCommand.d.ts.map +1 -0
- package/dist/commands/impl/DisconnectIOCommand.js +24 -0
- package/dist/commands/impl/DisconnectIOCommand.js.map +1 -0
- package/dist/commands/impl/DuplicateRegionCommand.d.ts +15 -0
- package/dist/commands/impl/DuplicateRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/DuplicateRegionCommand.js +49 -0
- package/dist/commands/impl/DuplicateRegionCommand.js.map +1 -0
- package/dist/commands/impl/ExportCommand.d.ts +17 -0
- package/dist/commands/impl/ExportCommand.d.ts.map +1 -0
- package/dist/commands/impl/ExportCommand.js +92 -0
- package/dist/commands/impl/ExportCommand.js.map +1 -0
- package/dist/commands/impl/FreezeTrackCommand.d.ts +25 -0
- package/dist/commands/impl/FreezeTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/FreezeTrackCommand.js +94 -0
- package/dist/commands/impl/FreezeTrackCommand.js.map +1 -0
- package/dist/commands/impl/GroupRegionsCommand.d.ts +15 -0
- package/dist/commands/impl/GroupRegionsCommand.d.ts.map +1 -0
- package/dist/commands/impl/GroupRegionsCommand.js +28 -0
- package/dist/commands/impl/GroupRegionsCommand.js.map +1 -0
- package/dist/commands/impl/LoadSessionCommand.d.ts +24 -0
- package/dist/commands/impl/LoadSessionCommand.d.ts.map +1 -0
- package/dist/commands/impl/LoadSessionCommand.js +77 -0
- package/dist/commands/impl/LoadSessionCommand.js.map +1 -0
- package/dist/commands/impl/LockRegionCommand.d.ts +16 -0
- package/dist/commands/impl/LockRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/LockRegionCommand.js +37 -0
- package/dist/commands/impl/LockRegionCommand.js.map +1 -0
- package/dist/commands/impl/MergeRegionsCommand.d.ts +19 -0
- package/dist/commands/impl/MergeRegionsCommand.d.ts.map +1 -0
- package/dist/commands/impl/MergeRegionsCommand.js +85 -0
- package/dist/commands/impl/MergeRegionsCommand.js.map +1 -0
- package/dist/commands/impl/MoveAutomationPointCommand.d.ts +20 -0
- package/dist/commands/impl/MoveAutomationPointCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveAutomationPointCommand.js +73 -0
- package/dist/commands/impl/MoveAutomationPointCommand.js.map +1 -0
- package/dist/commands/impl/MoveMarkerCommand.d.ts +13 -0
- package/dist/commands/impl/MoveMarkerCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveMarkerCommand.js +29 -0
- package/dist/commands/impl/MoveMarkerCommand.js.map +1 -0
- package/dist/commands/impl/MoveMidiNoteCommand.d.ts +20 -0
- package/dist/commands/impl/MoveMidiNoteCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveMidiNoteCommand.js +55 -0
- package/dist/commands/impl/MoveMidiNoteCommand.js.map +1 -0
- package/dist/commands/impl/MoveRegionCommand.d.ts +22 -0
- package/dist/commands/impl/MoveRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveRegionCommand.js +148 -0
- package/dist/commands/impl/MoveRegionCommand.js.map +1 -0
- package/dist/commands/impl/NewSessionCommand.d.ts +17 -0
- package/dist/commands/impl/NewSessionCommand.d.ts.map +1 -0
- package/dist/commands/impl/NewSessionCommand.js +88 -0
- package/dist/commands/impl/NewSessionCommand.js.map +1 -0
- package/dist/commands/impl/NormalizeRegionCommand.d.ts +24 -0
- package/dist/commands/impl/NormalizeRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/NormalizeRegionCommand.js +60 -0
- package/dist/commands/impl/NormalizeRegionCommand.js.map +1 -0
- package/dist/commands/impl/PasteRegionCommand.d.ts +18 -0
- package/dist/commands/impl/PasteRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/PasteRegionCommand.js +66 -0
- package/dist/commands/impl/PasteRegionCommand.js.map +1 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.d.ts +17 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.js +69 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.js.map +1 -0
- package/dist/commands/impl/RemoveMarkerCommand.d.ts +14 -0
- package/dist/commands/impl/RemoveMarkerCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveMarkerCommand.js +32 -0
- package/dist/commands/impl/RemoveMarkerCommand.js.map +1 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.d.ts +16 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.js +38 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.js.map +1 -0
- package/dist/commands/impl/RemovePluginCommand.d.ts +17 -0
- package/dist/commands/impl/RemovePluginCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemovePluginCommand.js +55 -0
- package/dist/commands/impl/RemovePluginCommand.js.map +1 -0
- package/dist/commands/impl/RemoveRangeCommand.d.ts +15 -0
- package/dist/commands/impl/RemoveRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveRangeCommand.js +34 -0
- package/dist/commands/impl/RemoveRangeCommand.js.map +1 -0
- package/dist/commands/impl/RemoveRegionCommand.d.ts +17 -0
- package/dist/commands/impl/RemoveRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveRegionCommand.js +58 -0
- package/dist/commands/impl/RemoveRegionCommand.js.map +1 -0
- package/dist/commands/impl/RemoveSendBusCommand.d.ts +17 -0
- package/dist/commands/impl/RemoveSendBusCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveSendBusCommand.js +34 -0
- package/dist/commands/impl/RemoveSendBusCommand.js.map +1 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.d.ts +11 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.js +32 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.js.map +1 -0
- package/dist/commands/impl/RemoveTrackCommand.d.ts +11 -0
- package/dist/commands/impl/RemoveTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveTrackCommand.js +28 -0
- package/dist/commands/impl/RemoveTrackCommand.js.map +1 -0
- package/dist/commands/impl/ReorderTrackCommand.d.ts +15 -0
- package/dist/commands/impl/ReorderTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/ReorderTrackCommand.js +25 -0
- package/dist/commands/impl/ReorderTrackCommand.js.map +1 -0
- package/dist/commands/impl/ResizeRegionCommand.d.ts +18 -0
- package/dist/commands/impl/ResizeRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/ResizeRegionCommand.js +65 -0
- package/dist/commands/impl/ResizeRegionCommand.js.map +1 -0
- package/dist/commands/impl/ReverseRegionCommand.d.ts +22 -0
- package/dist/commands/impl/ReverseRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/ReverseRegionCommand.js +50 -0
- package/dist/commands/impl/ReverseRegionCommand.js.map +1 -0
- package/dist/commands/impl/SaveSessionCommand.d.ts +11 -0
- package/dist/commands/impl/SaveSessionCommand.d.ts.map +1 -0
- package/dist/commands/impl/SaveSessionCommand.js +33 -0
- package/dist/commands/impl/SaveSessionCommand.js.map +1 -0
- package/dist/commands/impl/SaveSnapshotCommand.d.ts +15 -0
- package/dist/commands/impl/SaveSnapshotCommand.d.ts.map +1 -0
- package/dist/commands/impl/SaveSnapshotCommand.js +34 -0
- package/dist/commands/impl/SaveSnapshotCommand.js.map +1 -0
- package/dist/commands/impl/SetGridCommand.d.ts +20 -0
- package/dist/commands/impl/SetGridCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetGridCommand.js +35 -0
- package/dist/commands/impl/SetGridCommand.js.map +1 -0
- package/dist/commands/impl/SetLoopRangeCommand.d.ts +18 -0
- package/dist/commands/impl/SetLoopRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetLoopRangeCommand.js +44 -0
- package/dist/commands/impl/SetLoopRangeCommand.js.map +1 -0
- package/dist/commands/impl/SetPluginParameterCommand.d.ts +16 -0
- package/dist/commands/impl/SetPluginParameterCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetPluginParameterCommand.js +49 -0
- package/dist/commands/impl/SetPluginParameterCommand.js.map +1 -0
- package/dist/commands/impl/SetPunchRangeCommand.d.ts +18 -0
- package/dist/commands/impl/SetPunchRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetPunchRangeCommand.js +42 -0
- package/dist/commands/impl/SetPunchRangeCommand.js.map +1 -0
- package/dist/commands/impl/SetRangeCommand.d.ts +27 -0
- package/dist/commands/impl/SetRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRangeCommand.js +66 -0
- package/dist/commands/impl/SetRangeCommand.js.map +1 -0
- package/dist/commands/impl/SetRegionFadesCommand.d.ts +16 -0
- package/dist/commands/impl/SetRegionFadesCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRegionFadesCommand.js +46 -0
- package/dist/commands/impl/SetRegionFadesCommand.js.map +1 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.d.ts +23 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.js +46 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.js.map +1 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts +16 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.js +42 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.js.map +1 -0
- package/dist/commands/impl/SetSendLevelCommand.d.ts +18 -0
- package/dist/commands/impl/SetSendLevelCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetSendLevelCommand.js +35 -0
- package/dist/commands/impl/SetSendLevelCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackMuteCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackMuteCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackMuteCommand.js +29 -0
- package/dist/commands/impl/SetTrackMuteCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackPanCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackPanCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackPanCommand.js +29 -0
- package/dist/commands/impl/SetTrackPanCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackSoloCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackSoloCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackSoloCommand.js +29 -0
- package/dist/commands/impl/SetTrackSoloCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackVolumeCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackVolumeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackVolumeCommand.js +29 -0
- package/dist/commands/impl/SetTrackVolumeCommand.js.map +1 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.d.ts +32 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.d.ts.map +1 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.js +100 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.js.map +1 -0
- package/dist/commands/impl/SplitRegionCommand.d.ts +22 -0
- package/dist/commands/impl/SplitRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/SplitRegionCommand.js +69 -0
- package/dist/commands/impl/SplitRegionCommand.js.map +1 -0
- package/dist/commands/impl/StripSilenceCommand.d.ts +26 -0
- package/dist/commands/impl/StripSilenceCommand.d.ts.map +1 -0
- package/dist/commands/impl/StripSilenceCommand.js +83 -0
- package/dist/commands/impl/StripSilenceCommand.js.map +1 -0
- package/dist/commands/impl/TimeStretchRegionCommand.d.ts +28 -0
- package/dist/commands/impl/TimeStretchRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/TimeStretchRegionCommand.js +55 -0
- package/dist/commands/impl/TimeStretchRegionCommand.js.map +1 -0
- package/dist/commands/impl/ToggleLoopCommand.d.ts +12 -0
- package/dist/commands/impl/ToggleLoopCommand.d.ts.map +1 -0
- package/dist/commands/impl/ToggleLoopCommand.js +27 -0
- package/dist/commands/impl/ToggleLoopCommand.js.map +1 -0
- package/dist/commands/impl/TrimRegionCommand.d.ts +22 -0
- package/dist/commands/impl/TrimRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimRegionCommand.js +92 -0
- package/dist/commands/impl/TrimRegionCommand.js.map +1 -0
- package/dist/commands/impl/UngroupRegionsCommand.d.ts +14 -0
- package/dist/commands/impl/UngroupRegionsCommand.d.ts.map +1 -0
- package/dist/commands/impl/UngroupRegionsCommand.js +28 -0
- package/dist/commands/impl/UngroupRegionsCommand.js.map +1 -0
- package/dist/commands/types.d.ts +1895 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +1338 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/domain/ABComparison.d.ts +33 -0
- package/dist/domain/ABComparison.d.ts.map +1 -0
- package/dist/domain/ABComparison.js +78 -0
- package/dist/domain/ABComparison.js.map +1 -0
- package/dist/domain/CDMarker.d.ts +36 -0
- package/dist/domain/CDMarker.d.ts.map +1 -0
- package/dist/domain/CDMarker.js +78 -0
- package/dist/domain/CDMarker.js.map +1 -0
- package/dist/domain/ClockMode.d.ts +19 -0
- package/dist/domain/ClockMode.d.ts.map +1 -0
- package/dist/domain/ClockMode.js +65 -0
- package/dist/domain/ClockMode.js.map +1 -0
- package/dist/domain/CrossfadeEngine.d.ts +27 -0
- package/dist/domain/CrossfadeEngine.d.ts.map +1 -0
- package/dist/domain/CrossfadeEngine.js +47 -0
- package/dist/domain/CrossfadeEngine.js.map +1 -0
- package/dist/domain/DragManager.d.ts +21 -0
- package/dist/domain/DragManager.d.ts.map +1 -0
- package/dist/domain/DragManager.js +37 -0
- package/dist/domain/DragManager.js.map +1 -0
- package/dist/domain/EditMode.d.ts +15 -0
- package/dist/domain/EditMode.d.ts.map +1 -0
- package/dist/domain/EditMode.js +16 -0
- package/dist/domain/EditMode.js.map +1 -0
- package/dist/domain/ExportConfig.d.ts +55 -0
- package/dist/domain/ExportConfig.d.ts.map +1 -0
- package/dist/domain/ExportConfig.js +115 -0
- package/dist/domain/ExportConfig.js.map +1 -0
- package/dist/domain/ExportStatus.d.ts +46 -0
- package/dist/domain/ExportStatus.d.ts.map +1 -0
- package/dist/domain/ExportStatus.js +113 -0
- package/dist/domain/ExportStatus.js.map +1 -0
- package/dist/domain/FadeEnvelope.d.ts +31 -0
- package/dist/domain/FadeEnvelope.d.ts.map +1 -0
- package/dist/domain/FadeEnvelope.js +44 -0
- package/dist/domain/FadeEnvelope.js.map +1 -0
- package/dist/domain/GridSettings.d.ts +99 -0
- package/dist/domain/GridSettings.d.ts.map +1 -0
- package/dist/domain/GridSettings.js +213 -0
- package/dist/domain/GridSettings.js.map +1 -0
- package/dist/domain/Marker.d.ts +31 -0
- package/dist/domain/Marker.d.ts.map +1 -0
- package/dist/domain/Marker.js +56 -0
- package/dist/domain/Marker.js.map +1 -0
- package/dist/domain/MeterData.d.ts +26 -0
- package/dist/domain/MeterData.d.ts.map +1 -0
- package/dist/domain/MeterData.js +2 -0
- package/dist/domain/MeterData.js.map +1 -0
- package/dist/domain/MeterType.d.ts +22 -0
- package/dist/domain/MeterType.d.ts.map +1 -0
- package/dist/domain/MeterType.js +24 -0
- package/dist/domain/MeterType.js.map +1 -0
- package/dist/domain/MidiClip.d.ts +56 -0
- package/dist/domain/MidiClip.d.ts.map +1 -0
- package/dist/domain/MidiClip.js +119 -0
- package/dist/domain/MidiClip.js.map +1 -0
- package/dist/domain/MidiNote.d.ts +38 -0
- package/dist/domain/MidiNote.d.ts.map +1 -0
- package/dist/domain/MidiNote.js +82 -0
- package/dist/domain/MidiNote.js.map +1 -0
- package/dist/domain/MidiRegion.d.ts +65 -0
- package/dist/domain/MidiRegion.d.ts.map +1 -0
- package/dist/domain/MidiRegion.js +123 -0
- package/dist/domain/MidiRegion.js.map +1 -0
- package/dist/domain/MixerScene.d.ts +62 -0
- package/dist/domain/MixerScene.d.ts.map +1 -0
- package/dist/domain/MixerScene.js +131 -0
- package/dist/domain/MixerScene.js.map +1 -0
- package/dist/domain/MonitorMode.d.ts +15 -0
- package/dist/domain/MonitorMode.d.ts.map +1 -0
- package/dist/domain/MonitorMode.js +16 -0
- package/dist/domain/MonitorMode.js.map +1 -0
- package/dist/domain/MouseMode.d.ts +25 -0
- package/dist/domain/MouseMode.d.ts.map +1 -0
- package/dist/domain/MouseMode.js +26 -0
- package/dist/domain/MouseMode.js.map +1 -0
- package/dist/domain/OverlapType.d.ts +18 -0
- package/dist/domain/OverlapType.d.ts.map +1 -0
- package/dist/domain/OverlapType.js +19 -0
- package/dist/domain/OverlapType.js.map +1 -0
- package/dist/domain/Playlist.d.ts +83 -0
- package/dist/domain/Playlist.d.ts.map +1 -0
- package/dist/domain/Playlist.js +205 -0
- package/dist/domain/Playlist.js.map +1 -0
- package/dist/domain/Range.d.ts +35 -0
- package/dist/domain/Range.d.ts.map +1 -0
- package/dist/domain/Range.js +59 -0
- package/dist/domain/Range.js.map +1 -0
- package/dist/domain/RecordMode.d.ts +13 -0
- package/dist/domain/RecordMode.d.ts.map +1 -0
- package/dist/domain/RecordMode.js +14 -0
- package/dist/domain/RecordMode.js.map +1 -0
- package/dist/domain/Region.d.ts +96 -0
- package/dist/domain/Region.d.ts.map +1 -0
- package/dist/domain/Region.js +219 -0
- package/dist/domain/Region.js.map +1 -0
- package/dist/domain/RegionClipboard.d.ts +56 -0
- package/dist/domain/RegionClipboard.d.ts.map +1 -0
- package/dist/domain/RegionClipboard.js +70 -0
- package/dist/domain/RegionClipboard.js.map +1 -0
- package/dist/domain/RegionGroup.d.ts +16 -0
- package/dist/domain/RegionGroup.d.ts.map +1 -0
- package/dist/domain/RegionGroup.js +36 -0
- package/dist/domain/RegionGroup.js.map +1 -0
- package/dist/domain/Route.d.ts +104 -0
- package/dist/domain/Route.d.ts.map +1 -0
- package/dist/domain/Route.js +192 -0
- package/dist/domain/Route.js.map +1 -0
- package/dist/domain/RulerType.d.ts +21 -0
- package/dist/domain/RulerType.d.ts.map +1 -0
- package/dist/domain/RulerType.js +22 -0
- package/dist/domain/RulerType.js.map +1 -0
- package/dist/domain/SelectionHistory.d.ts +38 -0
- package/dist/domain/SelectionHistory.d.ts.map +1 -0
- package/dist/domain/SelectionHistory.js +70 -0
- package/dist/domain/SelectionHistory.js.map +1 -0
- package/dist/domain/SendBus.d.ts +28 -0
- package/dist/domain/SendBus.d.ts.map +1 -0
- package/dist/domain/SendBus.js +43 -0
- package/dist/domain/SendBus.js.map +1 -0
- package/dist/domain/Session.d.ts +347 -0
- package/dist/domain/Session.d.ts.map +1 -0
- package/dist/domain/Session.js +965 -0
- package/dist/domain/Session.js.map +1 -0
- package/dist/domain/SidechainConfig.d.ts +51 -0
- package/dist/domain/SidechainConfig.d.ts.map +1 -0
- package/dist/domain/SidechainConfig.js +84 -0
- package/dist/domain/SidechainConfig.js.map +1 -0
- package/dist/domain/Source.d.ts +11 -0
- package/dist/domain/Source.d.ts.map +1 -0
- package/dist/domain/Source.js +11 -0
- package/dist/domain/Source.js.map +1 -0
- package/dist/domain/Take.d.ts +66 -0
- package/dist/domain/Take.d.ts.map +1 -0
- package/dist/domain/Take.js +106 -0
- package/dist/domain/Take.js.map +1 -0
- package/dist/domain/Track.d.ts +58 -0
- package/dist/domain/Track.d.ts.map +1 -0
- package/dist/domain/Track.js +124 -0
- package/dist/domain/Track.js.map +1 -0
- package/dist/domain/TrackGroup.d.ts +39 -0
- package/dist/domain/TrackGroup.d.ts.map +1 -0
- package/dist/domain/TrackGroup.js +86 -0
- package/dist/domain/TrackGroup.js.map +1 -0
- package/dist/domain/TransportFSM.d.ts +188 -0
- package/dist/domain/TransportFSM.d.ts.map +1 -0
- package/dist/domain/TransportFSM.js +412 -0
- package/dist/domain/TransportFSM.js.map +1 -0
- package/dist/domain/TransportMode.d.ts +23 -0
- package/dist/domain/TransportMode.d.ts.map +1 -0
- package/dist/domain/TransportMode.js +38 -0
- package/dist/domain/TransportMode.js.map +1 -0
- package/dist/domain/VCATrack.d.ts +48 -0
- package/dist/domain/VCATrack.d.ts.map +1 -0
- package/dist/domain/VCATrack.js +85 -0
- package/dist/domain/VCATrack.js.map +1 -0
- package/dist/domain/ZoomFocus.d.ts +21 -0
- package/dist/domain/ZoomFocus.d.ts.map +1 -0
- package/dist/domain/ZoomFocus.js +22 -0
- package/dist/domain/ZoomFocus.js.map +1 -0
- package/dist/domain/index.d.ts +11 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +12 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/temporal/TempoMap.d.ts +68 -0
- package/dist/domain/temporal/TempoMap.d.ts.map +1 -0
- package/dist/domain/temporal/TempoMap.js +151 -0
- package/dist/domain/temporal/TempoMap.js.map +1 -0
- package/dist/domain/temporal/types.d.ts +34 -0
- package/dist/domain/temporal/types.d.ts.map +1 -0
- package/dist/domain/temporal/types.js +54 -0
- package/dist/domain/temporal/types.js.map +1 -0
- package/dist/domain/types.d.ts +26 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +11 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/errors/DAWErrors.d.ts +107 -0
- package/dist/errors/DAWErrors.d.ts.map +1 -0
- package/dist/errors/DAWErrors.js +159 -0
- package/dist/errors/DAWErrors.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/Signal.d.ts +28 -0
- package/dist/lib/Signal.d.ts.map +1 -0
- package/dist/lib/Signal.js +34 -0
- package/dist/lib/Signal.js.map +1 -0
- package/dist/midi/MidiInput.d.ts +61 -0
- package/dist/midi/MidiInput.d.ts.map +1 -0
- package/dist/midi/MidiInput.js +153 -0
- package/dist/midi/MidiInput.js.map +1 -0
- package/dist/plugins/AutomatableParameter.d.ts +28 -0
- package/dist/plugins/AutomatableParameter.d.ts.map +1 -0
- package/dist/plugins/AutomatableParameter.js +89 -0
- package/dist/plugins/AutomatableParameter.js.map +1 -0
- package/dist/plugins/Plugin.d.ts +31 -0
- package/dist/plugins/Plugin.d.ts.map +1 -0
- package/dist/plugins/Plugin.js +7 -0
- package/dist/plugins/Plugin.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +15 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +199 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/PluginPreset.d.ts +50 -0
- package/dist/plugins/PluginPreset.d.ts.map +1 -0
- package/dist/plugins/PluginPreset.js +292 -0
- package/dist/plugins/PluginPreset.js.map +1 -0
- package/dist/plugins/impl/AutoPanPlugin.d.ts +28 -0
- package/dist/plugins/impl/AutoPanPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/AutoPanPlugin.js +48 -0
- package/dist/plugins/impl/AutoPanPlugin.js.map +1 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.d.ts +35 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.js +65 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.js.map +1 -0
- package/dist/plugins/impl/DeEsserPlugin.d.ts +35 -0
- package/dist/plugins/impl/DeEsserPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/DeEsserPlugin.js +87 -0
- package/dist/plugins/impl/DeEsserPlugin.js.map +1 -0
- package/dist/plugins/impl/ExpanderPlugin.d.ts +42 -0
- package/dist/plugins/impl/ExpanderPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/ExpanderPlugin.js +105 -0
- package/dist/plugins/impl/ExpanderPlugin.js.map +1 -0
- package/dist/plugins/impl/GenericPlugin.d.ts +20 -0
- package/dist/plugins/impl/GenericPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/GenericPlugin.js +37 -0
- package/dist/plugins/impl/GenericPlugin.js.map +1 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.d.ts +33 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.js +169 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.js.map +1 -0
- package/dist/plugins/impl/ParametricEQPlugin.d.ts +25 -0
- package/dist/plugins/impl/ParametricEQPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/ParametricEQPlugin.js +79 -0
- package/dist/plugins/impl/ParametricEQPlugin.js.map +1 -0
- package/dist/plugins/impl/PhaserPlugin.d.ts +29 -0
- package/dist/plugins/impl/PhaserPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/PhaserPlugin.js +50 -0
- package/dist/plugins/impl/PhaserPlugin.js.map +1 -0
- package/dist/plugins/impl/SyncDelayPlugin.d.ts +52 -0
- package/dist/plugins/impl/SyncDelayPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/SyncDelayPlugin.js +95 -0
- package/dist/plugins/impl/SyncDelayPlugin.js.map +1 -0
- package/dist/plugins/impl/TapeSaturationPlugin.d.ts +35 -0
- package/dist/plugins/impl/TapeSaturationPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/TapeSaturationPlugin.js +87 -0
- package/dist/plugins/impl/TapeSaturationPlugin.js.map +1 -0
- package/dist/plugins/impl/TremoloPlugin.d.ts +29 -0
- package/dist/plugins/impl/TremoloPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/TremoloPlugin.js +50 -0
- package/dist/plugins/impl/TremoloPlugin.js.map +1 -0
- package/dist/plugins/impl/VibratoPlugin.d.ts +28 -0
- package/dist/plugins/impl/VibratoPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/VibratoPlugin.js +48 -0
- package/dist/plugins/impl/VibratoPlugin.js.map +1 -0
- package/dist/preferences/KeyBindings.d.ts +38 -0
- package/dist/preferences/KeyBindings.d.ts.map +1 -0
- package/dist/preferences/KeyBindings.js +83 -0
- package/dist/preferences/KeyBindings.js.map +1 -0
- package/dist/preferences/Preferences.d.ts +49 -0
- package/dist/preferences/Preferences.d.ts.map +1 -0
- package/dist/preferences/Preferences.js +93 -0
- package/dist/preferences/Preferences.js.map +1 -0
- package/dist/preferences/index.d.ts +4 -0
- package/dist/preferences/index.d.ts.map +1 -0
- package/dist/preferences/index.js +3 -0
- package/dist/preferences/index.js.map +1 -0
- package/dist/processing/GainProcessor.d.ts +10 -0
- package/dist/processing/GainProcessor.d.ts.map +1 -0
- package/dist/processing/GainProcessor.js +21 -0
- package/dist/processing/GainProcessor.js.map +1 -0
- package/dist/processing/IO.d.ts +15 -0
- package/dist/processing/IO.d.ts.map +1 -0
- package/dist/processing/IO.js +34 -0
- package/dist/processing/IO.js.map +1 -0
- package/dist/processing/MeterProcessor.d.ts +101 -0
- package/dist/processing/MeterProcessor.d.ts.map +1 -0
- package/dist/processing/MeterProcessor.js +195 -0
- package/dist/processing/MeterProcessor.js.map +1 -0
- package/dist/processing/PanProcessor.d.ts +15 -0
- package/dist/processing/PanProcessor.d.ts.map +1 -0
- package/dist/processing/PanProcessor.js +35 -0
- package/dist/processing/PanProcessor.js.map +1 -0
- package/dist/processing/PluginInsert.d.ts +9 -0
- package/dist/processing/PluginInsert.d.ts.map +1 -0
- package/dist/processing/PluginInsert.js +16 -0
- package/dist/processing/PluginInsert.js.map +1 -0
- package/dist/processing/PolarityProcessor.d.ts +25 -0
- package/dist/processing/PolarityProcessor.d.ts.map +1 -0
- package/dist/processing/PolarityProcessor.js +35 -0
- package/dist/processing/PolarityProcessor.js.map +1 -0
- package/dist/processing/Processor.d.ts +31 -0
- package/dist/processing/Processor.d.ts.map +1 -0
- package/dist/processing/Processor.js +45 -0
- package/dist/processing/Processor.js.map +1 -0
- package/dist/processing/SendProcessor.d.ts +55 -0
- package/dist/processing/SendProcessor.d.ts.map +1 -0
- package/dist/processing/SendProcessor.js +97 -0
- package/dist/processing/SendProcessor.js.map +1 -0
- package/dist/storage/AutoSave.d.ts +48 -0
- package/dist/storage/AutoSave.d.ts.map +1 -0
- package/dist/storage/AutoSave.js +108 -0
- package/dist/storage/AutoSave.js.map +1 -0
- package/dist/storage/SessionStorage.d.ts +74 -0
- package/dist/storage/SessionStorage.d.ts.map +1 -0
- package/dist/storage/SessionStorage.js +192 -0
- package/dist/storage/SessionStorage.js.map +1 -0
- package/dist/storage/SessionTemplate.d.ts +22 -0
- package/dist/storage/SessionTemplate.d.ts.map +1 -0
- package/dist/storage/SessionTemplate.js +77 -0
- package/dist/storage/SessionTemplate.js.map +1 -0
- package/dist/utils/AudioBufferToWav.d.ts +28 -0
- package/dist/utils/AudioBufferToWav.d.ts.map +1 -0
- package/dist/utils/AudioBufferToWav.js +110 -0
- package/dist/utils/AudioBufferToWav.js.map +1 -0
- package/dist/utils/DitherProcessor.d.ts +41 -0
- package/dist/utils/DitherProcessor.d.ts.map +1 -0
- package/dist/utils/DitherProcessor.js +78 -0
- package/dist/utils/DitherProcessor.js.map +1 -0
- package/dist/utils/FlacEncoder.d.ts +22 -0
- package/dist/utils/FlacEncoder.d.ts.map +1 -0
- package/dist/utils/FlacEncoder.js +196 -0
- package/dist/utils/FlacEncoder.js.map +1 -0
- package/dist/utils/OggEncoder.d.ts +40 -0
- package/dist/utils/OggEncoder.d.ts.map +1 -0
- package/dist/utils/OggEncoder.js +183 -0
- package/dist/utils/OggEncoder.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for audio metering.
|
|
3
|
+
* Operates on raw Float32Array time-domain data from AnalyserNode.
|
|
4
|
+
*
|
|
5
|
+
* Ardour reference: libs/ardour/meter.cc
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Convert a linear amplitude value to decibels (dBFS).
|
|
9
|
+
* Returns -Infinity for zero or negative input.
|
|
10
|
+
*/
|
|
11
|
+
export function linearToDb(linear) {
|
|
12
|
+
if (linear <= 0)
|
|
13
|
+
return -Infinity;
|
|
14
|
+
return 20 * Math.log10(linear);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Convert a decibel value to linear amplitude.
|
|
18
|
+
* Returns 0 for -Infinity input.
|
|
19
|
+
*/
|
|
20
|
+
export function dbToLinear(db) {
|
|
21
|
+
if (db === -Infinity)
|
|
22
|
+
return 0;
|
|
23
|
+
return Math.pow(10, db / 20);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Calculate peak level in dBFS from an AnalyserNode's time-domain data.
|
|
27
|
+
*/
|
|
28
|
+
export function calculatePeakDb(analyser) {
|
|
29
|
+
const buffer = new Float32Array(analyser.fftSize);
|
|
30
|
+
analyser.getFloatTimeDomainData(buffer);
|
|
31
|
+
let peak = 0;
|
|
32
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
33
|
+
const abs = Math.abs(buffer[i]);
|
|
34
|
+
if (abs > peak) {
|
|
35
|
+
peak = abs;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return linearToDb(peak);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Calculate RMS level in dBFS from an AnalyserNode's time-domain data.
|
|
42
|
+
*/
|
|
43
|
+
export function calculateRmsDb(analyser) {
|
|
44
|
+
const buffer = new Float32Array(analyser.fftSize);
|
|
45
|
+
analyser.getFloatTimeDomainData(buffer);
|
|
46
|
+
let sumSquares = 0;
|
|
47
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
48
|
+
sumSquares += buffer[i] * buffer[i];
|
|
49
|
+
}
|
|
50
|
+
const rms = Math.sqrt(sumSquares / buffer.length);
|
|
51
|
+
return linearToDb(rms);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* K-Metering (Item 7)
|
|
55
|
+
* K-System meters offset dBFS so that the reference level sits at 0 on the scale.
|
|
56
|
+
* K-14: 0 on scale = -14 dBFS (mastering/broadcast)
|
|
57
|
+
* K-20: 0 on scale = -20 dBFS (film/large-venue)
|
|
58
|
+
*/
|
|
59
|
+
/** Apply K-14 offset: dBFS + 14 */
|
|
60
|
+
export function kMeter14(dbfs) {
|
|
61
|
+
return dbfs + 14;
|
|
62
|
+
}
|
|
63
|
+
/** Apply K-20 offset: dBFS + 20 */
|
|
64
|
+
export function kMeter20(dbfs) {
|
|
65
|
+
return dbfs + 20;
|
|
66
|
+
}
|
|
67
|
+
/** Generic K-meter offset */
|
|
68
|
+
export function kMeter(dbfs, kLevel) {
|
|
69
|
+
return dbfs + kLevel;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=MeterUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeterUtils.js","sourceRoot":"","sources":["../../src/audio/MeterUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACrC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC;IAClC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,IAAI,EAAE,KAAK,CAAC,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAsB;IAClD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;YACb,IAAI,GAAG,GAAG,CAAC;QACf,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAsB;IACjD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AAEH,mCAAmC;AACnC,MAAM,UAAU,QAAQ,CAAC,IAAY;IACjC,OAAO,IAAI,GAAG,EAAE,CAAC;AACrB,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,QAAQ,CAAC,IAAY;IACjC,OAAO,IAAI,GAAG,EAAE,CAAC;AACrB,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,MAAe;IAChD,OAAO,IAAI,GAAG,MAAM,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { FrameCount, TrackId } from '../domain/types';
|
|
2
|
+
import { ExportConfig } from '../domain/ExportConfig';
|
|
3
|
+
import { ExportStatus } from '../domain/ExportStatus';
|
|
4
|
+
/**
|
|
5
|
+
* Offline Audio Exporter
|
|
6
|
+
* Ardour 참조: libs/ardour/export_handler.cc
|
|
7
|
+
*
|
|
8
|
+
* Web Audio의 OfflineAudioContext를 활용하여 실시간보다 빠르게 렌더링합니다.
|
|
9
|
+
*/
|
|
10
|
+
export declare class OfflineExporter {
|
|
11
|
+
/**
|
|
12
|
+
* Export audio using Offline Rendering
|
|
13
|
+
*
|
|
14
|
+
* @param config Export configuration
|
|
15
|
+
* @param status Export status (for progress tracking)
|
|
16
|
+
* @param getTrackAudio Callback to get track audio for a given time range
|
|
17
|
+
*/
|
|
18
|
+
static export(config: ExportConfig, status: ExportStatus, getTrackAudio: (trackIds: TrackId[], startFrame: FrameCount, endFrame: FrameCount) => Promise<AudioBuffer>): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Normalize audio buffer using peak normalization.
|
|
21
|
+
*
|
|
22
|
+
* NOTE: Despite previously being labeled as "LUFS", this method performs simple
|
|
23
|
+
* peak normalization (not ITU-R BS.1770 loudness measurement). The target value
|
|
24
|
+
* is interpreted as a peak level in dBFS, not as an integrated loudness value.
|
|
25
|
+
* True LUFS normalization would require K-weighted filtering and gated measurement.
|
|
26
|
+
*
|
|
27
|
+
* @param buffer Audio data (modified in-place)
|
|
28
|
+
* @param targetPeakDb Target peak level in dBFS (default: -14 dBFS)
|
|
29
|
+
*/
|
|
30
|
+
private static normalizeBuffer;
|
|
31
|
+
/**
|
|
32
|
+
* Encode AudioBuffer to Blob
|
|
33
|
+
*/
|
|
34
|
+
private static encodeToBlob;
|
|
35
|
+
/**
|
|
36
|
+
* Encode to MP3 format using lamejs
|
|
37
|
+
*/
|
|
38
|
+
private static encodeMP3;
|
|
39
|
+
/**
|
|
40
|
+
* Stem Export: export each track individually as separate files.
|
|
41
|
+
* Returns a map of trackId -> { blob, filename }.
|
|
42
|
+
*/
|
|
43
|
+
static exportStems(config: ExportConfig, status: ExportStatus, trackIds: TrackId[], trackNames: Map<TrackId, string>, getTrackAudio: (ids: TrackId[], startFrame: FrameCount, endFrame: FrameCount) => Promise<AudioBuffer>): Promise<Map<TrackId, {
|
|
44
|
+
blob: Blob;
|
|
45
|
+
filename: string;
|
|
46
|
+
}>>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=OfflineExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OfflineExporter.d.ts","sourceRoot":"","sources":["../../src/audio/OfflineExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AAOtE;;;;;GAKG;AACH,qBAAa,eAAe;IACxB;;;;;;OAMG;WACiB,MAAM,CACtB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,GAC3G,OAAO,CAAC,IAAI,CAAC;IAyEhB;;;;;;;;;;OAUG;mBACkB,eAAe;IA0BpC;;OAEG;mBACkB,YAAY;IAkBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IA0CxB;;;OAGG;WACiB,WAAW,CAC3B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAChC,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,GACtG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAqD7D"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { ExportProgress } from '../domain/ExportStatus';
|
|
2
|
+
import { AudioBufferToWav } from '../utils/AudioBufferToWav';
|
|
3
|
+
import { OggEncoder } from '../utils/OggEncoder';
|
|
4
|
+
import { FlacEncoder } from '../utils/FlacEncoder';
|
|
5
|
+
import { DitherProcessor, DitherType } from '../utils/DitherProcessor';
|
|
6
|
+
import * as lamejs from 'lamejs';
|
|
7
|
+
/**
|
|
8
|
+
* Offline Audio Exporter
|
|
9
|
+
* Ardour 참조: libs/ardour/export_handler.cc
|
|
10
|
+
*
|
|
11
|
+
* Web Audio의 OfflineAudioContext를 활용하여 실시간보다 빠르게 렌더링합니다.
|
|
12
|
+
*/
|
|
13
|
+
export class OfflineExporter {
|
|
14
|
+
/**
|
|
15
|
+
* Export audio using Offline Rendering
|
|
16
|
+
*
|
|
17
|
+
* @param config Export configuration
|
|
18
|
+
* @param status Export status (for progress tracking)
|
|
19
|
+
* @param getTrackAudio Callback to get track audio for a given time range
|
|
20
|
+
*/
|
|
21
|
+
static async export(config, status, getTrackAudio) {
|
|
22
|
+
try {
|
|
23
|
+
if (!config.validate()) {
|
|
24
|
+
throw new Error('Invalid export configuration');
|
|
25
|
+
}
|
|
26
|
+
const duration = config.getDuration();
|
|
27
|
+
const durationSeconds = duration / config.sampleRate;
|
|
28
|
+
console.log(`[OfflineExporter] Starting export: ${durationSeconds}s at ${config.sampleRate}Hz`);
|
|
29
|
+
console.log(`[OfflineExporter] Export config trackIds:`, config.trackIds, `exportMasterOnly:`, config.exportMasterOnly);
|
|
30
|
+
// Initialize status
|
|
31
|
+
status.init(duration, config.getFullPath());
|
|
32
|
+
// Render Phase
|
|
33
|
+
status.setProgress(ExportProgress.RENDERING);
|
|
34
|
+
// Get trackIds to pass to getTrackAudio
|
|
35
|
+
const trackIdsToExport = config.trackIds && config.trackIds.length > 0
|
|
36
|
+
? config.trackIds
|
|
37
|
+
: undefined; // undefined means "all tracks"
|
|
38
|
+
console.log(`[OfflineExporter] Calling getTrackAudio with trackIds:`, trackIdsToExport);
|
|
39
|
+
const renderedBuffer = await getTrackAudio(trackIdsToExport, config.startFrame, config.endFrame);
|
|
40
|
+
// Update progress
|
|
41
|
+
status.updateProcessedFrames(duration);
|
|
42
|
+
// Normalize Phase (if enabled)
|
|
43
|
+
if (config.normalize) {
|
|
44
|
+
status.setProgress(ExportProgress.NORMALIZING);
|
|
45
|
+
await this.normalizeBuffer(renderedBuffer, config.targetPeakDb);
|
|
46
|
+
}
|
|
47
|
+
// Dithering Phase (before encoding, when reducing bit depth)
|
|
48
|
+
if (config.ditherType !== DitherType.NONE) {
|
|
49
|
+
const targetBits = config.sampleFormat === 'int16' ? 16 :
|
|
50
|
+
config.sampleFormat === 'int24' ? 24 : 32;
|
|
51
|
+
if (targetBits < 32) {
|
|
52
|
+
for (let ch = 0; ch < renderedBuffer.numberOfChannels; ch++) {
|
|
53
|
+
DitherProcessor.apply(renderedBuffer.getChannelData(ch), targetBits, config.ditherType);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Encoding Phase
|
|
58
|
+
status.setProgress(ExportProgress.ENCODING);
|
|
59
|
+
const blob = await this.encodeToBlob(renderedBuffer, config);
|
|
60
|
+
// Create object URL
|
|
61
|
+
const url = URL.createObjectURL(blob);
|
|
62
|
+
// Complete
|
|
63
|
+
status.complete(blob, url);
|
|
64
|
+
console.log(`[OfflineExporter] Export completed: ${blob.size} bytes`);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
68
|
+
console.error(`[OfflineExporter] Export failed:`, error);
|
|
69
|
+
status.setError(message);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Normalize audio buffer using peak normalization.
|
|
74
|
+
*
|
|
75
|
+
* NOTE: Despite previously being labeled as "LUFS", this method performs simple
|
|
76
|
+
* peak normalization (not ITU-R BS.1770 loudness measurement). The target value
|
|
77
|
+
* is interpreted as a peak level in dBFS, not as an integrated loudness value.
|
|
78
|
+
* True LUFS normalization would require K-weighted filtering and gated measurement.
|
|
79
|
+
*
|
|
80
|
+
* @param buffer Audio data (modified in-place)
|
|
81
|
+
* @param targetPeakDb Target peak level in dBFS (default: -14 dBFS)
|
|
82
|
+
*/
|
|
83
|
+
static async normalizeBuffer(buffer, targetPeakDb) {
|
|
84
|
+
const target = targetPeakDb !== null && targetPeakDb !== void 0 ? targetPeakDb : -14; // Default to -14 dBFS
|
|
85
|
+
let maxPeak = 0;
|
|
86
|
+
for (let ch = 0; ch < buffer.numberOfChannels; ch++) {
|
|
87
|
+
const data = buffer.getChannelData(ch);
|
|
88
|
+
for (let i = 0; i < data.length; i++) {
|
|
89
|
+
maxPeak = Math.max(maxPeak, Math.abs(data[i]));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (maxPeak === 0)
|
|
93
|
+
return;
|
|
94
|
+
// Convert dBFS target to linear gain and scale so the peak hits that level
|
|
95
|
+
const targetLinear = Math.pow(10, target / 20);
|
|
96
|
+
const gain = targetLinear / maxPeak;
|
|
97
|
+
// Apply gain
|
|
98
|
+
for (let ch = 0; ch < buffer.numberOfChannels; ch++) {
|
|
99
|
+
const data = buffer.getChannelData(ch);
|
|
100
|
+
for (let i = 0; i < data.length; i++) {
|
|
101
|
+
data[i] *= gain;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Encode AudioBuffer to Blob
|
|
107
|
+
*/
|
|
108
|
+
static async encodeToBlob(buffer, config) {
|
|
109
|
+
var _a;
|
|
110
|
+
switch (config.format) {
|
|
111
|
+
case 'wav':
|
|
112
|
+
return AudioBufferToWav.encode(buffer, config.sampleFormat);
|
|
113
|
+
case 'mp3':
|
|
114
|
+
return this.encodeMP3(buffer, config);
|
|
115
|
+
case 'ogg':
|
|
116
|
+
return OggEncoder.encode(buffer, (_a = config.quality) !== null && _a !== void 0 ? _a : 0.5);
|
|
117
|
+
case 'flac':
|
|
118
|
+
return FlacEncoder.encode(buffer, config.sampleFormat === 'int24' ? 24 : 16);
|
|
119
|
+
default:
|
|
120
|
+
throw new Error(`Unknown format: ${config.format}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Encode to MP3 format using lamejs
|
|
125
|
+
*/
|
|
126
|
+
static encodeMP3(buffer, config) {
|
|
127
|
+
const channels = buffer.numberOfChannels;
|
|
128
|
+
const sampleRate = buffer.sampleRate;
|
|
129
|
+
const kbps = config.bitrate || 128; // Default 128kbps
|
|
130
|
+
const mp3encoder = new lamejs.Mp3Encoder(channels, sampleRate, kbps);
|
|
131
|
+
const mp3Data = [];
|
|
132
|
+
// Convert Float32 to Int16
|
|
133
|
+
// Lamejs expects Int16 PCM data
|
|
134
|
+
const left = buffer.getChannelData(0);
|
|
135
|
+
const right = channels > 1 ? buffer.getChannelData(1) : undefined;
|
|
136
|
+
const leftInt16 = new Int16Array(left.length);
|
|
137
|
+
const rightInt16 = right ? new Int16Array(right.length) : undefined;
|
|
138
|
+
for (let i = 0; i < left.length; i++) {
|
|
139
|
+
// Clamp and convert
|
|
140
|
+
const s = Math.max(-1, Math.min(1, left[i]));
|
|
141
|
+
leftInt16[i] = s < 0 ? s * 0x8000 : s * 0x7FFF;
|
|
142
|
+
if (right && rightInt16) {
|
|
143
|
+
const sR = Math.max(-1, Math.min(1, right[i]));
|
|
144
|
+
rightInt16[i] = sR < 0 ? sR * 0x8000 : sR * 0x7FFF;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Encode blocks
|
|
148
|
+
const mp3buf = mp3encoder.encodeBuffer(leftInt16, rightInt16);
|
|
149
|
+
if (mp3buf.length > 0) {
|
|
150
|
+
mp3Data.push(mp3buf);
|
|
151
|
+
}
|
|
152
|
+
// Flush
|
|
153
|
+
const mp3bufFlush = mp3encoder.flush();
|
|
154
|
+
if (mp3bufFlush.length > 0) {
|
|
155
|
+
mp3Data.push(mp3bufFlush);
|
|
156
|
+
}
|
|
157
|
+
return new Blob(mp3Data, { type: 'audio/mp3' });
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Stem Export: export each track individually as separate files.
|
|
161
|
+
* Returns a map of trackId -> { blob, filename }.
|
|
162
|
+
*/
|
|
163
|
+
static async exportStems(config, status, trackIds, trackNames, getTrackAudio) {
|
|
164
|
+
const results = new Map();
|
|
165
|
+
if (!config.validate()) {
|
|
166
|
+
throw new Error('Invalid export configuration');
|
|
167
|
+
}
|
|
168
|
+
const totalTracks = trackIds.length;
|
|
169
|
+
const duration = config.getDuration();
|
|
170
|
+
status.init(duration * totalTracks, config.getFullPath());
|
|
171
|
+
status.setProgress(ExportProgress.RENDERING);
|
|
172
|
+
for (let i = 0; i < trackIds.length; i++) {
|
|
173
|
+
if (status.aborted)
|
|
174
|
+
break;
|
|
175
|
+
const trackId = trackIds[i];
|
|
176
|
+
const trackName = trackNames.get(trackId) || `Track_${i + 1}`;
|
|
177
|
+
const safeTrackName = trackName.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
178
|
+
console.log(`[OfflineExporter] Stem ${i + 1}/${totalTracks}: ${trackName}`);
|
|
179
|
+
// Render single track
|
|
180
|
+
const renderedBuffer = await getTrackAudio([trackId], config.startFrame, config.endFrame);
|
|
181
|
+
// Normalize if enabled
|
|
182
|
+
if (config.normalize) {
|
|
183
|
+
await this.normalizeBuffer(renderedBuffer, config.targetPeakDb);
|
|
184
|
+
}
|
|
185
|
+
// Encode
|
|
186
|
+
const blob = await this.encodeToBlob(renderedBuffer, config);
|
|
187
|
+
const filename = `${config.filename}_${safeTrackName}.${config.format}`;
|
|
188
|
+
results.set(trackId, { blob, filename });
|
|
189
|
+
status.updateProcessedFrames(duration * (i + 1));
|
|
190
|
+
}
|
|
191
|
+
if (!status.aborted) {
|
|
192
|
+
// Create a combined blob (or return individual stems)
|
|
193
|
+
const firstResult = results.values().next().value;
|
|
194
|
+
if (firstResult) {
|
|
195
|
+
const url = URL.createObjectURL(firstResult.blob);
|
|
196
|
+
status.complete(firstResult.blob, url);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return results;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=OfflineExporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OfflineExporter.js","sourceRoot":"","sources":["../../src/audio/OfflineExporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IACxB;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CACtB,MAAoB,EACpB,MAAoB,EACpB,aAA0G;QAE1G,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;YAErD,OAAO,CAAC,GAAG,CAAC,sCAAsC,eAAe,QAAQ,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;YAChG,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAExH,oBAAoB;YACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAE5C,eAAe;YACf,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAE7C,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAClE,CAAC,CAAC,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC,SAAS,CAAC,CAAC,+BAA+B;YAEhD,OAAO,CAAC,GAAG,CAAC,wDAAwD,EAAE,gBAAgB,CAAC,CAAC;YAExF,MAAM,cAAc,GAAG,MAAM,aAAa,CACtC,gBAA6B,EAC7B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,CAClB,CAAC;YAEF,kBAAkB;YAClB,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAEvC,+BAA+B;YAC/B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACpE,CAAC;YAED,6DAA6D;YAC7D,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;oBAClB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC1D,eAAe,CAAC,KAAK,CACjB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,EACjC,UAAU,EACV,MAAM,CAAC,UAAU,CACpB,CAAC;oBACN,CAAC;gBACL,CAAC;YACL,CAAC;YAED,iBAAiB;YACjB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAE7D,oBAAoB;YACpB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEtC,WAAW;YACX,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE3B,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACK,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAmB,EAAE,YAAqB;QAC3E,MAAM,MAAM,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,EAAE,CAAC,CAAC,sBAAsB;QAE1D,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;QAED,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO;QAE1B,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC;QAEpC,aAAa;QACb,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAmB,EAAE,MAAoB;;QACvE,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,KAAK;gBACN,OAAO,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAChE,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,KAAK,KAAK;gBACN,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,GAAG,CAAC,CAAC;YAC5D,KAAK,MAAM;gBACP,OAAO,WAAW,CAAC,MAAM,CACrB,MAAM,EACN,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5C,CAAC;YACN;gBACI,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,SAAS,CAAC,MAAmB,EAAE,MAAoB;QAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,kBAAkB;QAEtD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACrE,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,2BAA2B;QAC3B,gCAAgC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAElE,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,oBAAoB;YACpB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YAE/C,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC;YACvD,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,QAAQ;QACR,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,OAAgC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAC3B,MAAoB,EACpB,MAAoB,EACpB,QAAmB,EACnB,UAAgC,EAChC,aAAqG;QAErG,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6C,CAAC;QAErE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAE1B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAEhE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC,CAAC;YAE5E,sBAAsB;YACtB,MAAM,cAAc,GAAG,MAAM,aAAa,CACtC,CAAC,OAAO,CAAC,EACT,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,CAClB,CAAC;YAEF,uBAAuB;YACvB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACpE,CAAC;YAED,SAAS;YACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAExE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEzC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,sDAAsD;YACtD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProcessingGraph — a directed acyclic graph (DAG) for modeling signal-processing
|
|
3
|
+
* node execution order.
|
|
4
|
+
*
|
|
5
|
+
* Inspired by Ardour's internal graph scheduler (`libs/ardour/graph.cc`).
|
|
6
|
+
* The graph is a standalone utility with no audio-framework dependencies,
|
|
7
|
+
* making it suitable for unit testing and headless use.
|
|
8
|
+
*
|
|
9
|
+
* Key capabilities:
|
|
10
|
+
* - Add / remove nodes and directed edges (from → to means "from depends on to")
|
|
11
|
+
* - Topological sort via Kahn's algorithm — produces a valid execution order
|
|
12
|
+
* - Cycle detection via iterative DFS
|
|
13
|
+
* - Parallel-group extraction — nodes at the same "depth" can run concurrently
|
|
14
|
+
*
|
|
15
|
+
* @module ProcessingGraph
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* A node in the processing graph.
|
|
19
|
+
*
|
|
20
|
+
* `process()` is optional — the graph is purely structural; callers decide
|
|
21
|
+
* whether to invoke processing logic.
|
|
22
|
+
*/
|
|
23
|
+
export interface GraphNode {
|
|
24
|
+
/** Unique identifier for this node. */
|
|
25
|
+
id: string;
|
|
26
|
+
/** Optional processing callback invoked during graph execution. */
|
|
27
|
+
process?(): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* ProcessingGraph models a DAG of {@link GraphNode}s connected by directed
|
|
31
|
+
* dependency edges.
|
|
32
|
+
*
|
|
33
|
+
* An edge `from → to` means "node `from` depends on node `to`" — i.e. `to`
|
|
34
|
+
* must be processed **before** `from`.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* const graph = new ProcessingGraph();
|
|
39
|
+
* graph.addNode({ id: 'input' });
|
|
40
|
+
* graph.addNode({ id: 'eq' });
|
|
41
|
+
* graph.addNode({ id: 'compressor' });
|
|
42
|
+
* graph.addNode({ id: 'output' });
|
|
43
|
+
*
|
|
44
|
+
* graph.addEdge('eq', 'input'); // eq depends on input
|
|
45
|
+
* graph.addEdge('compressor', 'eq'); // compressor depends on eq
|
|
46
|
+
* graph.addEdge('output', 'compressor'); // output depends on compressor
|
|
47
|
+
*
|
|
48
|
+
* const order = graph.topologicalSort(); // [input, eq, compressor, output]
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare class ProcessingGraph {
|
|
52
|
+
/** All registered nodes keyed by id. */
|
|
53
|
+
private nodes;
|
|
54
|
+
/**
|
|
55
|
+
* Adjacency list storing **dependencies** (incoming edges).
|
|
56
|
+
* `edges.get(nodeId)` → set of node ids that `nodeId` depends on.
|
|
57
|
+
*/
|
|
58
|
+
private edges;
|
|
59
|
+
/**
|
|
60
|
+
* Register a node in the graph.
|
|
61
|
+
*
|
|
62
|
+
* If a node with the same `id` already exists it will be replaced,
|
|
63
|
+
* but its edges are preserved.
|
|
64
|
+
*
|
|
65
|
+
* @param node - The graph node to add.
|
|
66
|
+
*/
|
|
67
|
+
addNode(node: GraphNode): void;
|
|
68
|
+
/**
|
|
69
|
+
* Remove a node and all edges that reference it (both incoming and
|
|
70
|
+
* outgoing).
|
|
71
|
+
*
|
|
72
|
+
* @param nodeId - The id of the node to remove.
|
|
73
|
+
*/
|
|
74
|
+
removeNode(nodeId: string): void;
|
|
75
|
+
/**
|
|
76
|
+
* Return the node with the given id, or `undefined` if it does not exist.
|
|
77
|
+
*
|
|
78
|
+
* @param nodeId - The id to look up.
|
|
79
|
+
*/
|
|
80
|
+
getNode(nodeId: string): GraphNode | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* The total number of nodes currently in the graph.
|
|
83
|
+
*/
|
|
84
|
+
get nodeCount(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Add a directed dependency edge: `from` depends on `to`.
|
|
87
|
+
*
|
|
88
|
+
* Both node ids must already exist in the graph; otherwise the call is a
|
|
89
|
+
* no-op.
|
|
90
|
+
*
|
|
91
|
+
* @param from - The node that has the dependency.
|
|
92
|
+
* @param to - The node that must be processed first.
|
|
93
|
+
*/
|
|
94
|
+
addEdge(from: string, to: string): void;
|
|
95
|
+
/**
|
|
96
|
+
* Remove a directed dependency edge.
|
|
97
|
+
*
|
|
98
|
+
* @param from - The dependent node.
|
|
99
|
+
* @param to - The dependency to remove.
|
|
100
|
+
*/
|
|
101
|
+
removeEdge(from: string, to: string): void;
|
|
102
|
+
/**
|
|
103
|
+
* Return the nodes in a valid execution order (dependencies first) using
|
|
104
|
+
* Kahn's algorithm.
|
|
105
|
+
*
|
|
106
|
+
* @throws {Error} If the graph contains a cycle (not all nodes can be
|
|
107
|
+
* sorted).
|
|
108
|
+
* @returns An array of {@link GraphNode} in topological order.
|
|
109
|
+
*/
|
|
110
|
+
topologicalSort(): GraphNode[];
|
|
111
|
+
/**
|
|
112
|
+
* Partition the graph into groups of nodes that can be executed in
|
|
113
|
+
* parallel.
|
|
114
|
+
*
|
|
115
|
+
* Each group contains nodes whose dependencies have all been satisfied by
|
|
116
|
+
* earlier groups. Within a group the nodes are independent and can run
|
|
117
|
+
* concurrently.
|
|
118
|
+
*
|
|
119
|
+
* @throws {Error} If the graph contains a cycle.
|
|
120
|
+
* @returns An array of arrays — each inner array is a parallel group
|
|
121
|
+
* ordered from first-to-execute to last.
|
|
122
|
+
*/
|
|
123
|
+
getParallelGroups(): GraphNode[][];
|
|
124
|
+
/**
|
|
125
|
+
* Detect whether the graph contains any cycles using iterative DFS.
|
|
126
|
+
*
|
|
127
|
+
* @returns `true` if a cycle exists, `false` otherwise.
|
|
128
|
+
*/
|
|
129
|
+
detectCycles(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Return the ids of all nodes that `nodeId` directly depends on
|
|
132
|
+
* (its prerequisites).
|
|
133
|
+
*
|
|
134
|
+
* @param nodeId - The node to query.
|
|
135
|
+
* @returns An array of dependency node ids, or an empty array if the node
|
|
136
|
+
* has no dependencies or does not exist.
|
|
137
|
+
*/
|
|
138
|
+
getDependencies(nodeId: string): string[];
|
|
139
|
+
/**
|
|
140
|
+
* Return the ids of all nodes that directly depend on `nodeId`
|
|
141
|
+
* (its consumers / dependents).
|
|
142
|
+
*
|
|
143
|
+
* @param nodeId - The node to query.
|
|
144
|
+
* @returns An array of dependent node ids.
|
|
145
|
+
*/
|
|
146
|
+
getDependents(nodeId: string): string[];
|
|
147
|
+
/**
|
|
148
|
+
* Remove all nodes and edges from the graph.
|
|
149
|
+
*/
|
|
150
|
+
clear(): void;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=ProcessingGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessingGraph.d.ts","sourceRoot":"","sources":["../../src/audio/ProcessingGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACtB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,OAAO,CAAC,IAAI,IAAI,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAe;IACxB,wCAAwC;IACxC,OAAO,CAAC,KAAK,CAAqC;IAElD;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAuC;IAMpD;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAO9B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAShC;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI9C;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAMD;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAUvC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAW1C;;;;;;;OAOG;IACH,eAAe,IAAI,SAAS,EAAE;IAoE9B;;;;;;;;;;;OAWG;IACH,iBAAiB,IAAI,SAAS,EAAE,EAAE;IA2ElC;;;;OAIG;IACH,YAAY,IAAI,OAAO;IA6DvB;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzC;;;;;;OAMG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAcvC;;OAEG;IACH,KAAK,IAAI,IAAI;CAIhB"}
|