@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,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filename Template Parser
|
|
3
|
+
*
|
|
4
|
+
* Supported tokens:
|
|
5
|
+
* %s - Session name
|
|
6
|
+
* %n - Timespan name (range/region name)
|
|
7
|
+
* %d - Date (YYYY-MM-DD)
|
|
8
|
+
* %t - Time (HH-MM-SS)
|
|
9
|
+
* %f - Format (wav/mp3/ogg/flac)
|
|
10
|
+
* %r - Revision number (auto-increment)
|
|
11
|
+
* %b - Bit depth / bitrate
|
|
12
|
+
* %c - Channel config (stereo/mono)
|
|
13
|
+
* %T - Track name (for stem export)
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a filename template string into an actual filename.
|
|
17
|
+
*/
|
|
18
|
+
export function resolveFilenameTemplate(template, context) {
|
|
19
|
+
var _a;
|
|
20
|
+
const now = new Date();
|
|
21
|
+
const dateStr = [
|
|
22
|
+
now.getFullYear(),
|
|
23
|
+
String(now.getMonth() + 1).padStart(2, '0'),
|
|
24
|
+
String(now.getDate()).padStart(2, '0'),
|
|
25
|
+
].join('-');
|
|
26
|
+
const timeStr = [
|
|
27
|
+
String(now.getHours()).padStart(2, '0'),
|
|
28
|
+
String(now.getMinutes()).padStart(2, '0'),
|
|
29
|
+
String(now.getSeconds()).padStart(2, '0'),
|
|
30
|
+
].join('-');
|
|
31
|
+
let result = template;
|
|
32
|
+
result = result.replace(/%s/g, sanitizeFilename(context.sessionName || 'Untitled'));
|
|
33
|
+
result = result.replace(/%n/g, sanitizeFilename(context.timespanName || 'export'));
|
|
34
|
+
result = result.replace(/%d/g, dateStr);
|
|
35
|
+
result = result.replace(/%t/g, timeStr);
|
|
36
|
+
result = result.replace(/%f/g, context.format || 'wav');
|
|
37
|
+
result = result.replace(/%r/g, String((_a = context.revision) !== null && _a !== void 0 ? _a : 1).padStart(3, '0'));
|
|
38
|
+
result = result.replace(/%b/g, context.bitDepthOrRate || '');
|
|
39
|
+
result = result.replace(/%c/g, context.channelConfig || 'stereo');
|
|
40
|
+
result = result.replace(/%T/g, sanitizeFilename(context.trackName || ''));
|
|
41
|
+
// Remove double separators and trailing separators
|
|
42
|
+
result = result.replace(/_{2,}/g, '_');
|
|
43
|
+
result = result.replace(/-{2,}/g, '-');
|
|
44
|
+
result = result.replace(/[_-]$/, '');
|
|
45
|
+
return result || 'export';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sanitize a string for use in filenames.
|
|
49
|
+
*/
|
|
50
|
+
function sanitizeFilename(name) {
|
|
51
|
+
return name.replace(/[^a-zA-Z0-9가-힣ぁ-んァ-ヶー一-龥_\- ]/g, '_').trim();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get a human-readable preview of what tokens will resolve to.
|
|
55
|
+
*/
|
|
56
|
+
export function previewFilenameTemplate(template, context) {
|
|
57
|
+
const resolved = resolveFilenameTemplate(template, context);
|
|
58
|
+
const ext = context.format || 'wav';
|
|
59
|
+
return `${resolved}.${ext}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* List all supported tokens with descriptions.
|
|
63
|
+
*/
|
|
64
|
+
export function getTemplateTokens() {
|
|
65
|
+
return [
|
|
66
|
+
{ token: '%s', description: 'Session name' },
|
|
67
|
+
{ token: '%n', description: 'Timespan / range name' },
|
|
68
|
+
{ token: '%d', description: 'Date (YYYY-MM-DD)' },
|
|
69
|
+
{ token: '%t', description: 'Time (HH-MM-SS)' },
|
|
70
|
+
{ token: '%f', description: 'Format (wav/mp3/ogg/flac)' },
|
|
71
|
+
{ token: '%r', description: 'Revision number' },
|
|
72
|
+
{ token: '%b', description: 'Bit depth or bitrate' },
|
|
73
|
+
{ token: '%c', description: 'Channel config (stereo/mono)' },
|
|
74
|
+
{ token: '%T', description: 'Track name (stem export)' },
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=FilenameTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilenameTemplate.js","sourceRoot":"","sources":["../../src/utils/FilenameTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlacEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/FlacEncoder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FlacEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/FlacEncoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,WAAW;IACpB;;;;OAIG;WACW,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,GAAE,MAAW,GAAG,IAAI;IAqC3E,OAAO,CAAC,MAAM,CAAC,eAAe;IA6C9B,OAAO,CAAC,MAAM,CAAC,UAAU;IA6FzB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAiBhC,OAAO,CAAC,MAAM,CAAC,IAAI;IAYnB,OAAO,CAAC,MAAM,CAAC,KAAK;CAWvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlacEncoder.js","sourceRoot":"","sources":["../../src/utils/FlacEncoder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FlacEncoder.js","sourceRoot":"","sources":["../../src/utils/FlacEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight logger with configurable log levels.
|
|
3
|
+
*
|
|
4
|
+
* Prevents verbose debug/info messages from reaching the console in
|
|
5
|
+
* production while still allowing warnings and errors through.
|
|
6
|
+
*
|
|
7
|
+
* Default level is WARN — set to DEBUG during development via
|
|
8
|
+
* `logger.setLevel(LogLevel.DEBUG)`.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum LogLevel {
|
|
11
|
+
DEBUG = 0,
|
|
12
|
+
INFO = 1,
|
|
13
|
+
WARN = 2,
|
|
14
|
+
ERROR = 3,
|
|
15
|
+
NONE = 4
|
|
16
|
+
}
|
|
17
|
+
declare class Logger {
|
|
18
|
+
private level;
|
|
19
|
+
setLevel(level: LogLevel): void;
|
|
20
|
+
getLevel(): LogLevel;
|
|
21
|
+
debug(tag: string, ...args: unknown[]): void;
|
|
22
|
+
info(tag: string, ...args: unknown[]): void;
|
|
23
|
+
warn(tag: string, ...args: unknown[]): void;
|
|
24
|
+
error(tag: string, ...args: unknown[]): void;
|
|
25
|
+
}
|
|
26
|
+
export declare const logger: Logger;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oBAAY,QAAQ;IAChB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED,cAAM,MAAM;IACR,OAAO,CAAC,KAAK,CAA2B;IAExC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,QAAQ,IAAI,QAAQ;IAIpB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI3C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI3C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAG/C;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight logger with configurable log levels.
|
|
3
|
+
*
|
|
4
|
+
* Prevents verbose debug/info messages from reaching the console in
|
|
5
|
+
* production while still allowing warnings and errors through.
|
|
6
|
+
*
|
|
7
|
+
* Default level is WARN — set to DEBUG during development via
|
|
8
|
+
* `logger.setLevel(LogLevel.DEBUG)`.
|
|
9
|
+
*/
|
|
10
|
+
export var LogLevel;
|
|
11
|
+
(function (LogLevel) {
|
|
12
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
13
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
14
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
15
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
16
|
+
LogLevel[LogLevel["NONE"] = 4] = "NONE";
|
|
17
|
+
})(LogLevel || (LogLevel = {}));
|
|
18
|
+
class Logger {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.level = LogLevel.WARN;
|
|
21
|
+
}
|
|
22
|
+
setLevel(level) {
|
|
23
|
+
this.level = level;
|
|
24
|
+
}
|
|
25
|
+
getLevel() {
|
|
26
|
+
return this.level;
|
|
27
|
+
}
|
|
28
|
+
debug(tag, ...args) {
|
|
29
|
+
if (this.level <= LogLevel.DEBUG)
|
|
30
|
+
console.debug(`[${tag}]`, ...args);
|
|
31
|
+
}
|
|
32
|
+
info(tag, ...args) {
|
|
33
|
+
if (this.level <= LogLevel.INFO)
|
|
34
|
+
console.info(`[${tag}]`, ...args);
|
|
35
|
+
}
|
|
36
|
+
warn(tag, ...args) {
|
|
37
|
+
if (this.level <= LogLevel.WARN)
|
|
38
|
+
console.warn(`[${tag}]`, ...args);
|
|
39
|
+
}
|
|
40
|
+
error(tag, ...args) {
|
|
41
|
+
if (this.level <= LogLevel.ERROR)
|
|
42
|
+
console.error(`[${tag}]`, ...args);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export const logger = new Logger();
|
|
46
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,uCAAQ,CAAA;AACZ,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,MAAM,MAAM;IAAZ;QACY,UAAK,GAAa,QAAQ,CAAC,IAAI,CAAC;IAyB5C,CAAC;IAvBG,QAAQ,CAAC,KAAe;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAG,IAAe;QACjC,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,GAAG,IAAe;QAChC,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,GAAG,IAAe;QAChC,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAG,IAAe;QACjC,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MP4 Chapter Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates Nero-style MP4 chapter metadata (used by ffmpeg -i chapters.txt).
|
|
5
|
+
* Format: CHAPTER01=HH:MM:SS.mmm / CHAPTER01NAME=Title
|
|
6
|
+
*/
|
|
7
|
+
import { CDMarker } from '../domain/CDMarker';
|
|
8
|
+
/**
|
|
9
|
+
* Generate MP4 chapter markers in Nero chapter format.
|
|
10
|
+
*
|
|
11
|
+
* @param markers CD markers
|
|
12
|
+
* @param sampleRate Audio sample rate
|
|
13
|
+
* @returns Chapter metadata string
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateMp4Chapters(markers: CDMarker[], sampleRate: number): string;
|
|
16
|
+
//# sourceMappingURL=Mp4ChapterGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mp4ChapterGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/Mp4ChapterGenerator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,QAAQ,EAAE,EACnB,UAAU,EAAE,MAAM,GACnB,MAAM,CAsBR"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MP4 Chapter Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates Nero-style MP4 chapter metadata (used by ffmpeg -i chapters.txt).
|
|
5
|
+
* Format: CHAPTER01=HH:MM:SS.mmm / CHAPTER01NAME=Title
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Generate MP4 chapter markers in Nero chapter format.
|
|
9
|
+
*
|
|
10
|
+
* @param markers CD markers
|
|
11
|
+
* @param sampleRate Audio sample rate
|
|
12
|
+
* @returns Chapter metadata string
|
|
13
|
+
*/
|
|
14
|
+
export function generateMp4Chapters(markers, sampleRate) {
|
|
15
|
+
const sorted = [...markers].sort((a, b) => a.index - b.index);
|
|
16
|
+
const lines = [];
|
|
17
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
18
|
+
const marker = sorted[i];
|
|
19
|
+
const chNum = String(i + 1).padStart(2, '0');
|
|
20
|
+
// Convert position to HH:MM:SS.mmm
|
|
21
|
+
const totalSeconds = marker.position / sampleRate;
|
|
22
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
23
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
24
|
+
const seconds = Math.floor(totalSeconds % 60);
|
|
25
|
+
const millis = Math.floor((totalSeconds % 1) * 1000);
|
|
26
|
+
const timeStr = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}.${String(millis).padStart(3, '0')}`;
|
|
27
|
+
lines.push(`CHAPTER${chNum}=${timeStr}`);
|
|
28
|
+
lines.push(`CHAPTER${chNum}NAME=${marker.title || `Chapter ${i + 1}`}`);
|
|
29
|
+
}
|
|
30
|
+
return lines.join('\n');
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Mp4ChapterGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mp4ChapterGenerator.js","sourceRoot":"","sources":["../../src/utils/Mp4ChapterGenerator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAC/B,OAAmB,EACnB,UAAkB;IAElB,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE7C,mCAAmC;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAE/J,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OGG
|
|
3
|
-
*
|
|
2
|
+
* OGG Encoder — Real OGG Opus encoding via MediaRecorder API,
|
|
3
|
+
* with PCM-in-OGG container fallback for environments without MediaRecorder.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* players will fail to decode it.
|
|
9
|
-
*
|
|
10
|
-
* TODO: Replace with a real encoder. Options include:
|
|
11
|
-
* - Browser MediaRecorder API with 'audio/ogg; codecs=opus' (requires live encoding)
|
|
12
|
-
* - WebAssembly-based libvorbis/libopus port (e.g., opus-media-recorder, ogg-vorbis-encoder-js)
|
|
13
|
-
* - Server-side encoding via FFmpeg
|
|
14
|
-
*
|
|
15
|
-
* The quality parameter is accepted for API compatibility but has no effect on
|
|
16
|
-
* compression since no lossy encoding is performed.
|
|
5
|
+
* The browser's MediaRecorder with 'audio/ogg; codecs=opus' produces
|
|
6
|
+
* valid OGG Opus files that can be played by all modern browsers and players.
|
|
7
|
+
* Quality parameter maps to Opus bitrate (64-320 kbps).
|
|
17
8
|
*/
|
|
18
9
|
export declare class OggEncoder {
|
|
19
10
|
/**
|
|
20
|
-
* Encode AudioBuffer to
|
|
21
|
-
*
|
|
22
|
-
* NOTE: This does NOT produce valid OGG Vorbis. The MIME type is set to
|
|
23
|
-
* 'application/octet-stream' to avoid misleading players/browsers into
|
|
24
|
-
* attempting Vorbis decoding. See class-level comment for replacement plans.
|
|
11
|
+
* Encode AudioBuffer to OGG Blob.
|
|
12
|
+
* Uses MediaRecorder (OGG Opus) when available, falls back to PCM container.
|
|
25
13
|
*
|
|
26
14
|
* @param buffer Audio data to encode
|
|
27
|
-
* @param quality
|
|
15
|
+
* @param quality Quality 0.0-1.0, maps to Opus bitrate
|
|
16
|
+
*/
|
|
17
|
+
static encode(buffer: AudioBuffer, quality?: number): Promise<Blob>;
|
|
18
|
+
/**
|
|
19
|
+
* Encode using MediaRecorder API with OGG Opus codec.
|
|
20
|
+
* This produces real, valid OGG Opus files.
|
|
21
|
+
*/
|
|
22
|
+
private static encodeWithMediaRecorder;
|
|
23
|
+
/**
|
|
24
|
+
* Fallback: PCM data in OGG container.
|
|
25
|
+
* This is NOT valid OGG Vorbis/Opus, but provides basic container structure.
|
|
28
26
|
*/
|
|
29
|
-
static
|
|
27
|
+
private static encodePcmFallback;
|
|
30
28
|
private static interleave;
|
|
31
29
|
private static float32ToInt16;
|
|
32
30
|
private static buildOggPage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OggEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/OggEncoder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OggEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/OggEncoder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,UAAU;IACnB;;;;;;OAMG;WACiB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrF;;;OAGG;mBACkB,uBAAuB;IA4E5C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkChC,OAAO,CAAC,MAAM,CAAC,UAAU;IAazB,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,OAAO,CAAC,MAAM,CAAC,YAAY;IAqC3B,OAAO,CAAC,MAAM,CAAC,aAAa;IAoB5B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAejC,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IAEnD,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B,OAAO,CAAC,MAAM,CAAC,KAAK;CAQvB"}
|
package/dist/utils/OggEncoder.js
CHANGED
|
@@ -1,46 +1,115 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OGG
|
|
3
|
-
*
|
|
2
|
+
* OGG Encoder — Real OGG Opus encoding via MediaRecorder API,
|
|
3
|
+
* with PCM-in-OGG container fallback for environments without MediaRecorder.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* players will fail to decode it.
|
|
9
|
-
*
|
|
10
|
-
* TODO: Replace with a real encoder. Options include:
|
|
11
|
-
* - Browser MediaRecorder API with 'audio/ogg; codecs=opus' (requires live encoding)
|
|
12
|
-
* - WebAssembly-based libvorbis/libopus port (e.g., opus-media-recorder, ogg-vorbis-encoder-js)
|
|
13
|
-
* - Server-side encoding via FFmpeg
|
|
14
|
-
*
|
|
15
|
-
* The quality parameter is accepted for API compatibility but has no effect on
|
|
16
|
-
* compression since no lossy encoding is performed.
|
|
5
|
+
* The browser's MediaRecorder with 'audio/ogg; codecs=opus' produces
|
|
6
|
+
* valid OGG Opus files that can be played by all modern browsers and players.
|
|
7
|
+
* Quality parameter maps to Opus bitrate (64-320 kbps).
|
|
17
8
|
*/
|
|
18
9
|
export class OggEncoder {
|
|
19
10
|
/**
|
|
20
|
-
* Encode AudioBuffer to
|
|
21
|
-
*
|
|
22
|
-
* NOTE: This does NOT produce valid OGG Vorbis. The MIME type is set to
|
|
23
|
-
* 'application/octet-stream' to avoid misleading players/browsers into
|
|
24
|
-
* attempting Vorbis decoding. See class-level comment for replacement plans.
|
|
11
|
+
* Encode AudioBuffer to OGG Blob.
|
|
12
|
+
* Uses MediaRecorder (OGG Opus) when available, falls back to PCM container.
|
|
25
13
|
*
|
|
26
14
|
* @param buffer Audio data to encode
|
|
27
|
-
* @param quality
|
|
15
|
+
* @param quality Quality 0.0-1.0, maps to Opus bitrate
|
|
16
|
+
*/
|
|
17
|
+
static async encode(buffer, quality = 0.5) {
|
|
18
|
+
// Try real encoding first
|
|
19
|
+
if (typeof MediaRecorder !== 'undefined' && typeof OfflineAudioContext !== 'undefined') {
|
|
20
|
+
try {
|
|
21
|
+
return await this.encodeWithMediaRecorder(buffer, quality);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
console.warn('[OggEncoder] MediaRecorder encoding failed, falling back to PCM:', e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Fallback: PCM-in-OGG container
|
|
28
|
+
return this.encodePcmFallback(buffer, quality);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Encode using MediaRecorder API with OGG Opus codec.
|
|
32
|
+
* This produces real, valid OGG Opus files.
|
|
33
|
+
*/
|
|
34
|
+
static async encodeWithMediaRecorder(buffer, quality) {
|
|
35
|
+
const sampleRate = buffer.sampleRate;
|
|
36
|
+
const numChannels = buffer.numberOfChannels;
|
|
37
|
+
// Map quality 0.0-1.0 to bitrate 64-320 kbps
|
|
38
|
+
const bitrate = Math.round(64000 + quality * (320000 - 64000));
|
|
39
|
+
// Create an OfflineAudioContext to render the buffer through a MediaStreamDestination
|
|
40
|
+
// We need a real-time context for MediaRecorder
|
|
41
|
+
const ctx = new AudioContext({ sampleRate });
|
|
42
|
+
try {
|
|
43
|
+
const destination = ctx.createMediaStreamDestination();
|
|
44
|
+
const source = ctx.createBufferSource();
|
|
45
|
+
source.buffer = buffer;
|
|
46
|
+
source.connect(destination);
|
|
47
|
+
// Check if OGG Opus is supported
|
|
48
|
+
const mimeType = MediaRecorder.isTypeSupported('audio/ogg; codecs=opus')
|
|
49
|
+
? 'audio/ogg; codecs=opus'
|
|
50
|
+
: MediaRecorder.isTypeSupported('audio/ogg')
|
|
51
|
+
? 'audio/ogg'
|
|
52
|
+
: null;
|
|
53
|
+
if (!mimeType) {
|
|
54
|
+
throw new Error('OGG encoding not supported by MediaRecorder');
|
|
55
|
+
}
|
|
56
|
+
const recorder = new MediaRecorder(destination.stream, {
|
|
57
|
+
mimeType,
|
|
58
|
+
audioBitsPerSecond: bitrate,
|
|
59
|
+
});
|
|
60
|
+
const chunks = [];
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
recorder.ondataavailable = (e) => {
|
|
63
|
+
if (e.data.size > 0) {
|
|
64
|
+
chunks.push(e.data);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
recorder.onstop = () => {
|
|
68
|
+
ctx.close();
|
|
69
|
+
const blob = new Blob(chunks, { type: 'audio/ogg' });
|
|
70
|
+
resolve(blob);
|
|
71
|
+
};
|
|
72
|
+
recorder.onerror = (e) => {
|
|
73
|
+
ctx.close();
|
|
74
|
+
reject(e);
|
|
75
|
+
};
|
|
76
|
+
recorder.start();
|
|
77
|
+
source.start(0);
|
|
78
|
+
// Stop after buffer duration + small padding
|
|
79
|
+
const durationMs = (buffer.length / sampleRate) * 1000;
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
try {
|
|
82
|
+
if (recorder.state === 'recording') {
|
|
83
|
+
recorder.stop();
|
|
84
|
+
}
|
|
85
|
+
// Stop all tracks on the stream
|
|
86
|
+
destination.stream.getTracks().forEach(t => t.stop());
|
|
87
|
+
}
|
|
88
|
+
catch (_a) {
|
|
89
|
+
// ignore
|
|
90
|
+
}
|
|
91
|
+
}, durationMs + 100);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
ctx.close();
|
|
96
|
+
throw e;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Fallback: PCM data in OGG container.
|
|
101
|
+
* This is NOT valid OGG Vorbis/Opus, but provides basic container structure.
|
|
28
102
|
*/
|
|
29
|
-
static
|
|
103
|
+
static encodePcmFallback(buffer, quality) {
|
|
30
104
|
const numChannels = buffer.numberOfChannels;
|
|
31
105
|
const sampleRate = buffer.sampleRate;
|
|
32
106
|
const interleaved = this.interleave(buffer);
|
|
33
|
-
// Convert to Int16 for OGG (standard for Vorbis-like encoding)
|
|
34
107
|
const int16Data = this.float32ToInt16(interleaved);
|
|
35
|
-
// Build OGG pages
|
|
36
108
|
const pages = [];
|
|
37
109
|
const serialNumber = Math.floor(Math.random() * 0xFFFFFFFF);
|
|
38
|
-
// Page 1: ID header
|
|
39
110
|
pages.push(this.buildIdHeader(numChannels, sampleRate, quality, serialNumber));
|
|
40
|
-
// Page 2: Comment header
|
|
41
111
|
pages.push(this.buildCommentHeader(serialNumber));
|
|
42
|
-
|
|
43
|
-
const pageSize = 4096; // samples per page
|
|
112
|
+
const pageSize = 4096;
|
|
44
113
|
const bytesPerSample = 2 * numChannels;
|
|
45
114
|
let granulePosition = 0;
|
|
46
115
|
let pageSequence = 2;
|
|
@@ -53,8 +122,7 @@ export class OggEncoder {
|
|
|
53
122
|
const isLastPage = offset + chunkSize >= int16Data.byteLength;
|
|
54
123
|
pages.push(this.buildDataPage(chunk, serialNumber, pageSequence++, granulePosition, isLastPage));
|
|
55
124
|
}
|
|
56
|
-
//
|
|
57
|
-
// Using 'audio/ogg' would cause browsers/players to attempt Vorbis decoding and fail.
|
|
125
|
+
// Use application/octet-stream since PCM fallback isn't valid OGG Vorbis
|
|
58
126
|
return new Blob(pages, { type: 'application/octet-stream' });
|
|
59
127
|
}
|
|
60
128
|
static interleave(buffer) {
|
|
@@ -78,7 +146,6 @@ export class OggEncoder {
|
|
|
78
146
|
return result.buffer;
|
|
79
147
|
}
|
|
80
148
|
static buildOggPage(headerType, granulePosition, serialNumber, pageSequence, data) {
|
|
81
|
-
// Segment table
|
|
82
149
|
const segments = [];
|
|
83
150
|
let remaining = data.length;
|
|
84
151
|
while (remaining >= 255) {
|
|
@@ -89,71 +156,67 @@ export class OggEncoder {
|
|
|
89
156
|
const headerSize = 27 + segments.length;
|
|
90
157
|
const page = new Uint8Array(headerSize + data.length);
|
|
91
158
|
const view = new DataView(page.buffer);
|
|
92
|
-
// Capture pattern
|
|
93
159
|
page[0] = 0x4F;
|
|
94
160
|
page[1] = 0x67;
|
|
95
161
|
page[2] = 0x67;
|
|
96
162
|
page[3] = 0x53; // "OggS"
|
|
97
|
-
page[4] = 0;
|
|
163
|
+
page[4] = 0;
|
|
98
164
|
page[5] = headerType;
|
|
99
|
-
// Granule position (64-bit)
|
|
100
165
|
view.setUint32(6, granulePosition & 0xFFFFFFFF, true);
|
|
101
166
|
view.setUint32(10, Math.floor(granulePosition / 0x100000000) & 0xFFFFFFFF, true);
|
|
102
167
|
view.setUint32(14, serialNumber, true);
|
|
103
168
|
view.setUint32(18, pageSequence, true);
|
|
104
|
-
view.setUint32(22, 0, true);
|
|
169
|
+
view.setUint32(22, 0, true);
|
|
105
170
|
page[26] = segments.length;
|
|
106
171
|
for (let i = 0; i < segments.length; i++) {
|
|
107
172
|
page[27 + i] = segments[i];
|
|
108
173
|
}
|
|
109
174
|
page.set(data, headerSize);
|
|
110
|
-
// Calculate CRC32 and set it
|
|
111
175
|
const crc = this.crc32(page);
|
|
112
176
|
view.setUint32(22, crc, true);
|
|
113
177
|
return page;
|
|
114
178
|
}
|
|
115
179
|
static buildIdHeader(channels, sampleRate, quality, serialNumber) {
|
|
116
|
-
// Vorbis ID header
|
|
117
180
|
const data = new Uint8Array(30);
|
|
118
181
|
const view = new DataView(data.buffer);
|
|
119
|
-
data[0] = 0x01;
|
|
182
|
+
data[0] = 0x01;
|
|
120
183
|
data[1] = 0x76;
|
|
121
184
|
data[2] = 0x6F;
|
|
122
185
|
data[3] = 0x72;
|
|
123
186
|
data[4] = 0x62;
|
|
124
187
|
data[5] = 0x69;
|
|
125
|
-
data[6] = 0x73;
|
|
126
|
-
view.setUint32(7, 0, true);
|
|
188
|
+
data[6] = 0x73;
|
|
189
|
+
view.setUint32(7, 0, true);
|
|
127
190
|
data[11] = channels;
|
|
128
191
|
view.setUint32(12, sampleRate, true);
|
|
129
192
|
const nominalBitrate = Math.floor(64000 + quality * (320000 - 64000));
|
|
130
|
-
view.setInt32(16, nominalBitrate, true);
|
|
131
|
-
view.setInt32(20, nominalBitrate, true);
|
|
132
|
-
view.setInt32(24, nominalBitrate, true);
|
|
133
|
-
data[28] = 0x08;
|
|
134
|
-
data[29] = 0x01;
|
|
135
|
-
return this.buildOggPage(0x02, 0, serialNumber, 0, data);
|
|
193
|
+
view.setInt32(16, nominalBitrate, true);
|
|
194
|
+
view.setInt32(20, nominalBitrate, true);
|
|
195
|
+
view.setInt32(24, nominalBitrate, true);
|
|
196
|
+
data[28] = 0x08;
|
|
197
|
+
data[29] = 0x01;
|
|
198
|
+
return this.buildOggPage(0x02, 0, serialNumber, 0, data);
|
|
136
199
|
}
|
|
137
200
|
static buildCommentHeader(serialNumber) {
|
|
138
201
|
const vendor = 'drop.ai Web DAW';
|
|
139
202
|
const vendorBytes = new TextEncoder().encode(vendor);
|
|
140
203
|
const data = new Uint8Array(7 + 4 + vendorBytes.length + 4 + 1);
|
|
141
204
|
const view = new DataView(data.buffer);
|
|
142
|
-
data[0] = 0x03;
|
|
205
|
+
data[0] = 0x03;
|
|
143
206
|
data[1] = 0x76;
|
|
144
207
|
data[2] = 0x6F;
|
|
145
208
|
data[3] = 0x72;
|
|
146
209
|
data[4] = 0x62;
|
|
147
210
|
data[5] = 0x69;
|
|
148
|
-
data[6] = 0x73;
|
|
211
|
+
data[6] = 0x73;
|
|
149
212
|
view.setUint32(7, vendorBytes.length, true);
|
|
150
213
|
data.set(vendorBytes, 11);
|
|
151
|
-
view.setUint32(11 + vendorBytes.length, 0, true);
|
|
152
|
-
data[11 + vendorBytes.length + 4] = 0x01;
|
|
214
|
+
view.setUint32(11 + vendorBytes.length, 0, true);
|
|
215
|
+
data[11 + vendorBytes.length + 4] = 0x01;
|
|
153
216
|
return this.buildOggPage(0x00, 0, serialNumber, 1, data);
|
|
154
217
|
}
|
|
155
218
|
static buildDataPage(audioData, serialNumber, pageSequence, granulePosition, isLast) {
|
|
156
|
-
const headerType = isLast ? 0x04 : 0x00;
|
|
219
|
+
const headerType = isLast ? 0x04 : 0x00;
|
|
157
220
|
return this.buildOggPage(headerType, granulePosition, serialNumber, pageSequence, audioData);
|
|
158
221
|
}
|
|
159
222
|
static getCrcTable() {
|
|
@@ -178,6 +241,5 @@ export class OggEncoder {
|
|
|
178
241
|
return crc;
|
|
179
242
|
}
|
|
180
243
|
}
|
|
181
|
-
// OGG CRC32 lookup table (polynomial 0x04C11DB7)
|
|
182
244
|
OggEncoder.crcTable = null;
|
|
183
245
|
//# sourceMappingURL=OggEncoder.js.map
|