@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,213 @@
|
|
|
1
|
+
import { Signal } from '../lib/Signal';
|
|
2
|
+
/**
|
|
3
|
+
* Grid Type
|
|
4
|
+
* Ardour 참조: gtk2_ardour/editing.h
|
|
5
|
+
*/
|
|
6
|
+
export var GridType;
|
|
7
|
+
(function (GridType) {
|
|
8
|
+
/** 그리드 없음 */
|
|
9
|
+
GridType["NO_GRID"] = "no_grid";
|
|
10
|
+
/** 박자 기반 */
|
|
11
|
+
GridType["BEAT_1_32"] = "1/32";
|
|
12
|
+
GridType["BEAT_1_16"] = "1/16";
|
|
13
|
+
GridType["BEAT_1_8"] = "1/8";
|
|
14
|
+
GridType["BEAT_1_4"] = "1/4";
|
|
15
|
+
GridType["BEAT_1_2"] = "1/2";
|
|
16
|
+
GridType["BEAT_1"] = "1";
|
|
17
|
+
GridType["BEAT_2"] = "2";
|
|
18
|
+
GridType["BEAT_4"] = "4";
|
|
19
|
+
GridType["BEAT_8"] = "8";
|
|
20
|
+
/** 시간 기반 */
|
|
21
|
+
GridType["TIMECODE"] = "timecode";
|
|
22
|
+
GridType["MINSEC"] = "minsec";
|
|
23
|
+
GridType["SAMPLES"] = "samples";
|
|
24
|
+
/** CD 프레임 */
|
|
25
|
+
GridType["CD_FRAMES"] = "cdframes";
|
|
26
|
+
})(GridType || (GridType = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Snap Mode
|
|
29
|
+
* Ardour 참조: gtk2_ardour/editing.h
|
|
30
|
+
*/
|
|
31
|
+
export var SnapMode;
|
|
32
|
+
(function (SnapMode) {
|
|
33
|
+
/** Snap 비활성화 */
|
|
34
|
+
SnapMode["NO_SNAP"] = "no_snap";
|
|
35
|
+
/** Grid에 Snap */
|
|
36
|
+
SnapMode["SNAP_TO_GRID"] = "snap_to_grid";
|
|
37
|
+
/** 자석 효과 (가까우면 snap) */
|
|
38
|
+
SnapMode["SNAP_MAGNETIC"] = "snap_magnetic";
|
|
39
|
+
})(SnapMode || (SnapMode = {}));
|
|
40
|
+
/**
|
|
41
|
+
* Grid Settings
|
|
42
|
+
*
|
|
43
|
+
* Timeline의 grid와 snap 동작을 관리합니다.
|
|
44
|
+
* Ardour 참조: gtk2_ardour/editor.h (snap/grid settings)
|
|
45
|
+
*/
|
|
46
|
+
export class GridSettings {
|
|
47
|
+
constructor(gridType = GridType.BEAT_1_4, snapMode = SnapMode.SNAP_TO_GRID, bpm = 120) {
|
|
48
|
+
this._gridType = GridType.BEAT_1_4;
|
|
49
|
+
this._snapMode = SnapMode.SNAP_TO_GRID;
|
|
50
|
+
this._snapToGrid = true;
|
|
51
|
+
// Tempo 정보 (향후 Tempo Map 연동)
|
|
52
|
+
this._bpm = 120;
|
|
53
|
+
this._timeSignatureNumerator = 4;
|
|
54
|
+
this._timeSignatureDenominator = 4;
|
|
55
|
+
// Signals
|
|
56
|
+
this.changed = new Signal();
|
|
57
|
+
this._gridType = gridType;
|
|
58
|
+
this._snapMode = snapMode;
|
|
59
|
+
this._bpm = bpm;
|
|
60
|
+
}
|
|
61
|
+
// Getters
|
|
62
|
+
get gridType() {
|
|
63
|
+
return this._gridType;
|
|
64
|
+
}
|
|
65
|
+
get snapMode() {
|
|
66
|
+
return this._snapMode;
|
|
67
|
+
}
|
|
68
|
+
get snapToGrid() {
|
|
69
|
+
return this._snapToGrid && this._snapMode !== SnapMode.NO_SNAP;
|
|
70
|
+
}
|
|
71
|
+
get bpm() {
|
|
72
|
+
return this._bpm;
|
|
73
|
+
}
|
|
74
|
+
get timeSignatureNumerator() {
|
|
75
|
+
return this._timeSignatureNumerator;
|
|
76
|
+
}
|
|
77
|
+
get timeSignatureDenominator() {
|
|
78
|
+
return this._timeSignatureDenominator;
|
|
79
|
+
}
|
|
80
|
+
// Setters
|
|
81
|
+
setGridType(gridType) {
|
|
82
|
+
if (this._gridType !== gridType) {
|
|
83
|
+
this._gridType = gridType;
|
|
84
|
+
this.changed.emit();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
setSnapMode(snapMode) {
|
|
88
|
+
if (this._snapMode !== snapMode) {
|
|
89
|
+
this._snapMode = snapMode;
|
|
90
|
+
this.changed.emit();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
setSnapToGrid(enabled) {
|
|
94
|
+
if (this._snapToGrid !== enabled) {
|
|
95
|
+
this._snapToGrid = enabled;
|
|
96
|
+
this.changed.emit();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
setBPM(bpm) {
|
|
100
|
+
if (bpm > 0 && bpm <= 300) {
|
|
101
|
+
this._bpm = bpm;
|
|
102
|
+
this.changed.emit();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
setTimeSignature(numerator, denominator) {
|
|
106
|
+
this._timeSignatureNumerator = numerator;
|
|
107
|
+
this._timeSignatureDenominator = denominator;
|
|
108
|
+
this.changed.emit();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Grid 간격을 frames로 계산
|
|
112
|
+
*
|
|
113
|
+
* @param sampleRate 샘플 레이트
|
|
114
|
+
* @returns Grid 간격 (frames)
|
|
115
|
+
*/
|
|
116
|
+
getGridIntervalFrames(sampleRate) {
|
|
117
|
+
if (this._gridType === GridType.NO_GRID) {
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
// BPM 기반 계산
|
|
121
|
+
const secondsPerBeat = 60 / this._bpm;
|
|
122
|
+
const framesPerBeat = secondsPerBeat * sampleRate;
|
|
123
|
+
switch (this._gridType) {
|
|
124
|
+
case GridType.BEAT_1_32:
|
|
125
|
+
return Math.floor(framesPerBeat / 8); // 1/32 = 1/4 / 8
|
|
126
|
+
case GridType.BEAT_1_16:
|
|
127
|
+
return Math.floor(framesPerBeat / 4); // 1/16 = 1/4 / 4
|
|
128
|
+
case GridType.BEAT_1_8:
|
|
129
|
+
return Math.floor(framesPerBeat / 2); // 1/8 = 1/4 / 2
|
|
130
|
+
case GridType.BEAT_1_4:
|
|
131
|
+
return Math.floor(framesPerBeat);
|
|
132
|
+
case GridType.BEAT_1_2:
|
|
133
|
+
return Math.floor(framesPerBeat * 2);
|
|
134
|
+
case GridType.BEAT_1:
|
|
135
|
+
return Math.floor(framesPerBeat * 4); // 1 bar = 4 beats
|
|
136
|
+
case GridType.BEAT_2:
|
|
137
|
+
return Math.floor(framesPerBeat * 8);
|
|
138
|
+
case GridType.BEAT_4:
|
|
139
|
+
return Math.floor(framesPerBeat * 16);
|
|
140
|
+
case GridType.BEAT_8:
|
|
141
|
+
return Math.floor(framesPerBeat * 32);
|
|
142
|
+
case GridType.SAMPLES:
|
|
143
|
+
return 1024; // 1024 samples
|
|
144
|
+
case GridType.CD_FRAMES:
|
|
145
|
+
return Math.floor(sampleRate / 75); // CD: 75 frames/sec
|
|
146
|
+
case GridType.TIMECODE:
|
|
147
|
+
case GridType.MINSEC:
|
|
148
|
+
return Math.floor(sampleRate); // 1 second
|
|
149
|
+
default:
|
|
150
|
+
return Math.floor(framesPerBeat);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Frame을 가장 가까운 grid에 snap
|
|
155
|
+
*
|
|
156
|
+
* @param frame 원본 frame
|
|
157
|
+
* @param sampleRate 샘플 레이트
|
|
158
|
+
* @returns Snapped frame
|
|
159
|
+
*/
|
|
160
|
+
snapToGridFrame(frame, sampleRate) {
|
|
161
|
+
if (!this.snapToGrid || this._gridType === GridType.NO_GRID) {
|
|
162
|
+
return frame;
|
|
163
|
+
}
|
|
164
|
+
const gridInterval = this.getGridIntervalFrames(sampleRate);
|
|
165
|
+
if (gridInterval === 0) {
|
|
166
|
+
return frame;
|
|
167
|
+
}
|
|
168
|
+
// 가장 가까운 grid로 반올림
|
|
169
|
+
const gridIndex = Math.round(frame / gridInterval);
|
|
170
|
+
return gridIndex * gridInterval;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Frame을 grid에 내림 (floor)
|
|
174
|
+
*/
|
|
175
|
+
snapToGridFloor(frame, sampleRate) {
|
|
176
|
+
if (!this.snapToGrid || this._gridType === GridType.NO_GRID) {
|
|
177
|
+
return frame;
|
|
178
|
+
}
|
|
179
|
+
const gridInterval = this.getGridIntervalFrames(sampleRate);
|
|
180
|
+
if (gridInterval === 0) {
|
|
181
|
+
return frame;
|
|
182
|
+
}
|
|
183
|
+
const gridIndex = Math.floor(frame / gridInterval);
|
|
184
|
+
return gridIndex * gridInterval;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Frame을 grid에 올림 (ceil)
|
|
188
|
+
*/
|
|
189
|
+
snapToGridCeil(frame, sampleRate) {
|
|
190
|
+
if (!this.snapToGrid || this._gridType === GridType.NO_GRID) {
|
|
191
|
+
return frame;
|
|
192
|
+
}
|
|
193
|
+
const gridInterval = this.getGridIntervalFrames(sampleRate);
|
|
194
|
+
if (gridInterval === 0) {
|
|
195
|
+
return frame;
|
|
196
|
+
}
|
|
197
|
+
const gridIndex = Math.ceil(frame / gridInterval);
|
|
198
|
+
return gridIndex * gridInterval;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* DTO 변환
|
|
202
|
+
*/
|
|
203
|
+
toDTO() {
|
|
204
|
+
return {
|
|
205
|
+
gridType: this._gridType,
|
|
206
|
+
snapMode: this._snapMode,
|
|
207
|
+
snapToGrid: this._snapToGrid,
|
|
208
|
+
bpm: this._bpm,
|
|
209
|
+
timeSignature: `${this._timeSignatureNumerator}/${this._timeSignatureDenominator}`
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=GridSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridSettings.js","sourceRoot":"","sources":["../../src/domain/GridSettings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Signal } from '../lib/Signal';
|
|
2
|
+
import { FrameCount } from './types';
|
|
3
|
+
export type MarkerId = string;
|
|
4
|
+
/**
|
|
5
|
+
* Song Position Marker
|
|
6
|
+
* Ardour 참조: libs/ardour/location.cc (Location class, IsFlag type)
|
|
7
|
+
*
|
|
8
|
+
* 타임라인상의 특정 위치를 표시하는 마커입니다.
|
|
9
|
+
* Verse, Chorus, Bridge 등 구간 표시나 북마크 용도로 사용됩니다.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Marker {
|
|
12
|
+
readonly id: MarkerId;
|
|
13
|
+
private _name;
|
|
14
|
+
private _position;
|
|
15
|
+
private _color;
|
|
16
|
+
private _locked;
|
|
17
|
+
readonly changed: Signal<void>;
|
|
18
|
+
readonly removed: Signal<void>;
|
|
19
|
+
constructor(id: MarkerId, name: string, position: FrameCount, color?: string, locked?: boolean);
|
|
20
|
+
get name(): string;
|
|
21
|
+
set name(value: string);
|
|
22
|
+
get position(): FrameCount;
|
|
23
|
+
set position(value: FrameCount);
|
|
24
|
+
get color(): string;
|
|
25
|
+
set color(value: string);
|
|
26
|
+
get locked(): boolean;
|
|
27
|
+
set locked(value: boolean);
|
|
28
|
+
move(newPosition: FrameCount): void;
|
|
29
|
+
clone(newId?: MarkerId): Marker;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Marker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/domain/Marker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;;;;;GAMG;AACH,qBAAa,MAAM;IACf,SAAgB,EAAE,EAAE,QAAQ,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IAEzB,SAAgB,OAAO,eAAsB;IAC7C,SAAgB,OAAO,eAAsB;gBAGzC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,UAAU,EACpB,KAAK,GAAE,MAAkB,EACzB,MAAM,GAAE,OAAe;IAS3B,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED,IAAW,QAAQ,IAAI,UAAU,CAA2B;IAC5D,IAAW,QAAQ,CAAC,KAAK,EAAE,UAAU,EAMpC;IAED,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,MAAM,IAAI,OAAO,CAAyB;IACrD,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAK/B;IAEM,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;IAInC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM;CASzC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Signal } from '../lib/Signal';
|
|
2
|
+
/**
|
|
3
|
+
* Song Position Marker
|
|
4
|
+
* Ardour 참조: libs/ardour/location.cc (Location class, IsFlag type)
|
|
5
|
+
*
|
|
6
|
+
* 타임라인상의 특정 위치를 표시하는 마커입니다.
|
|
7
|
+
* Verse, Chorus, Bridge 등 구간 표시나 북마크 용도로 사용됩니다.
|
|
8
|
+
*/
|
|
9
|
+
export class Marker {
|
|
10
|
+
constructor(id, name, position, color = '#ffcc00', locked = false) {
|
|
11
|
+
this.changed = new Signal();
|
|
12
|
+
this.removed = new Signal();
|
|
13
|
+
this.id = id;
|
|
14
|
+
this._name = name;
|
|
15
|
+
this._position = position;
|
|
16
|
+
this._color = color;
|
|
17
|
+
this._locked = locked;
|
|
18
|
+
}
|
|
19
|
+
get name() { return this._name; }
|
|
20
|
+
set name(value) {
|
|
21
|
+
if (this._name !== value) {
|
|
22
|
+
this._name = value;
|
|
23
|
+
this.changed.emit();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get position() { return this._position; }
|
|
27
|
+
set position(value) {
|
|
28
|
+
if (this._locked)
|
|
29
|
+
return;
|
|
30
|
+
if (this._position !== value) {
|
|
31
|
+
this._position = Math.max(0, value);
|
|
32
|
+
this.changed.emit();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
get color() { return this._color; }
|
|
36
|
+
set color(value) {
|
|
37
|
+
if (this._color !== value) {
|
|
38
|
+
this._color = value;
|
|
39
|
+
this.changed.emit();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
get locked() { return this._locked; }
|
|
43
|
+
set locked(value) {
|
|
44
|
+
if (this._locked !== value) {
|
|
45
|
+
this._locked = value;
|
|
46
|
+
this.changed.emit();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
move(newPosition) {
|
|
50
|
+
this.position = newPosition;
|
|
51
|
+
}
|
|
52
|
+
clone(newId) {
|
|
53
|
+
return new Marker(newId || crypto.randomUUID(), this._name, this._position, this._color, this._locked);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=Marker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marker.js","sourceRoot":"","sources":["../../src/domain/Marker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC;;;;;;GAMG;AACH,MAAM,OAAO,MAAM;IAUf,YACI,EAAY,EACZ,IAAY,EACZ,QAAoB,EACpB,QAAgB,SAAS,EACzB,SAAkB,KAAK;QARX,YAAO,GAAG,IAAI,MAAM,EAAQ,CAAC;QAC7B,YAAO,GAAG,IAAI,MAAM,EAAQ,CAAC;QASzC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,IAAW,IAAI,CAAC,KAAa;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAW,QAAQ,KAAiB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,IAAW,QAAQ,CAAC,KAAiB;QACjC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,IAAW,KAAK,CAAC,KAAa;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAW,MAAM,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,IAAW,MAAM,CAAC,KAAc;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,WAAuB;QAC/B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,KAAgB;QACzB,OAAO,IAAI,MAAM,CACb,KAAK,IAAI,MAAM,CAAC,UAAU,EAAc,EACxC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CACf,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metering data for a single channel or bus.
|
|
3
|
+
* All levels are in dBFS (decibels relative to full scale).
|
|
4
|
+
*
|
|
5
|
+
* Ardour reference: libs/ardour/meter.cc
|
|
6
|
+
*/
|
|
7
|
+
export interface MeterData {
|
|
8
|
+
/** Peak level in dBFS */
|
|
9
|
+
peak: number;
|
|
10
|
+
/** RMS level in dBFS */
|
|
11
|
+
rms: number;
|
|
12
|
+
/** Peak hold value (decays slowly over time) */
|
|
13
|
+
peakHold: number;
|
|
14
|
+
/** True if signal clips (peak >= 0 dBFS) */
|
|
15
|
+
clipping: boolean;
|
|
16
|
+
/** Short-term LUFS (ITU-R BS.1770) */
|
|
17
|
+
lufs?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Stereo metering data with separate left and right channels.
|
|
21
|
+
*/
|
|
22
|
+
export interface StereoMeterData {
|
|
23
|
+
left: MeterData;
|
|
24
|
+
right: MeterData;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=MeterData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeterData.d.ts","sourceRoot":"","sources":["../../src/domain/MeterData.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACtB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeterData.js","sourceRoot":"","sources":["../../src/domain/MeterData.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meter Type
|
|
3
|
+
* Ardour 참조: libs/ardour/ardour/types.h (MeterType)
|
|
4
|
+
*/
|
|
5
|
+
export declare enum MeterType {
|
|
6
|
+
PEAK = "peak",
|
|
7
|
+
RMS = "rms",
|
|
8
|
+
K14 = "k14",
|
|
9
|
+
K20 = "k20",
|
|
10
|
+
VU = "vu"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Meter Point - where in the signal chain metering occurs
|
|
14
|
+
* Ardour 참조: libs/ardour/ardour/types.h (MeterPoint)
|
|
15
|
+
*/
|
|
16
|
+
export declare enum MeterPoint {
|
|
17
|
+
INPUT = "input",
|
|
18
|
+
PRE_FADER = "pre_fader",
|
|
19
|
+
POST_FADER = "post_fader",
|
|
20
|
+
OUTPUT = "output"
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MeterType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeterType.d.ts","sourceRoot":"","sources":["../../src/domain/MeterType.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,SAAS;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;CACZ;AAED;;;GAGG;AACH,oBAAY,UAAU;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,MAAM,WAAW;CACpB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meter Type
|
|
3
|
+
* Ardour 참조: libs/ardour/ardour/types.h (MeterType)
|
|
4
|
+
*/
|
|
5
|
+
export var MeterType;
|
|
6
|
+
(function (MeterType) {
|
|
7
|
+
MeterType["PEAK"] = "peak";
|
|
8
|
+
MeterType["RMS"] = "rms";
|
|
9
|
+
MeterType["K14"] = "k14";
|
|
10
|
+
MeterType["K20"] = "k20";
|
|
11
|
+
MeterType["VU"] = "vu";
|
|
12
|
+
})(MeterType || (MeterType = {}));
|
|
13
|
+
/**
|
|
14
|
+
* Meter Point - where in the signal chain metering occurs
|
|
15
|
+
* Ardour 참조: libs/ardour/ardour/types.h (MeterPoint)
|
|
16
|
+
*/
|
|
17
|
+
export var MeterPoint;
|
|
18
|
+
(function (MeterPoint) {
|
|
19
|
+
MeterPoint["INPUT"] = "input";
|
|
20
|
+
MeterPoint["PRE_FADER"] = "pre_fader";
|
|
21
|
+
MeterPoint["POST_FADER"] = "post_fader";
|
|
22
|
+
MeterPoint["OUTPUT"] = "output";
|
|
23
|
+
})(MeterPoint || (MeterPoint = {}));
|
|
24
|
+
//# sourceMappingURL=MeterType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeterType.js","sourceRoot":"","sources":["../../src/domain/MeterType.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,sBAAS,CAAA;AACb,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,uCAAyB,CAAA;IACzB,+BAAiB,CAAA;AACrB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { MidiNote, MidiNoteId, MidiNoteSnapshot } from './MidiNote';
|
|
2
|
+
import { FrameCount } from './types';
|
|
3
|
+
import { Signal } from '../lib/Signal';
|
|
4
|
+
/**
|
|
5
|
+
* MidiClip - Container that holds MIDI note data.
|
|
6
|
+
* Analogous to an audio Source but for MIDI data.
|
|
7
|
+
* Provides batch operations like quantize, transpose, and velocity editing.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MidiClip {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
private _notes;
|
|
13
|
+
readonly changed: Signal<void>;
|
|
14
|
+
constructor(id: string, name: string, notes?: MidiNote[]);
|
|
15
|
+
get notes(): ReadonlyArray<MidiNote>;
|
|
16
|
+
addNote(note: MidiNote): void;
|
|
17
|
+
removeNote(noteId: MidiNoteId): MidiNote | undefined;
|
|
18
|
+
getNote(noteId: MidiNoteId): MidiNote | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Quantize all note start positions to the given subdivision.
|
|
21
|
+
* @param subdivisionFrames - Grid size in frames (e.g., frames per quarter note)
|
|
22
|
+
*/
|
|
23
|
+
quantize(subdivisionFrames: FrameCount): void;
|
|
24
|
+
/**
|
|
25
|
+
* Transpose all notes by the given number of semitones.
|
|
26
|
+
* @param semitones - Number of semitones to shift (positive = up, negative = down)
|
|
27
|
+
*/
|
|
28
|
+
transpose(semitones: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* Set velocity of all notes.
|
|
31
|
+
* @param velocity - MIDI velocity (0-127)
|
|
32
|
+
*/
|
|
33
|
+
setVelocityAll(velocity: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Scale all velocities by a factor.
|
|
36
|
+
* @param factor - Multiplier (1.0 = no change)
|
|
37
|
+
*/
|
|
38
|
+
scaleVelocity(factor: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get total duration of the clip in frames.
|
|
41
|
+
*/
|
|
42
|
+
getDuration(): FrameCount;
|
|
43
|
+
/**
|
|
44
|
+
* Get notes in a given frame range.
|
|
45
|
+
*/
|
|
46
|
+
getNotesInRange(startFrame: FrameCount, endFrame: FrameCount): MidiNote[];
|
|
47
|
+
private sortNotes;
|
|
48
|
+
toJSON(): MidiClipSnapshot;
|
|
49
|
+
static fromJSON(data: MidiClipSnapshot): MidiClip;
|
|
50
|
+
}
|
|
51
|
+
export interface MidiClipSnapshot {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
notes: MidiNoteSnapshot[];
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=MidiClip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidiClip.d.ts","sourceRoot":"","sources":["../../src/domain/MidiClip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,QAAQ;IACjB,SAAgB,EAAE,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,MAAM,CAAkB;IAGhC,SAAgB,OAAO,eAAsB;gBAEjC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE;IASxD,IAAW,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,CAE1C;IAEM,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAM7B,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS;IAQpD,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS;IAIxD;;;OAGG;IACI,QAAQ,CAAC,iBAAiB,EAAE,UAAU,GAAG,IAAI;IAYpD;;;OAGG;IACI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUzC;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU7C;;;OAGG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1C;;OAEG;IACI,WAAW,IAAI,UAAU;IAShC;;OAEG;IACI,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,EAAE;IAMhF,OAAO,CAAC,SAAS;IAIV,MAAM,IAAI,gBAAgB;WAQnB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,QAAQ;CAI3D;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC7B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { MidiNote } from './MidiNote';
|
|
2
|
+
import { Signal } from '../lib/Signal';
|
|
3
|
+
/**
|
|
4
|
+
* MidiClip - Container that holds MIDI note data.
|
|
5
|
+
* Analogous to an audio Source but for MIDI data.
|
|
6
|
+
* Provides batch operations like quantize, transpose, and velocity editing.
|
|
7
|
+
*/
|
|
8
|
+
export class MidiClip {
|
|
9
|
+
constructor(id, name, notes) {
|
|
10
|
+
this._notes = [];
|
|
11
|
+
// Signals
|
|
12
|
+
this.changed = new Signal();
|
|
13
|
+
this.id = id;
|
|
14
|
+
this.name = name;
|
|
15
|
+
if (notes) {
|
|
16
|
+
this._notes = [...notes];
|
|
17
|
+
this.sortNotes();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
get notes() {
|
|
21
|
+
return this._notes;
|
|
22
|
+
}
|
|
23
|
+
addNote(note) {
|
|
24
|
+
this._notes.push(note);
|
|
25
|
+
this.sortNotes();
|
|
26
|
+
this.changed.emit();
|
|
27
|
+
}
|
|
28
|
+
removeNote(noteId) {
|
|
29
|
+
const index = this._notes.findIndex(n => n.id === noteId);
|
|
30
|
+
if (index === -1)
|
|
31
|
+
return undefined;
|
|
32
|
+
const removed = this._notes.splice(index, 1)[0];
|
|
33
|
+
this.changed.emit();
|
|
34
|
+
return removed;
|
|
35
|
+
}
|
|
36
|
+
getNote(noteId) {
|
|
37
|
+
return this._notes.find(n => n.id === noteId);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Quantize all note start positions to the given subdivision.
|
|
41
|
+
* @param subdivisionFrames - Grid size in frames (e.g., frames per quarter note)
|
|
42
|
+
*/
|
|
43
|
+
quantize(subdivisionFrames) {
|
|
44
|
+
if (subdivisionFrames <= 0)
|
|
45
|
+
return;
|
|
46
|
+
for (const note of this._notes) {
|
|
47
|
+
const quantized = Math.round(note.startFrame / subdivisionFrames) * subdivisionFrames;
|
|
48
|
+
note.startFrame = quantized;
|
|
49
|
+
}
|
|
50
|
+
this.sortNotes();
|
|
51
|
+
this.changed.emit();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Transpose all notes by the given number of semitones.
|
|
55
|
+
* @param semitones - Number of semitones to shift (positive = up, negative = down)
|
|
56
|
+
*/
|
|
57
|
+
transpose(semitones) {
|
|
58
|
+
if (semitones === 0)
|
|
59
|
+
return;
|
|
60
|
+
for (const note of this._notes) {
|
|
61
|
+
note.transpose(semitones);
|
|
62
|
+
}
|
|
63
|
+
this.changed.emit();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Set velocity of all notes.
|
|
67
|
+
* @param velocity - MIDI velocity (0-127)
|
|
68
|
+
*/
|
|
69
|
+
setVelocityAll(velocity) {
|
|
70
|
+
const clamped = Math.max(0, Math.min(127, Math.round(velocity)));
|
|
71
|
+
for (const note of this._notes) {
|
|
72
|
+
note.velocity = clamped;
|
|
73
|
+
}
|
|
74
|
+
this.changed.emit();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Scale all velocities by a factor.
|
|
78
|
+
* @param factor - Multiplier (1.0 = no change)
|
|
79
|
+
*/
|
|
80
|
+
scaleVelocity(factor) {
|
|
81
|
+
for (const note of this._notes) {
|
|
82
|
+
note.velocity = Math.max(0, Math.min(127, Math.round(note.velocity * factor)));
|
|
83
|
+
}
|
|
84
|
+
this.changed.emit();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get total duration of the clip in frames.
|
|
88
|
+
*/
|
|
89
|
+
getDuration() {
|
|
90
|
+
if (this._notes.length === 0)
|
|
91
|
+
return 0;
|
|
92
|
+
let maxEnd = 0;
|
|
93
|
+
for (const note of this._notes) {
|
|
94
|
+
maxEnd = Math.max(maxEnd, note.endFrame);
|
|
95
|
+
}
|
|
96
|
+
return maxEnd;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get notes in a given frame range.
|
|
100
|
+
*/
|
|
101
|
+
getNotesInRange(startFrame, endFrame) {
|
|
102
|
+
return this._notes.filter(n => n.endFrame > startFrame && n.startFrame < endFrame);
|
|
103
|
+
}
|
|
104
|
+
sortNotes() {
|
|
105
|
+
this._notes.sort((a, b) => a.startFrame - b.startFrame);
|
|
106
|
+
}
|
|
107
|
+
toJSON() {
|
|
108
|
+
return {
|
|
109
|
+
id: this.id,
|
|
110
|
+
name: this.name,
|
|
111
|
+
notes: this._notes.map(n => n.toJSON()),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
static fromJSON(data) {
|
|
115
|
+
const notes = data.notes.map(n => MidiNote.fromJSON(n));
|
|
116
|
+
return new MidiClip(data.id, data.name, notes);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=MidiClip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidiClip.js","sourceRoot":"","sources":["../../src/domain/MidiClip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Signal } from '../lib/Signal';
|
|
2
|
+
import { FrameCount } from './types';
|
|
3
|
+
export type MidiNoteId = string;
|
|
4
|
+
export declare class MidiNote {
|
|
5
|
+
readonly id: MidiNoteId;
|
|
6
|
+
pitch: number;
|
|
7
|
+
velocity: number;
|
|
8
|
+
startFrame: FrameCount;
|
|
9
|
+
durationFrames: FrameCount;
|
|
10
|
+
channel: number;
|
|
11
|
+
readonly changed: Signal<MidiNote>;
|
|
12
|
+
constructor(id: MidiNoteId, pitch: number, velocity: number, startFrame: FrameCount, durationFrames: FrameCount, channel?: number);
|
|
13
|
+
get endFrame(): FrameCount;
|
|
14
|
+
setPitch(pitch: number): void;
|
|
15
|
+
setVelocity(velocity: number): void;
|
|
16
|
+
move(newStartFrame: FrameCount): void;
|
|
17
|
+
resize(newDuration: FrameCount): void;
|
|
18
|
+
transpose(semitones: number): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get MIDI note name (e.g., "C4", "A#3")
|
|
21
|
+
*/
|
|
22
|
+
getNoteName(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Convert pitch to frequency in Hz
|
|
25
|
+
*/
|
|
26
|
+
getFrequency(): number;
|
|
27
|
+
toJSON(): MidiNoteSnapshot;
|
|
28
|
+
static fromJSON(data: MidiNoteSnapshot): MidiNote;
|
|
29
|
+
}
|
|
30
|
+
export interface MidiNoteSnapshot {
|
|
31
|
+
id: string;
|
|
32
|
+
pitch: number;
|
|
33
|
+
velocity: number;
|
|
34
|
+
startFrame: number;
|
|
35
|
+
durationFrames: number;
|
|
36
|
+
channel: number;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=MidiNote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidiNote.d.ts","sourceRoot":"","sources":["../../src/domain/MidiNote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,qBAAa,QAAQ;IACjB,SAAgB,EAAE,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,UAAU,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAGvB,SAAgB,OAAO,mBAA0B;gBAG7C,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,UAAU,EAC1B,OAAO,GAAE,MAAU;IAUvB,IAAW,QAAQ,IAAI,UAAU,CAEhC;IAEM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ7B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQnC,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI;IAQrC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;IAQrC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQzC;;OAEG;IACI,WAAW,IAAI,MAAM;IAO5B;;OAEG;IACI,YAAY,IAAI,MAAM;IAItB,MAAM,IAAI,gBAAgB;WAWnB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,QAAQ;CAU3D;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB"}
|