@drop-ai/core 0.2.0 → 0.3.1
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 -21
- package/README.md +734 -316
- package/dist/actions/ActionRegistry.d.ts.map +1 -1
- package/dist/actions/ActionRegistry.js +7 -2
- package/dist/actions/ActionRegistry.js.map +1 -1
- package/dist/actions/types.d.ts +7 -1
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/analysis/AudioAnalyzer.d.ts +69 -0
- package/dist/analysis/AudioAnalyzer.d.ts.map +1 -0
- package/dist/analysis/AudioAnalyzer.js +567 -0
- package/dist/analysis/AudioAnalyzer.js.map +1 -0
- package/dist/audio/AudioEngine.d.ts +14 -1
- package/dist/audio/AudioEngine.d.ts.map +1 -1
- package/dist/audio/AudioEngine.js +115 -35
- package/dist/audio/AudioEngine.js.map +1 -1
- package/dist/audio/Auditioner.d.ts +102 -0
- package/dist/audio/Auditioner.d.ts.map +1 -0
- package/dist/audio/Auditioner.js +237 -0
- package/dist/audio/Auditioner.js.map +1 -0
- package/dist/audio/BWFMetadata.d.ts +114 -0
- package/dist/audio/BWFMetadata.d.ts.map +1 -0
- package/dist/audio/BWFMetadata.js +392 -0
- package/dist/audio/BWFMetadata.js.map +1 -0
- package/dist/audio/BufferPool.d.ts +0 -3
- package/dist/audio/BufferPool.d.ts.map +1 -1
- package/dist/audio/BufferPool.js +0 -3
- package/dist/audio/BufferPool.js.map +1 -1
- package/dist/audio/ChannelSplitter.d.ts +36 -0
- package/dist/audio/ChannelSplitter.d.ts.map +1 -0
- package/dist/audio/ChannelSplitter.js +81 -0
- package/dist/audio/ChannelSplitter.js.map +1 -0
- package/dist/audio/ExportAnalyzer.d.ts +38 -0
- package/dist/audio/ExportAnalyzer.d.ts.map +1 -0
- package/dist/audio/ExportAnalyzer.js +75 -0
- package/dist/audio/ExportAnalyzer.js.map +1 -0
- package/dist/audio/LufsNormalizer.d.ts +36 -0
- package/dist/audio/LufsNormalizer.d.ts.map +1 -0
- package/dist/audio/LufsNormalizer.js +216 -0
- package/dist/audio/LufsNormalizer.js.map +1 -0
- package/dist/audio/MeterUtils.d.ts +0 -2
- package/dist/audio/MeterUtils.d.ts.map +1 -1
- package/dist/audio/MeterUtils.js +0 -2
- package/dist/audio/MeterUtils.js.map +1 -1
- package/dist/audio/OfflineExporter.d.ts +1 -7
- package/dist/audio/OfflineExporter.d.ts.map +1 -1
- package/dist/audio/OfflineExporter.js +31 -11
- package/dist/audio/OfflineExporter.js.map +1 -1
- package/dist/audio/ProcessingGraph.d.ts +0 -1
- package/dist/audio/ProcessingGraph.d.ts.map +1 -1
- package/dist/audio/ProcessingGraph.js +0 -1
- package/dist/audio/ProcessingGraph.js.map +1 -1
- package/dist/audio/RoutingGraph.d.ts +134 -0
- package/dist/audio/RoutingGraph.d.ts.map +1 -0
- package/dist/audio/RoutingGraph.js +547 -0
- package/dist/audio/RoutingGraph.js.map +1 -0
- package/dist/audio/SampleRateConverter.d.ts +20 -0
- package/dist/audio/SampleRateConverter.d.ts.map +1 -0
- package/dist/audio/SampleRateConverter.js +83 -0
- package/dist/audio/SampleRateConverter.js.map +1 -0
- package/dist/audio/SilencePadding.d.ts +27 -0
- package/dist/audio/SilencePadding.d.ts.map +1 -0
- package/dist/audio/SilencePadding.js +84 -0
- package/dist/audio/SilencePadding.js.map +1 -0
- package/dist/audio/SourceCache.d.ts +13 -19
- package/dist/audio/SourceCache.d.ts.map +1 -1
- package/dist/audio/SourceCache.js +21 -36
- package/dist/audio/SourceCache.js.map +1 -1
- package/dist/audio/engine/Declick.d.ts +97 -0
- package/dist/audio/engine/Declick.d.ts.map +1 -0
- package/dist/audio/engine/Declick.js +203 -0
- package/dist/audio/engine/Declick.js.map +1 -0
- package/dist/audio/engine/DiskIO.d.ts +170 -0
- package/dist/audio/engine/DiskIO.d.ts.map +1 -0
- package/dist/audio/engine/DiskIO.js +382 -0
- package/dist/audio/engine/DiskIO.js.map +1 -0
- package/dist/audio/engine/LatencyCompensator.d.ts +46 -0
- package/dist/audio/engine/LatencyCompensator.d.ts.map +1 -0
- package/dist/audio/engine/LatencyCompensator.js +84 -0
- package/dist/audio/engine/LatencyCompensator.js.map +1 -0
- package/dist/audio/engine/MultiTrackRecorder.d.ts +144 -0
- package/dist/audio/engine/MultiTrackRecorder.d.ts.map +1 -0
- package/dist/audio/engine/MultiTrackRecorder.js +359 -0
- package/dist/audio/engine/MultiTrackRecorder.js.map +1 -0
- package/dist/audio/engine/PlaylistEngine.d.ts +1 -1
- package/dist/audio/engine/PlaylistEngine.d.ts.map +1 -1
- package/dist/audio/engine/PlaylistEngine.js +10 -3
- package/dist/audio/engine/PlaylistEngine.js.map +1 -1
- package/dist/audio/engine/PunchRecordManager.d.ts +111 -0
- package/dist/audio/engine/PunchRecordManager.d.ts.map +1 -0
- package/dist/audio/engine/PunchRecordManager.js +191 -0
- package/dist/audio/engine/PunchRecordManager.js.map +1 -0
- package/dist/audio/engine/RoutingGraph.d.ts +133 -0
- package/dist/audio/engine/RoutingGraph.d.ts.map +1 -0
- package/dist/audio/engine/RoutingGraph.js +436 -0
- package/dist/audio/engine/RoutingGraph.js.map +1 -0
- package/dist/audio/engine/SidechainRouter.d.ts +137 -0
- package/dist/audio/engine/SidechainRouter.d.ts.map +1 -0
- package/dist/audio/engine/SidechainRouter.js +290 -0
- package/dist/audio/engine/SidechainRouter.js.map +1 -0
- package/dist/audio/engine/XrunTracker.d.ts +71 -0
- package/dist/audio/engine/XrunTracker.d.ts.map +1 -0
- package/dist/audio/engine/XrunTracker.js +118 -0
- package/dist/audio/engine/XrunTracker.js.map +1 -0
- package/dist/audio/export/CDMarkerExporter.d.ts +60 -0
- package/dist/audio/export/CDMarkerExporter.d.ts.map +1 -0
- package/dist/audio/export/CDMarkerExporter.js +162 -0
- package/dist/audio/export/CDMarkerExporter.js.map +1 -0
- package/dist/audio/export/ExportGraphBuilder.d.ts +119 -0
- package/dist/audio/export/ExportGraphBuilder.d.ts.map +1 -0
- package/dist/audio/export/ExportGraphBuilder.js +520 -0
- package/dist/audio/export/ExportGraphBuilder.js.map +1 -0
- package/dist/audio/export/ExportPresetManager.d.ts +85 -0
- package/dist/audio/export/ExportPresetManager.d.ts.map +1 -0
- package/dist/audio/export/ExportPresetManager.js +304 -0
- package/dist/audio/export/ExportPresetManager.js.map +1 -0
- package/dist/automation/AutomationList.d.ts +0 -1
- package/dist/automation/AutomationList.d.ts.map +1 -1
- package/dist/automation/AutomationList.js +0 -1
- package/dist/automation/AutomationList.js.map +1 -1
- package/dist/automation/AutomationMode.d.ts +0 -1
- package/dist/automation/AutomationMode.d.ts.map +1 -1
- package/dist/automation/AutomationMode.js +0 -1
- package/dist/automation/AutomationMode.js.map +1 -1
- package/dist/commands/CommandHistory.d.ts +1 -4
- package/dist/commands/CommandHistory.d.ts.map +1 -1
- package/dist/commands/CommandHistory.js +6 -9
- package/dist/commands/CommandHistory.js.map +1 -1
- package/dist/commands/CommandRegistry.d.ts +1 -2
- package/dist/commands/CommandRegistry.d.ts.map +1 -1
- package/dist/commands/CommandRegistry.js +1 -2
- package/dist/commands/CommandRegistry.js.map +1 -1
- package/dist/commands/UndoTransaction.d.ts +0 -2
- package/dist/commands/UndoTransaction.d.ts.map +1 -1
- package/dist/commands/UndoTransaction.js +1 -3
- package/dist/commands/UndoTransaction.js.map +1 -1
- package/dist/commands/handlers/HistoryHandler.d.ts +5 -5
- package/dist/commands/handlers/HistoryHandler.js +10 -10
- package/dist/commands/handlers/HistoryHandler.js.map +1 -1
- package/dist/commands/handlers/MarkerHandler.d.ts +0 -1
- package/dist/commands/handlers/MarkerHandler.d.ts.map +1 -1
- package/dist/commands/handlers/MarkerHandler.js +0 -1
- package/dist/commands/handlers/MarkerHandler.js.map +1 -1
- package/dist/commands/handlers/RegionHandler.d.ts.map +1 -1
- package/dist/commands/handlers/RegionHandler.js +25 -1
- package/dist/commands/handlers/RegionHandler.js.map +1 -1
- package/dist/commands/handlers/TrackHandler.js +1 -1
- package/dist/commands/handlers/TrackHandler.js.map +1 -1
- package/dist/commands/impl/CopyRegionCommand.d.ts +0 -1
- package/dist/commands/impl/CopyRegionCommand.d.ts.map +1 -1
- package/dist/commands/impl/CopyRegionCommand.js +0 -1
- package/dist/commands/impl/CopyRegionCommand.js.map +1 -1
- package/dist/commands/impl/DuplicateRegionCommand.d.ts +0 -1
- package/dist/commands/impl/DuplicateRegionCommand.d.ts.map +1 -1
- package/dist/commands/impl/DuplicateRegionCommand.js +0 -1
- package/dist/commands/impl/DuplicateRegionCommand.js.map +1 -1
- package/dist/commands/impl/ExportCommand.d.ts +0 -1
- package/dist/commands/impl/ExportCommand.d.ts.map +1 -1
- package/dist/commands/impl/ExportCommand.js +0 -1
- package/dist/commands/impl/ExportCommand.js.map +1 -1
- package/dist/commands/impl/FreezeTrackCommand.d.ts +1 -1
- package/dist/commands/impl/FreezeTrackCommand.d.ts.map +1 -1
- package/dist/commands/impl/FreezeTrackCommand.js +38 -37
- package/dist/commands/impl/FreezeTrackCommand.js.map +1 -1
- package/dist/commands/impl/PasteRegionCommand.d.ts +0 -1
- package/dist/commands/impl/PasteRegionCommand.d.ts.map +1 -1
- package/dist/commands/impl/PasteRegionCommand.js +0 -1
- package/dist/commands/impl/PasteRegionCommand.js.map +1 -1
- package/dist/commands/impl/SaveSnapshotCommand.d.ts +1 -1
- package/dist/commands/impl/SaveSnapshotCommand.js +1 -1
- package/dist/commands/impl/SetLoopRangeCommand.d.ts +0 -1
- package/dist/commands/impl/SetLoopRangeCommand.d.ts.map +1 -1
- package/dist/commands/impl/SetLoopRangeCommand.js +0 -1
- package/dist/commands/impl/SetLoopRangeCommand.js.map +1 -1
- package/dist/commands/impl/SetPunchRangeCommand.d.ts +0 -1
- package/dist/commands/impl/SetPunchRangeCommand.d.ts.map +1 -1
- package/dist/commands/impl/SetPunchRangeCommand.js +0 -1
- package/dist/commands/impl/SetPunchRangeCommand.js.map +1 -1
- package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts.map +1 -1
- package/dist/commands/impl/SetRegionTimeDomainCommand.js +3 -3
- package/dist/commands/impl/SetRegionTimeDomainCommand.js.map +1 -1
- package/dist/commands/impl/SplitAtPlayheadCommand.d.ts +0 -2
- package/dist/commands/impl/SplitAtPlayheadCommand.d.ts.map +1 -1
- package/dist/commands/impl/SplitAtPlayheadCommand.js +0 -2
- package/dist/commands/impl/SplitAtPlayheadCommand.js.map +1 -1
- package/dist/commands/impl/SplitRegionCommand.d.ts +0 -1
- package/dist/commands/impl/SplitRegionCommand.d.ts.map +1 -1
- package/dist/commands/impl/SplitRegionCommand.js +0 -1
- package/dist/commands/impl/SplitRegionCommand.js.map +1 -1
- package/dist/commands/impl/StripSilenceCommand.d.ts +0 -1
- package/dist/commands/impl/StripSilenceCommand.d.ts.map +1 -1
- package/dist/commands/impl/StripSilenceCommand.js +0 -1
- package/dist/commands/impl/StripSilenceCommand.js.map +1 -1
- package/dist/commands/impl/TimeStretchRegionCommand.d.ts +1 -2
- package/dist/commands/impl/TimeStretchRegionCommand.d.ts.map +1 -1
- package/dist/commands/impl/TimeStretchRegionCommand.js +1 -2
- package/dist/commands/impl/TimeStretchRegionCommand.js.map +1 -1
- package/dist/commands/impl/ToggleLoopCommand.d.ts +1 -0
- package/dist/commands/impl/ToggleLoopCommand.d.ts.map +1 -1
- package/dist/commands/impl/ToggleLoopCommand.js +10 -0
- package/dist/commands/impl/ToggleLoopCommand.js.map +1 -1
- package/dist/commands/impl/TrimRegionCommand.d.ts +14 -1
- package/dist/commands/impl/TrimRegionCommand.d.ts.map +1 -1
- package/dist/commands/impl/TrimRegionCommand.js +138 -33
- package/dist/commands/impl/TrimRegionCommand.js.map +1 -1
- package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts +26 -0
- package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimRegionToPlayheadCommand.js +68 -0
- package/dist/commands/impl/TrimRegionToPlayheadCommand.js.map +1 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.d.ts +27 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.js +68 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.js.map +1 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts +26 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.js +76 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.js.map +1 -0
- package/dist/commands/types.d.ts +19 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js +21 -0
- package/dist/commands/types.js.map +1 -1
- package/dist/domain/ABComparison.d.ts +0 -1
- package/dist/domain/ABComparison.d.ts.map +1 -1
- package/dist/domain/ABComparison.js +0 -1
- package/dist/domain/ABComparison.js.map +1 -1
- package/dist/domain/CDMarker.d.ts +0 -1
- package/dist/domain/CDMarker.d.ts.map +1 -1
- package/dist/domain/CDMarker.js +0 -1
- package/dist/domain/CDMarker.js.map +1 -1
- package/dist/domain/ClockMode.d.ts +0 -1
- package/dist/domain/ClockMode.d.ts.map +1 -1
- package/dist/domain/ClockMode.js +0 -1
- package/dist/domain/ClockMode.js.map +1 -1
- package/dist/domain/Crossfade.d.ts +78 -0
- package/dist/domain/Crossfade.d.ts.map +1 -0
- package/dist/domain/Crossfade.js +216 -0
- package/dist/domain/Crossfade.js.map +1 -0
- package/dist/domain/DragManager.d.ts +0 -2
- package/dist/domain/DragManager.d.ts.map +1 -1
- package/dist/domain/DragManager.js +0 -2
- package/dist/domain/DragManager.js.map +1 -1
- package/dist/domain/EditMode.d.ts +0 -1
- package/dist/domain/EditMode.d.ts.map +1 -1
- package/dist/domain/EditMode.js +0 -1
- package/dist/domain/EditMode.js.map +1 -1
- package/dist/domain/ExportConfig.d.ts +98 -2
- package/dist/domain/ExportConfig.d.ts.map +1 -1
- package/dist/domain/ExportConfig.js +154 -2
- package/dist/domain/ExportConfig.js.map +1 -1
- package/dist/domain/ExportPreset.d.ts +60 -0
- package/dist/domain/ExportPreset.d.ts.map +1 -0
- package/dist/domain/ExportPreset.js +77 -0
- package/dist/domain/ExportPreset.js.map +1 -0
- package/dist/domain/ExportStatus.d.ts +0 -1
- package/dist/domain/ExportStatus.d.ts.map +1 -1
- package/dist/domain/ExportStatus.js +0 -1
- package/dist/domain/ExportStatus.js.map +1 -1
- package/dist/domain/GridSettings.d.ts +0 -3
- package/dist/domain/GridSettings.d.ts.map +1 -1
- package/dist/domain/GridSettings.js +0 -3
- package/dist/domain/GridSettings.js.map +1 -1
- package/dist/domain/ImportStatus.d.ts +40 -0
- package/dist/domain/ImportStatus.d.ts.map +1 -0
- package/dist/domain/ImportStatus.js +86 -0
- package/dist/domain/ImportStatus.js.map +1 -0
- package/dist/domain/Marker.d.ts +0 -1
- package/dist/domain/Marker.d.ts.map +1 -1
- package/dist/domain/Marker.js +0 -1
- package/dist/domain/Marker.js.map +1 -1
- package/dist/domain/MeterData.d.ts +0 -2
- package/dist/domain/MeterData.d.ts.map +1 -1
- package/dist/domain/MeterType.d.ts +0 -2
- package/dist/domain/MeterType.d.ts.map +1 -1
- package/dist/domain/MeterType.js +0 -2
- package/dist/domain/MeterType.js.map +1 -1
- package/dist/domain/MonitorMode.d.ts +0 -1
- package/dist/domain/MonitorMode.d.ts.map +1 -1
- package/dist/domain/MonitorMode.js +0 -1
- package/dist/domain/MonitorMode.js.map +1 -1
- package/dist/domain/MouseMode.d.ts +0 -1
- package/dist/domain/MouseMode.d.ts.map +1 -1
- package/dist/domain/MouseMode.js +0 -1
- package/dist/domain/MouseMode.js.map +1 -1
- package/dist/domain/OverlapType.d.ts +0 -2
- package/dist/domain/OverlapType.d.ts.map +1 -1
- package/dist/domain/OverlapType.js +0 -2
- package/dist/domain/OverlapType.js.map +1 -1
- package/dist/domain/Playlist.d.ts +72 -0
- package/dist/domain/Playlist.d.ts.map +1 -1
- package/dist/domain/Playlist.js +231 -6
- package/dist/domain/Playlist.js.map +1 -1
- package/dist/domain/Range.d.ts +0 -1
- package/dist/domain/Range.d.ts.map +1 -1
- package/dist/domain/Range.js +0 -1
- package/dist/domain/Range.js.map +1 -1
- package/dist/domain/RecordMode.d.ts +0 -1
- package/dist/domain/RecordMode.d.ts.map +1 -1
- package/dist/domain/RecordMode.js +0 -1
- package/dist/domain/RecordMode.js.map +1 -1
- package/dist/domain/Region.d.ts +76 -0
- package/dist/domain/Region.d.ts.map +1 -1
- package/dist/domain/Region.js +234 -1
- package/dist/domain/Region.js.map +1 -1
- package/dist/domain/RegionClipboard.d.ts +1 -3
- package/dist/domain/RegionClipboard.d.ts.map +1 -1
- package/dist/domain/RegionClipboard.js +1 -2
- package/dist/domain/RegionClipboard.js.map +1 -1
- package/dist/domain/Route.d.ts +43 -3
- package/dist/domain/Route.d.ts.map +1 -1
- package/dist/domain/Route.js +92 -6
- package/dist/domain/Route.js.map +1 -1
- package/dist/domain/RulerType.d.ts +0 -1
- package/dist/domain/RulerType.d.ts.map +1 -1
- package/dist/domain/RulerType.js +0 -1
- package/dist/domain/RulerType.js.map +1 -1
- package/dist/domain/SelectionHistory.d.ts +0 -3
- package/dist/domain/SelectionHistory.d.ts.map +1 -1
- package/dist/domain/SelectionHistory.js +0 -3
- package/dist/domain/SelectionHistory.js.map +1 -1
- package/dist/domain/SendBus.d.ts +0 -1
- package/dist/domain/SendBus.d.ts.map +1 -1
- package/dist/domain/SendBus.js +0 -1
- package/dist/domain/SendBus.js.map +1 -1
- package/dist/domain/Session.d.ts +31 -0
- package/dist/domain/Session.d.ts.map +1 -1
- package/dist/domain/Session.js +70 -0
- package/dist/domain/Session.js.map +1 -1
- package/dist/domain/SidechainConfig.d.ts +0 -1
- package/dist/domain/SidechainConfig.d.ts.map +1 -1
- package/dist/domain/SidechainConfig.js +0 -1
- package/dist/domain/SidechainConfig.js.map +1 -1
- package/dist/domain/Source.d.ts +145 -1
- package/dist/domain/Source.d.ts.map +1 -1
- package/dist/domain/Source.js +144 -1
- package/dist/domain/Source.js.map +1 -1
- package/dist/domain/Take.d.ts +0 -1
- package/dist/domain/Take.d.ts.map +1 -1
- package/dist/domain/Take.js +0 -1
- package/dist/domain/Take.js.map +1 -1
- package/dist/domain/ThawList.d.ts +36 -0
- package/dist/domain/ThawList.d.ts.map +1 -0
- package/dist/domain/ThawList.js +72 -0
- package/dist/domain/ThawList.js.map +1 -0
- package/dist/domain/Track.d.ts +93 -1
- package/dist/domain/Track.d.ts.map +1 -1
- package/dist/domain/Track.js +136 -0
- package/dist/domain/Track.js.map +1 -1
- package/dist/domain/TrackGroup.d.ts +0 -1
- package/dist/domain/TrackGroup.d.ts.map +1 -1
- package/dist/domain/TrackGroup.js +0 -1
- package/dist/domain/TrackGroup.js.map +1 -1
- package/dist/domain/TransportFSM.d.ts +0 -1
- package/dist/domain/TransportFSM.d.ts.map +1 -1
- package/dist/domain/TransportFSM.js +0 -1
- package/dist/domain/TransportFSM.js.map +1 -1
- package/dist/domain/TransportMode.d.ts +0 -1
- package/dist/domain/TransportMode.d.ts.map +1 -1
- package/dist/domain/TransportMode.js +0 -1
- package/dist/domain/TransportMode.js.map +1 -1
- package/dist/domain/TriggerBox.d.ts +121 -0
- package/dist/domain/TriggerBox.d.ts.map +1 -0
- package/dist/domain/TriggerBox.js +428 -0
- package/dist/domain/TriggerBox.js.map +1 -0
- package/dist/domain/VCATrack.d.ts +63 -2
- package/dist/domain/VCATrack.d.ts.map +1 -1
- package/dist/domain/VCATrack.js +127 -2
- package/dist/domain/VCATrack.js.map +1 -1
- package/dist/domain/VideoExportConfig.d.ts +116 -0
- package/dist/domain/VideoExportConfig.d.ts.map +1 -0
- package/dist/domain/VideoExportConfig.js +243 -0
- package/dist/domain/VideoExportConfig.js.map +1 -0
- package/dist/domain/VideoExportStatus.d.ts +89 -0
- package/dist/domain/VideoExportStatus.d.ts.map +1 -0
- package/dist/domain/VideoExportStatus.js +192 -0
- package/dist/domain/VideoExportStatus.js.map +1 -0
- package/dist/domain/VideoMetadata.d.ts +46 -0
- package/dist/domain/VideoMetadata.d.ts.map +1 -0
- package/dist/domain/VideoMetadata.js +2 -0
- package/dist/domain/VideoMetadata.js.map +1 -0
- package/dist/domain/ZoomFocus.d.ts +0 -1
- package/dist/domain/ZoomFocus.d.ts.map +1 -1
- package/dist/domain/ZoomFocus.js +0 -1
- package/dist/domain/ZoomFocus.js.map +1 -1
- package/dist/domain/index.d.ts +5 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +5 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/temporal/TempoMap.d.ts +198 -2
- package/dist/domain/temporal/TempoMap.d.ts.map +1 -1
- package/dist/domain/temporal/TempoMap.js +464 -30
- package/dist/domain/temporal/TempoMap.js.map +1 -1
- package/dist/domain/temporal/types.d.ts +1 -1
- package/dist/domain/temporal/types.d.ts.map +1 -1
- package/dist/domain/temporal/types.js +1 -1
- package/dist/domain/temporal/types.js.map +1 -1
- package/dist/index.d.ts +43 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/Signal.d.ts +1 -1
- package/dist/lib/ThawList.d.ts +98 -0
- package/dist/lib/ThawList.d.ts.map +1 -0
- package/dist/lib/ThawList.js +151 -0
- package/dist/lib/ThawList.js.map +1 -0
- package/dist/midi/MidiFileParser.d.ts +32 -0
- package/dist/midi/MidiFileParser.d.ts.map +1 -0
- package/dist/midi/MidiFileParser.js +245 -0
- package/dist/midi/MidiFileParser.js.map +1 -0
- package/dist/midi/MidiFileWriter.d.ts +30 -0
- package/dist/midi/MidiFileWriter.d.ts.map +1 -0
- package/dist/midi/MidiFileWriter.js +159 -0
- package/dist/midi/MidiFileWriter.js.map +1 -0
- package/dist/midi/MidiImporter.d.ts +37 -0
- package/dist/midi/MidiImporter.d.ts.map +1 -0
- package/dist/midi/MidiImporter.js +62 -0
- package/dist/midi/MidiImporter.js.map +1 -0
- package/dist/plugins/PluginManager.js +2 -2
- package/dist/plugins/PluginManager.js.map +1 -1
- package/dist/plugins/PluginPresetManager.d.ts +86 -0
- package/dist/plugins/PluginPresetManager.d.ts.map +1 -0
- package/dist/plugins/PluginPresetManager.js +140 -0
- package/dist/plugins/PluginPresetManager.js.map +1 -0
- package/dist/plugins/impl/ExpanderPlugin.d.ts +1 -1
- package/dist/plugins/impl/ExpanderPlugin.js +1 -1
- package/dist/plugins/impl/ParametricEQPlugin.d.ts +1 -1
- package/dist/plugins/impl/ParametricEQPlugin.js +1 -1
- package/dist/processing/IO.d.ts +15 -1
- package/dist/processing/IO.d.ts.map +1 -1
- package/dist/processing/IO.js +29 -1
- package/dist/processing/IO.js.map +1 -1
- package/dist/processing/InternalSend.d.ts +102 -0
- package/dist/processing/InternalSend.d.ts.map +1 -0
- package/dist/processing/InternalSend.js +175 -0
- package/dist/processing/InternalSend.js.map +1 -0
- package/dist/processing/MeterDSP.d.ts +165 -0
- package/dist/processing/MeterDSP.d.ts.map +1 -0
- package/dist/processing/MeterDSP.js +753 -0
- package/dist/processing/MeterDSP.js.map +1 -0
- package/dist/processing/MeterProcessor.d.ts +0 -1
- package/dist/processing/MeterProcessor.d.ts.map +1 -1
- package/dist/processing/MeterProcessor.js +0 -1
- package/dist/processing/MeterProcessor.js.map +1 -1
- package/dist/processing/Panner.d.ts +144 -0
- package/dist/processing/Panner.d.ts.map +1 -0
- package/dist/processing/Panner.js +280 -0
- package/dist/processing/Panner.js.map +1 -0
- package/dist/processing/PluginInsert.d.ts +56 -1
- package/dist/processing/PluginInsert.d.ts.map +1 -1
- package/dist/processing/PluginInsert.js +180 -2
- package/dist/processing/PluginInsert.js.map +1 -1
- package/dist/processing/PolarityProcessor.d.ts +1 -1
- package/dist/processing/PolarityProcessor.js +1 -1
- package/dist/processing/Processor.d.ts +38 -0
- package/dist/processing/Processor.d.ts.map +1 -1
- package/dist/processing/Processor.js +60 -1
- package/dist/processing/Processor.js.map +1 -1
- package/dist/processing/SendProcessor.d.ts +0 -1
- package/dist/processing/SendProcessor.d.ts.map +1 -1
- package/dist/processing/SendProcessor.js +0 -1
- package/dist/processing/SendProcessor.js.map +1 -1
- package/dist/processing/SurroundPanner.d.ts +120 -0
- package/dist/processing/SurroundPanner.d.ts.map +1 -0
- package/dist/processing/SurroundPanner.js +374 -0
- package/dist/processing/SurroundPanner.js.map +1 -0
- package/dist/processing/TruePeakLimiter.d.ts +32 -0
- package/dist/processing/TruePeakLimiter.d.ts.map +1 -0
- package/dist/processing/TruePeakLimiter.js +142 -0
- package/dist/processing/TruePeakLimiter.js.map +1 -0
- package/dist/storage/ExportPresetStorage.d.ts +33 -0
- package/dist/storage/ExportPresetStorage.d.ts.map +1 -0
- package/dist/storage/ExportPresetStorage.js +121 -0
- package/dist/storage/ExportPresetStorage.js.map +1 -0
- package/dist/storage/SessionArchive.d.ts +73 -0
- package/dist/storage/SessionArchive.d.ts.map +1 -0
- package/dist/storage/SessionArchive.js +211 -0
- package/dist/storage/SessionArchive.js.map +1 -0
- package/dist/storage/SessionStorage.d.ts +1 -1
- package/dist/storage/SessionTemplate.d.ts +74 -5
- package/dist/storage/SessionTemplate.d.ts.map +1 -1
- package/dist/storage/SessionTemplate.js +247 -53
- package/dist/storage/SessionTemplate.js.map +1 -1
- package/dist/utils/BwfMetadataWriter.d.ts +41 -0
- package/dist/utils/BwfMetadataWriter.d.ts.map +1 -0
- package/dist/utils/BwfMetadataWriter.js +130 -0
- package/dist/utils/BwfMetadataWriter.js.map +1 -0
- package/dist/utils/DitherProcessor.d.ts +0 -1
- package/dist/utils/DitherProcessor.d.ts.map +1 -1
- package/dist/utils/DitherProcessor.js +0 -1
- package/dist/utils/DitherProcessor.js.map +1 -1
- package/dist/utils/FilenameTemplate.d.ts +39 -0
- package/dist/utils/FilenameTemplate.d.ts.map +1 -0
- package/dist/utils/FilenameTemplate.js +77 -0
- package/dist/utils/FilenameTemplate.js.map +1 -0
- package/dist/utils/FlacEncoder.d.ts +0 -1
- package/dist/utils/FlacEncoder.d.ts.map +1 -1
- package/dist/utils/FlacEncoder.js +0 -1
- package/dist/utils/FlacEncoder.js.map +1 -1
- package/dist/utils/Logger.d.ts +28 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +46 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/Mp4ChapterGenerator.d.ts +16 -0
- package/dist/utils/Mp4ChapterGenerator.d.ts.map +1 -0
- package/dist/utils/Mp4ChapterGenerator.js +32 -0
- package/dist/utils/Mp4ChapterGenerator.js.map +1 -0
- package/dist/utils/OggEncoder.d.ts +19 -21
- package/dist/utils/OggEncoder.d.ts.map +1 -1
- package/dist/utils/OggEncoder.js +113 -51
- package/dist/utils/OggEncoder.js.map +1 -1
- package/dist/utils/TocGenerator.d.ts +16 -0
- package/dist/utils/TocGenerator.d.ts.map +1 -0
- package/dist/utils/TocGenerator.js +46 -0
- package/dist/utils/TocGenerator.js.map +1 -0
- package/package.json +7 -8
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { Signal } from '../lib/Signal';
|
|
2
|
+
export var CrossfadeType;
|
|
3
|
+
(function (CrossfadeType) {
|
|
4
|
+
CrossfadeType["FULL"] = "full";
|
|
5
|
+
CrossfadeType["SHORT"] = "short";
|
|
6
|
+
CrossfadeType["CUSTOM"] = "custom";
|
|
7
|
+
})(CrossfadeType || (CrossfadeType = {}));
|
|
8
|
+
export var FadeCurve;
|
|
9
|
+
(function (FadeCurve) {
|
|
10
|
+
FadeCurve["LINEAR"] = "linear";
|
|
11
|
+
FadeCurve["EQUAL_POWER"] = "equal_power";
|
|
12
|
+
FadeCurve["S_CURVE"] = "s_curve";
|
|
13
|
+
FadeCurve["EXPONENTIAL"] = "exponential";
|
|
14
|
+
FadeCurve["LOGARITHMIC"] = "logarithmic";
|
|
15
|
+
FadeCurve["CONSTANT_POWER"] = "constant_power";
|
|
16
|
+
})(FadeCurve || (FadeCurve = {}));
|
|
17
|
+
// ─── Gain Calculation Helpers ────────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Compute the fade-in gain for a normalised position t (0..1) given a curve.
|
|
20
|
+
* t = 0 means silence, t = 1 means full gain.
|
|
21
|
+
*/
|
|
22
|
+
function computeFadeInGain(t, curve) {
|
|
23
|
+
const s = Math.max(0, Math.min(1, t));
|
|
24
|
+
switch (curve) {
|
|
25
|
+
case FadeCurve.LINEAR:
|
|
26
|
+
return s;
|
|
27
|
+
case FadeCurve.EQUAL_POWER:
|
|
28
|
+
return Math.sqrt(s);
|
|
29
|
+
case FadeCurve.S_CURVE:
|
|
30
|
+
return s * s * (3 - 2 * s);
|
|
31
|
+
case FadeCurve.EXPONENTIAL:
|
|
32
|
+
// Exponential rise: slow start, fast finish
|
|
33
|
+
return s === 0 ? 0 : Math.pow(2, 10 * (s - 1));
|
|
34
|
+
case FadeCurve.LOGARITHMIC:
|
|
35
|
+
// Logarithmic rise: fast start, slow finish
|
|
36
|
+
return Math.log1p(s * (Math.E - 1)) / Math.log(Math.E);
|
|
37
|
+
case FadeCurve.CONSTANT_POWER:
|
|
38
|
+
// sine-based constant power (complementary with fade-out)
|
|
39
|
+
return Math.sin(s * Math.PI * 0.5);
|
|
40
|
+
default:
|
|
41
|
+
return s;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Compute the fade-out gain for a normalised position t (0..1) given a curve.
|
|
46
|
+
* t = 0 means full gain (beginning of crossfade), t = 1 means silence.
|
|
47
|
+
*/
|
|
48
|
+
function computeFadeOutGain(t, curve) {
|
|
49
|
+
const s = Math.max(0, Math.min(1, t));
|
|
50
|
+
switch (curve) {
|
|
51
|
+
case FadeCurve.LINEAR:
|
|
52
|
+
return 1 - s;
|
|
53
|
+
case FadeCurve.EQUAL_POWER:
|
|
54
|
+
return Math.sqrt(1 - s);
|
|
55
|
+
case FadeCurve.S_CURVE: {
|
|
56
|
+
const inv = 1 - s;
|
|
57
|
+
return inv * inv * (3 - 2 * inv);
|
|
58
|
+
}
|
|
59
|
+
case FadeCurve.EXPONENTIAL:
|
|
60
|
+
// Exponential decay: fast start, slow tail
|
|
61
|
+
return s >= 1 ? 0 : Math.pow(2, -10 * s);
|
|
62
|
+
case FadeCurve.LOGARITHMIC:
|
|
63
|
+
// Logarithmic decay: slow start, fast tail
|
|
64
|
+
return 1 - Math.log1p(s * (Math.E - 1)) / Math.log(Math.E);
|
|
65
|
+
case FadeCurve.CONSTANT_POWER:
|
|
66
|
+
// cosine-based constant power (complementary with fade-in)
|
|
67
|
+
return Math.cos(s * Math.PI * 0.5);
|
|
68
|
+
default:
|
|
69
|
+
return 1 - s;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// ─── Crossfade Class ─────────────────────────────────────────────────────────
|
|
73
|
+
export class Crossfade {
|
|
74
|
+
constructor(id, inRegionId, outRegionId, position, length, type = CrossfadeType.FULL, fadeInCurve = FadeCurve.EQUAL_POWER, fadeOutCurve = FadeCurve.EQUAL_POWER) {
|
|
75
|
+
// Signals
|
|
76
|
+
this.changed = new Signal();
|
|
77
|
+
this.id = id;
|
|
78
|
+
this._inRegionId = inRegionId;
|
|
79
|
+
this._outRegionId = outRegionId;
|
|
80
|
+
this._position = position;
|
|
81
|
+
this._length = length;
|
|
82
|
+
this._type = type;
|
|
83
|
+
this._fadeInCurve = fadeInCurve;
|
|
84
|
+
this._fadeOutCurve = fadeOutCurve;
|
|
85
|
+
this._active = true;
|
|
86
|
+
}
|
|
87
|
+
// ─── Getters ─────────────────────────────────────────────────────────────
|
|
88
|
+
get inRegionId() {
|
|
89
|
+
return this._inRegionId;
|
|
90
|
+
}
|
|
91
|
+
get outRegionId() {
|
|
92
|
+
return this._outRegionId;
|
|
93
|
+
}
|
|
94
|
+
get length() {
|
|
95
|
+
return this._length;
|
|
96
|
+
}
|
|
97
|
+
get position() {
|
|
98
|
+
return this._position;
|
|
99
|
+
}
|
|
100
|
+
get end() {
|
|
101
|
+
return this._position + this._length;
|
|
102
|
+
}
|
|
103
|
+
get fadeInCurve() {
|
|
104
|
+
return this._fadeInCurve;
|
|
105
|
+
}
|
|
106
|
+
get fadeOutCurve() {
|
|
107
|
+
return this._fadeOutCurve;
|
|
108
|
+
}
|
|
109
|
+
get type() {
|
|
110
|
+
return this._type;
|
|
111
|
+
}
|
|
112
|
+
get active() {
|
|
113
|
+
return this._active;
|
|
114
|
+
}
|
|
115
|
+
// ─── Setters / Mutators ──────────────────────────────────────────────────
|
|
116
|
+
setLength(length) {
|
|
117
|
+
if (length < 0)
|
|
118
|
+
length = 0;
|
|
119
|
+
this._length = length;
|
|
120
|
+
this.changed.emit();
|
|
121
|
+
}
|
|
122
|
+
setPosition(position) {
|
|
123
|
+
if (position < 0)
|
|
124
|
+
position = 0;
|
|
125
|
+
this._position = position;
|
|
126
|
+
this.changed.emit();
|
|
127
|
+
}
|
|
128
|
+
setCurves(fadeIn, fadeOut) {
|
|
129
|
+
this._fadeInCurve = fadeIn;
|
|
130
|
+
this._fadeOutCurve = fadeOut;
|
|
131
|
+
this.changed.emit();
|
|
132
|
+
}
|
|
133
|
+
setType(type) {
|
|
134
|
+
this._type = type;
|
|
135
|
+
this.changed.emit();
|
|
136
|
+
}
|
|
137
|
+
setActive(active) {
|
|
138
|
+
this._active = active;
|
|
139
|
+
this.changed.emit();
|
|
140
|
+
}
|
|
141
|
+
// ─── Gain Calculation ────────────────────────────────────────────────────
|
|
142
|
+
/**
|
|
143
|
+
* Calculate the gain value at a given frame for either the fade-in or
|
|
144
|
+
* fade-out side of the crossfade.
|
|
145
|
+
*
|
|
146
|
+
* @param frame The absolute timeline frame.
|
|
147
|
+
* @param isIn True for the fade-in region, false for the fade-out region.
|
|
148
|
+
* @returns Gain value in the range [0, 1]. Returns 1 if the frame is
|
|
149
|
+
* outside the crossfade range (no attenuation).
|
|
150
|
+
*/
|
|
151
|
+
getGainAt(frame, isIn) {
|
|
152
|
+
if (!this._active || this._length === 0)
|
|
153
|
+
return 1;
|
|
154
|
+
// Frame is before or after the crossfade zone
|
|
155
|
+
if (frame < this._position || frame >= this.end) {
|
|
156
|
+
return 1;
|
|
157
|
+
}
|
|
158
|
+
// Normalised position within the crossfade (0..1)
|
|
159
|
+
const t = (frame - this._position) / this._length;
|
|
160
|
+
if (isIn) {
|
|
161
|
+
return computeFadeInGain(t, this._fadeInCurve);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
return computeFadeOutGain(t, this._fadeOutCurve);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// ─── Bulk Gain Computation ───────────────────────────────────────────────
|
|
168
|
+
/**
|
|
169
|
+
* Pre-compute gain curves for efficient real-time use.
|
|
170
|
+
*
|
|
171
|
+
* @param numSamples Number of samples to compute (typically the crossfade
|
|
172
|
+
* length, but can be any resolution).
|
|
173
|
+
* @returns An object containing Float32Arrays for both curves.
|
|
174
|
+
*/
|
|
175
|
+
computeGainCurve(numSamples) {
|
|
176
|
+
const fadeIn = new Float32Array(numSamples);
|
|
177
|
+
const fadeOut = new Float32Array(numSamples);
|
|
178
|
+
if (numSamples <= 1) {
|
|
179
|
+
if (numSamples === 1) {
|
|
180
|
+
fadeIn[0] = 0.5;
|
|
181
|
+
fadeOut[0] = 0.5;
|
|
182
|
+
}
|
|
183
|
+
return { fadeIn, fadeOut };
|
|
184
|
+
}
|
|
185
|
+
for (let i = 0; i < numSamples; i++) {
|
|
186
|
+
const t = i / (numSamples - 1);
|
|
187
|
+
fadeIn[i] = computeFadeInGain(t, this._fadeInCurve);
|
|
188
|
+
fadeOut[i] = computeFadeOutGain(t, this._fadeOutCurve);
|
|
189
|
+
}
|
|
190
|
+
return { fadeIn, fadeOut };
|
|
191
|
+
}
|
|
192
|
+
// ─── Static Helpers ──────────────────────────────────────────────────────
|
|
193
|
+
/**
|
|
194
|
+
* Calculate the overlap between two regions. Returns null if there is no
|
|
195
|
+
* overlap. The convention is that regionA is the earlier (fade-out) region
|
|
196
|
+
* and regionB is the later (fade-in) region, but the method handles
|
|
197
|
+
* either ordering.
|
|
198
|
+
*/
|
|
199
|
+
static calculateOverlap(regionA, regionB) {
|
|
200
|
+
const overlapStart = Math.max(regionA.start, regionB.start);
|
|
201
|
+
const overlapEnd = Math.min(regionA.end, regionB.end);
|
|
202
|
+
if (overlapStart >= overlapEnd) {
|
|
203
|
+
return null; // No overlap
|
|
204
|
+
}
|
|
205
|
+
// Determine which region comes first (fade-out) and which comes second (fade-in)
|
|
206
|
+
const outRegionId = regionA.start <= regionB.start ? regionA.id : regionB.id;
|
|
207
|
+
const inRegionId = regionA.start <= regionB.start ? regionB.id : regionA.id;
|
|
208
|
+
return {
|
|
209
|
+
position: overlapStart,
|
|
210
|
+
length: overlapEnd - overlapStart,
|
|
211
|
+
outRegionId,
|
|
212
|
+
inRegionId,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=Crossfade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Crossfade.js","sourceRoot":"","sources":["../../src/domain/Crossfade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Signal } from '../lib/Signal';
|
|
2
2
|
/**
|
|
3
3
|
* DragManager - centralized drag state tracking.
|
|
4
|
-
* Modeled after Ardour's _drags->active() / _drags->abort() pattern
|
|
5
|
-
* (gtk2_ardour/editor_ops.cc).
|
|
6
4
|
*
|
|
7
5
|
* Components register/unregister active drags.
|
|
8
6
|
* HistoryHandler aborts active drags before undo/redo.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragManager.d.ts","sourceRoot":"","sources":["../../src/domain/DragManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"DragManager.d.ts","sourceRoot":"","sources":["../../src/domain/DragManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,SAAgB,WAAW,eAAsB;IACjD,OAAO,CAAC,gBAAgB,CAAa;IAErC,OAAO;WAEO,WAAW,IAAI,WAAW;IAOjC,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,IAAI;IAI7B,IAAW,MAAM,IAAI,OAAO,CAE3B;IAEM,KAAK,IAAI,IAAI;CAMvB"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Signal } from '../lib/Signal';
|
|
2
2
|
/**
|
|
3
3
|
* DragManager - centralized drag state tracking.
|
|
4
|
-
* Modeled after Ardour's _drags->active() / _drags->abort() pattern
|
|
5
|
-
* (gtk2_ardour/editor_ops.cc).
|
|
6
4
|
*
|
|
7
5
|
* Components register/unregister active drags.
|
|
8
6
|
* HistoryHandler aborts active drags before undo/redo.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragManager.js","sourceRoot":"","sources":["../../src/domain/DragManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"DragManager.js","sourceRoot":"","sources":["../../src/domain/DragManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAKpB;QAHgB,gBAAW,GAAG,IAAI,MAAM,EAAQ,CAAC;QACzC,qBAAgB,GAAW,CAAC,CAAC;IAEd,CAAC;IAEjB,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YACxB,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEM,cAAc;QACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK;QACR,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditMode.d.ts","sourceRoot":"","sources":["../../src/domain/EditMode.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"EditMode.d.ts","sourceRoot":"","sources":["../../src/domain/EditMode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,QAAQ;IAChB,oBAAoB;IACpB,KAAK,UAAU;IACf,yBAAyB;IACzB,MAAM,WAAW;IACjB,uBAAuB;IACvB,IAAI,SAAS;CAChB"}
|
package/dist/domain/EditMode.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditMode.js","sourceRoot":"","sources":["../../src/domain/EditMode.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"EditMode.js","sourceRoot":"","sources":["../../src/domain/EditMode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,oBAAoB;IACpB,2BAAe,CAAA;IACf,yBAAyB;IACzB,6BAAiB,CAAA;IACjB,uBAAuB;IACvB,yBAAa,CAAA;AACjB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB"}
|
|
@@ -5,16 +5,42 @@ export declare enum ExportFormat {
|
|
|
5
5
|
WAV = "wav",
|
|
6
6
|
MP3 = "mp3",
|
|
7
7
|
OGG = "ogg",
|
|
8
|
-
FLAC = "flac"
|
|
8
|
+
FLAC = "flac",
|
|
9
|
+
MIDI = "midi"
|
|
9
10
|
}
|
|
10
11
|
export declare enum ExportSampleFormat {
|
|
11
12
|
INT16 = "int16",
|
|
12
13
|
INT24 = "int24",
|
|
13
14
|
FLOAT32 = "float32"
|
|
14
15
|
}
|
|
16
|
+
export type NormalizeMode = 'peak' | 'lufs';
|
|
17
|
+
/**
|
|
18
|
+
* Timespan for batch export
|
|
19
|
+
*/
|
|
20
|
+
export interface ExportTimespan {
|
|
21
|
+
name: string;
|
|
22
|
+
startFrame: FrameCount;
|
|
23
|
+
endFrame: FrameCount;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* BWF (Broadcast WAV) metadata
|
|
27
|
+
* EBU Tech 3285 — Broadcast Wave Format specification
|
|
28
|
+
*/
|
|
29
|
+
export interface BwfMetadata {
|
|
30
|
+
description?: string;
|
|
31
|
+
originator?: string;
|
|
32
|
+
originatorReference?: string;
|
|
33
|
+
originationDate?: string;
|
|
34
|
+
originationTime?: string;
|
|
35
|
+
timeReference?: number;
|
|
36
|
+
codingHistory?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated Use BwfMetadata (fields are now optional). Kept for backward compat.
|
|
40
|
+
*/
|
|
41
|
+
export type BWFMetadata = BwfMetadata;
|
|
15
42
|
/**
|
|
16
43
|
* Export Configuration
|
|
17
|
-
* Ardour 참조: libs/ardour/ardour/export_format_specification.h
|
|
18
44
|
*/
|
|
19
45
|
export declare class ExportConfig {
|
|
20
46
|
readonly id: string;
|
|
@@ -28,12 +54,28 @@ export declare class ExportConfig {
|
|
|
28
54
|
endFrame: FrameCount;
|
|
29
55
|
filename: string;
|
|
30
56
|
folder: string;
|
|
57
|
+
filenameTemplate: string;
|
|
58
|
+
presetId?: string;
|
|
31
59
|
exportMasterOnly: boolean;
|
|
32
60
|
trackIds: string[];
|
|
33
61
|
stemExport: boolean;
|
|
62
|
+
splitMono: boolean;
|
|
34
63
|
ditherType: DitherType;
|
|
35
64
|
normalize: boolean;
|
|
65
|
+
normalizeMode: NormalizeMode;
|
|
36
66
|
targetPeakDb?: number;
|
|
67
|
+
targetLufs: number;
|
|
68
|
+
truePeakLimit: boolean;
|
|
69
|
+
truePeakCeiling: number;
|
|
70
|
+
timespans: ExportTimespan[];
|
|
71
|
+
silencePaddingStart: number;
|
|
72
|
+
silencePaddingEnd: number;
|
|
73
|
+
trimSilence: boolean;
|
|
74
|
+
exportCdMarkers: boolean;
|
|
75
|
+
cdMarkerFormat: 'cue' | 'toc' | 'mp4ch';
|
|
76
|
+
bwfMetadata: boolean;
|
|
77
|
+
bwfData?: BwfMetadata;
|
|
78
|
+
reimportAfterExport: boolean;
|
|
37
79
|
readonly changed: Signal<void>;
|
|
38
80
|
constructor(id?: string);
|
|
39
81
|
setFormat(format: ExportFormat): void;
|
|
@@ -42,14 +84,68 @@ export declare class ExportConfig {
|
|
|
42
84
|
setRangeById(rangeId: RangeId): void;
|
|
43
85
|
setFilename(filename: string): void;
|
|
44
86
|
setFolder(folder: string): void;
|
|
87
|
+
setFilenameTemplate(template: string): void;
|
|
45
88
|
setNormalize(normalize: boolean, targetPeakDb?: number): void;
|
|
89
|
+
setNormalizeMode(mode: NormalizeMode): void;
|
|
90
|
+
setTargetLufs(lufs: number): void;
|
|
91
|
+
setTruePeakLimit(enabled: boolean, ceiling?: number): void;
|
|
46
92
|
setStemExport(stemExport: boolean): void;
|
|
93
|
+
setSplitMono(splitMono: boolean): void;
|
|
47
94
|
setQuality(quality: number): void;
|
|
48
95
|
setDitherType(ditherType: DitherType): void;
|
|
49
96
|
setExportMasterOnly(masterOnly: boolean): void;
|
|
50
97
|
setTrackIds(trackIds: string[]): void;
|
|
98
|
+
setTimespans(timespans: ExportTimespan[]): void;
|
|
99
|
+
setSilencePadding(startFrames: number, endFrames: number): void;
|
|
100
|
+
setTrimSilence(trim: boolean): void;
|
|
101
|
+
setCdMarkerExport(enabled: boolean, format?: 'cue' | 'toc' | 'mp4ch'): void;
|
|
102
|
+
setBwfMetadata(enabled: boolean, data?: BwfMetadata): void;
|
|
103
|
+
setPresetId(presetId: string | undefined): void;
|
|
51
104
|
validate(): boolean;
|
|
52
105
|
getDuration(): FrameCount;
|
|
53
106
|
getFullPath(): string;
|
|
107
|
+
/**
|
|
108
|
+
* Serialize to JSON for preset storage.
|
|
109
|
+
*/
|
|
110
|
+
toJSON(): ExportConfigSnapshot;
|
|
111
|
+
/**
|
|
112
|
+
* Restore from JSON snapshot.
|
|
113
|
+
*/
|
|
114
|
+
static fromJSON(data: ExportConfigSnapshot): ExportConfig;
|
|
115
|
+
}
|
|
116
|
+
export interface ExportConfigSnapshot {
|
|
117
|
+
id: string;
|
|
118
|
+
format: ExportFormat;
|
|
119
|
+
sampleFormat: ExportSampleFormat;
|
|
120
|
+
sampleRate: number;
|
|
121
|
+
bitrate?: number;
|
|
122
|
+
quality?: number;
|
|
123
|
+
rangeId?: string;
|
|
124
|
+
startFrame: number;
|
|
125
|
+
endFrame: number;
|
|
126
|
+
filename: string;
|
|
127
|
+
folder?: string;
|
|
128
|
+
filenameTemplate?: string;
|
|
129
|
+
presetId?: string;
|
|
130
|
+
exportMasterOnly: boolean;
|
|
131
|
+
trackIds: string[];
|
|
132
|
+
stemExport: boolean;
|
|
133
|
+
splitMono?: boolean;
|
|
134
|
+
ditherType: DitherType;
|
|
135
|
+
normalize: boolean;
|
|
136
|
+
normalizeMode?: NormalizeMode;
|
|
137
|
+
targetPeakDb?: number;
|
|
138
|
+
targetLufs?: number;
|
|
139
|
+
truePeakLimit?: boolean;
|
|
140
|
+
truePeakCeiling?: number;
|
|
141
|
+
timespans?: ExportTimespan[];
|
|
142
|
+
silencePaddingStart?: number;
|
|
143
|
+
silencePaddingEnd?: number;
|
|
144
|
+
trimSilence?: boolean;
|
|
145
|
+
exportCdMarkers?: boolean;
|
|
146
|
+
cdMarkerFormat?: 'cue' | 'toc' | 'mp4ch';
|
|
147
|
+
bwfMetadata?: boolean;
|
|
148
|
+
bwfData?: BwfMetadata;
|
|
149
|
+
reimportAfterExport?: boolean;
|
|
54
150
|
}
|
|
55
151
|
//# sourceMappingURL=ExportConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportConfig.d.ts","sourceRoot":"","sources":["../../src/domain/ExportConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,oBAAY,YAAY;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,oBAAY,kBAAkB;IAC1B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,OAAO,YAAY;CACtB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACrB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAGpB,MAAM,EAAE,YAAY,CAAoB;IACxC,YAAY,EAAE,kBAAkB,CAA8B;IAC9D,UAAU,EAAE,MAAM,CAAS;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAK;IAC3B,QAAQ,EAAE,UAAU,CAAK;IAGzB,QAAQ,EAAE,MAAM,CAAY;IAC5B,MAAM,EAAE,MAAM,CAAM;
|
|
1
|
+
{"version":3,"file":"ExportConfig.d.ts","sourceRoot":"","sources":["../../src/domain/ExportConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export var ExportFormat;
|
|
|
6
6
|
ExportFormat["MP3"] = "mp3";
|
|
7
7
|
ExportFormat["OGG"] = "ogg";
|
|
8
8
|
ExportFormat["FLAC"] = "flac";
|
|
9
|
+
ExportFormat["MIDI"] = "midi";
|
|
9
10
|
})(ExportFormat || (ExportFormat = {}));
|
|
10
11
|
export var ExportSampleFormat;
|
|
11
12
|
(function (ExportSampleFormat) {
|
|
@@ -15,7 +16,6 @@ export var ExportSampleFormat;
|
|
|
15
16
|
})(ExportSampleFormat || (ExportSampleFormat = {}));
|
|
16
17
|
/**
|
|
17
18
|
* Export Configuration
|
|
18
|
-
* Ardour 참조: libs/ardour/ardour/export_format_specification.h
|
|
19
19
|
*/
|
|
20
20
|
export class ExportConfig {
|
|
21
21
|
constructor(id) {
|
|
@@ -28,15 +28,36 @@ export class ExportConfig {
|
|
|
28
28
|
// File Settings
|
|
29
29
|
this.filename = 'export';
|
|
30
30
|
this.folder = '';
|
|
31
|
+
this.filenameTemplate = '%s'; // Phase 1: template with tokens
|
|
31
32
|
// Channel Settings
|
|
32
33
|
this.exportMasterOnly = true;
|
|
33
34
|
this.trackIds = []; // If not master only, specific track IDs
|
|
34
35
|
// Stem Export
|
|
35
36
|
this.stemExport = false;
|
|
37
|
+
// Split Mono (Phase 5B)
|
|
38
|
+
this.splitMono = false;
|
|
36
39
|
// Dithering
|
|
37
40
|
this.ditherType = DitherType.NONE;
|
|
38
|
-
// Normalize
|
|
41
|
+
// Normalize
|
|
39
42
|
this.normalize = false;
|
|
43
|
+
this.normalizeMode = 'peak';
|
|
44
|
+
this.targetLufs = -14; // Phase 2A
|
|
45
|
+
// True Peak Limiter (Phase 2B)
|
|
46
|
+
this.truePeakLimit = false;
|
|
47
|
+
this.truePeakCeiling = -1.0; // dBTP
|
|
48
|
+
// Multi-Timespan (Phase 5A)
|
|
49
|
+
this.timespans = [];
|
|
50
|
+
// Silence Padding (Phase 5C)
|
|
51
|
+
this.silencePaddingStart = 0; // frames
|
|
52
|
+
this.silencePaddingEnd = 0; // frames
|
|
53
|
+
this.trimSilence = false;
|
|
54
|
+
// CD Markers (Phase 5D)
|
|
55
|
+
this.exportCdMarkers = false;
|
|
56
|
+
this.cdMarkerFormat = 'cue';
|
|
57
|
+
// BWF Metadata (Phase 5E)
|
|
58
|
+
this.bwfMetadata = false;
|
|
59
|
+
// Post-Export (Phase 6)
|
|
60
|
+
this.reimportAfterExport = false;
|
|
40
61
|
// Signals
|
|
41
62
|
this.changed = new Signal();
|
|
42
63
|
this.id = id || crypto.randomUUID();
|
|
@@ -67,15 +88,37 @@ export class ExportConfig {
|
|
|
67
88
|
this.folder = folder;
|
|
68
89
|
this.changed.emit();
|
|
69
90
|
}
|
|
91
|
+
setFilenameTemplate(template) {
|
|
92
|
+
this.filenameTemplate = template;
|
|
93
|
+
this.changed.emit();
|
|
94
|
+
}
|
|
70
95
|
setNormalize(normalize, targetPeakDb) {
|
|
71
96
|
this.normalize = normalize;
|
|
72
97
|
this.targetPeakDb = targetPeakDb;
|
|
73
98
|
this.changed.emit();
|
|
74
99
|
}
|
|
100
|
+
setNormalizeMode(mode) {
|
|
101
|
+
this.normalizeMode = mode;
|
|
102
|
+
this.changed.emit();
|
|
103
|
+
}
|
|
104
|
+
setTargetLufs(lufs) {
|
|
105
|
+
this.targetLufs = lufs;
|
|
106
|
+
this.changed.emit();
|
|
107
|
+
}
|
|
108
|
+
setTruePeakLimit(enabled, ceiling) {
|
|
109
|
+
this.truePeakLimit = enabled;
|
|
110
|
+
if (ceiling !== undefined)
|
|
111
|
+
this.truePeakCeiling = ceiling;
|
|
112
|
+
this.changed.emit();
|
|
113
|
+
}
|
|
75
114
|
setStemExport(stemExport) {
|
|
76
115
|
this.stemExport = stemExport;
|
|
77
116
|
this.changed.emit();
|
|
78
117
|
}
|
|
118
|
+
setSplitMono(splitMono) {
|
|
119
|
+
this.splitMono = splitMono;
|
|
120
|
+
this.changed.emit();
|
|
121
|
+
}
|
|
79
122
|
setQuality(quality) {
|
|
80
123
|
this.quality = Math.max(0, Math.min(1, quality));
|
|
81
124
|
this.changed.emit();
|
|
@@ -92,6 +135,35 @@ export class ExportConfig {
|
|
|
92
135
|
this.trackIds = trackIds;
|
|
93
136
|
this.changed.emit();
|
|
94
137
|
}
|
|
138
|
+
setTimespans(timespans) {
|
|
139
|
+
this.timespans = timespans;
|
|
140
|
+
this.changed.emit();
|
|
141
|
+
}
|
|
142
|
+
setSilencePadding(startFrames, endFrames) {
|
|
143
|
+
this.silencePaddingStart = startFrames;
|
|
144
|
+
this.silencePaddingEnd = endFrames;
|
|
145
|
+
this.changed.emit();
|
|
146
|
+
}
|
|
147
|
+
setTrimSilence(trim) {
|
|
148
|
+
this.trimSilence = trim;
|
|
149
|
+
this.changed.emit();
|
|
150
|
+
}
|
|
151
|
+
setCdMarkerExport(enabled, format) {
|
|
152
|
+
this.exportCdMarkers = enabled;
|
|
153
|
+
if (format)
|
|
154
|
+
this.cdMarkerFormat = format;
|
|
155
|
+
this.changed.emit();
|
|
156
|
+
}
|
|
157
|
+
setBwfMetadata(enabled, data) {
|
|
158
|
+
this.bwfMetadata = enabled;
|
|
159
|
+
if (data)
|
|
160
|
+
this.bwfData = data;
|
|
161
|
+
this.changed.emit();
|
|
162
|
+
}
|
|
163
|
+
setPresetId(presetId) {
|
|
164
|
+
this.presetId = presetId;
|
|
165
|
+
this.changed.emit();
|
|
166
|
+
}
|
|
95
167
|
validate() {
|
|
96
168
|
if (this.endFrame <= this.startFrame)
|
|
97
169
|
return false;
|
|
@@ -111,5 +183,85 @@ export class ExportConfig {
|
|
|
111
183
|
const folder = this.folder || 'exports';
|
|
112
184
|
return `${folder}/${this.filename}.${ext}`;
|
|
113
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Serialize to JSON for preset storage.
|
|
188
|
+
*/
|
|
189
|
+
toJSON() {
|
|
190
|
+
return {
|
|
191
|
+
id: this.id,
|
|
192
|
+
format: this.format,
|
|
193
|
+
sampleFormat: this.sampleFormat,
|
|
194
|
+
sampleRate: this.sampleRate,
|
|
195
|
+
bitrate: this.bitrate,
|
|
196
|
+
quality: this.quality,
|
|
197
|
+
rangeId: this.rangeId,
|
|
198
|
+
startFrame: this.startFrame,
|
|
199
|
+
endFrame: this.endFrame,
|
|
200
|
+
filename: this.filename,
|
|
201
|
+
folder: this.folder,
|
|
202
|
+
filenameTemplate: this.filenameTemplate,
|
|
203
|
+
presetId: this.presetId,
|
|
204
|
+
exportMasterOnly: this.exportMasterOnly,
|
|
205
|
+
trackIds: [...this.trackIds],
|
|
206
|
+
stemExport: this.stemExport,
|
|
207
|
+
splitMono: this.splitMono,
|
|
208
|
+
ditherType: this.ditherType,
|
|
209
|
+
normalize: this.normalize,
|
|
210
|
+
normalizeMode: this.normalizeMode,
|
|
211
|
+
targetPeakDb: this.targetPeakDb,
|
|
212
|
+
targetLufs: this.targetLufs,
|
|
213
|
+
truePeakLimit: this.truePeakLimit,
|
|
214
|
+
truePeakCeiling: this.truePeakCeiling,
|
|
215
|
+
timespans: this.timespans.map(ts => (Object.assign({}, ts))),
|
|
216
|
+
silencePaddingStart: this.silencePaddingStart,
|
|
217
|
+
silencePaddingEnd: this.silencePaddingEnd,
|
|
218
|
+
trimSilence: this.trimSilence,
|
|
219
|
+
exportCdMarkers: this.exportCdMarkers,
|
|
220
|
+
cdMarkerFormat: this.cdMarkerFormat,
|
|
221
|
+
bwfMetadata: this.bwfMetadata,
|
|
222
|
+
bwfData: this.bwfData ? Object.assign({}, this.bwfData) : undefined,
|
|
223
|
+
reimportAfterExport: this.reimportAfterExport,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Restore from JSON snapshot.
|
|
228
|
+
*/
|
|
229
|
+
static fromJSON(data) {
|
|
230
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
231
|
+
const config = new ExportConfig(data.id);
|
|
232
|
+
config.format = data.format;
|
|
233
|
+
config.sampleFormat = data.sampleFormat;
|
|
234
|
+
config.sampleRate = data.sampleRate;
|
|
235
|
+
config.bitrate = data.bitrate;
|
|
236
|
+
config.quality = data.quality;
|
|
237
|
+
config.rangeId = data.rangeId;
|
|
238
|
+
config.startFrame = data.startFrame;
|
|
239
|
+
config.endFrame = data.endFrame;
|
|
240
|
+
config.filename = data.filename;
|
|
241
|
+
config.folder = (_a = data.folder) !== null && _a !== void 0 ? _a : '';
|
|
242
|
+
config.filenameTemplate = (_b = data.filenameTemplate) !== null && _b !== void 0 ? _b : '%s';
|
|
243
|
+
config.presetId = data.presetId;
|
|
244
|
+
config.exportMasterOnly = data.exportMasterOnly;
|
|
245
|
+
config.trackIds = data.trackIds ? [...data.trackIds] : [];
|
|
246
|
+
config.stemExport = data.stemExport;
|
|
247
|
+
config.splitMono = (_c = data.splitMono) !== null && _c !== void 0 ? _c : false;
|
|
248
|
+
config.ditherType = data.ditherType;
|
|
249
|
+
config.normalize = data.normalize;
|
|
250
|
+
config.normalizeMode = (_d = data.normalizeMode) !== null && _d !== void 0 ? _d : 'peak';
|
|
251
|
+
config.targetPeakDb = data.targetPeakDb;
|
|
252
|
+
config.targetLufs = (_e = data.targetLufs) !== null && _e !== void 0 ? _e : -14;
|
|
253
|
+
config.truePeakLimit = (_f = data.truePeakLimit) !== null && _f !== void 0 ? _f : false;
|
|
254
|
+
config.truePeakCeiling = (_g = data.truePeakCeiling) !== null && _g !== void 0 ? _g : -1.0;
|
|
255
|
+
config.timespans = data.timespans ? data.timespans.map(ts => (Object.assign({}, ts))) : [];
|
|
256
|
+
config.silencePaddingStart = (_h = data.silencePaddingStart) !== null && _h !== void 0 ? _h : 0;
|
|
257
|
+
config.silencePaddingEnd = (_j = data.silencePaddingEnd) !== null && _j !== void 0 ? _j : 0;
|
|
258
|
+
config.trimSilence = (_k = data.trimSilence) !== null && _k !== void 0 ? _k : false;
|
|
259
|
+
config.exportCdMarkers = (_l = data.exportCdMarkers) !== null && _l !== void 0 ? _l : false;
|
|
260
|
+
config.cdMarkerFormat = (_m = data.cdMarkerFormat) !== null && _m !== void 0 ? _m : 'cue';
|
|
261
|
+
config.bwfMetadata = (_o = data.bwfMetadata) !== null && _o !== void 0 ? _o : false;
|
|
262
|
+
config.bwfData = data.bwfData ? Object.assign({}, data.bwfData) : undefined;
|
|
263
|
+
config.reimportAfterExport = (_p = data.reimportAfterExport) !== null && _p !== void 0 ? _p : false;
|
|
264
|
+
return config;
|
|
265
|
+
}
|
|
114
266
|
}
|
|
115
267
|
//# sourceMappingURL=ExportConfig.js.map
|