@drop-ai/core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +655 -237
- 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 +71 -0
- package/dist/analysis/AudioAnalyzer.d.ts.map +1 -0
- package/dist/analysis/AudioAnalyzer.js +569 -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 +104 -0
- package/dist/audio/Auditioner.d.ts.map +1 -0
- package/dist/audio/Auditioner.js +239 -0
- package/dist/audio/Auditioner.js.map +1 -0
- package/dist/audio/BWFMetadata.d.ts +116 -0
- package/dist/audio/BWFMetadata.d.ts.map +1 -0
- package/dist/audio/BWFMetadata.js +394 -0
- package/dist/audio/BWFMetadata.js.map +1 -0
- package/dist/audio/ChannelSplitter.d.ts +37 -0
- package/dist/audio/ChannelSplitter.d.ts.map +1 -0
- package/dist/audio/ChannelSplitter.js +82 -0
- package/dist/audio/ChannelSplitter.js.map +1 -0
- package/dist/audio/ExportAnalyzer.d.ts +39 -0
- package/dist/audio/ExportAnalyzer.d.ts.map +1 -0
- package/dist/audio/ExportAnalyzer.js +76 -0
- package/dist/audio/ExportAnalyzer.js.map +1 -0
- package/dist/audio/LufsNormalizer.d.ts +37 -0
- package/dist/audio/LufsNormalizer.d.ts.map +1 -0
- package/dist/audio/LufsNormalizer.js +217 -0
- package/dist/audio/LufsNormalizer.js.map +1 -0
- package/dist/audio/OfflineExporter.d.ts +1 -6
- package/dist/audio/OfflineExporter.d.ts.map +1 -1
- package/dist/audio/OfflineExporter.js +31 -10
- package/dist/audio/OfflineExporter.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 +21 -0
- package/dist/audio/SampleRateConverter.d.ts.map +1 -0
- package/dist/audio/SampleRateConverter.js +84 -0
- package/dist/audio/SampleRateConverter.js.map +1 -0
- package/dist/audio/SilencePadding.d.ts +29 -0
- package/dist/audio/SilencePadding.d.ts.map +1 -0
- package/dist/audio/SilencePadding.js +86 -0
- package/dist/audio/SilencePadding.js.map +1 -0
- package/dist/audio/SourceCache.d.ts +13 -16
- package/dist/audio/SourceCache.d.ts.map +1 -1
- package/dist/audio/SourceCache.js +21 -33
- package/dist/audio/SourceCache.js.map +1 -1
- package/dist/audio/engine/Declick.d.ts +98 -0
- package/dist/audio/engine/Declick.d.ts.map +1 -0
- package/dist/audio/engine/Declick.js +204 -0
- package/dist/audio/engine/Declick.js.map +1 -0
- package/dist/audio/engine/DiskIO.d.ts +172 -0
- package/dist/audio/engine/DiskIO.d.ts.map +1 -0
- package/dist/audio/engine/DiskIO.js +384 -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 +146 -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.map +1 -1
- package/dist/audio/engine/PlaylistEngine.js +9 -2
- package/dist/audio/engine/PlaylistEngine.js.map +1 -1
- package/dist/audio/engine/PunchRecordManager.d.ts +113 -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 +135 -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 +139 -0
- package/dist/audio/engine/SidechainRouter.d.ts.map +1 -0
- package/dist/audio/engine/SidechainRouter.js +292 -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 +62 -0
- package/dist/audio/export/CDMarkerExporter.d.ts.map +1 -0
- package/dist/audio/export/CDMarkerExporter.js +164 -0
- package/dist/audio/export/CDMarkerExporter.js.map +1 -0
- package/dist/audio/export/ExportGraphBuilder.d.ts +121 -0
- package/dist/audio/export/ExportGraphBuilder.d.ts.map +1 -0
- package/dist/audio/export/ExportGraphBuilder.js +522 -0
- package/dist/audio/export/ExportGraphBuilder.js.map +1 -0
- package/dist/audio/export/ExportPresetManager.d.ts +87 -0
- package/dist/audio/export/ExportPresetManager.d.ts.map +1 -0
- package/dist/audio/export/ExportPresetManager.js +306 -0
- package/dist/audio/export/ExportPresetManager.js.map +1 -0
- 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/FreezeTrackCommand.d.ts.map +1 -1
- package/dist/commands/impl/FreezeTrackCommand.js +37 -36
- package/dist/commands/impl/FreezeTrackCommand.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/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 +27 -0
- package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimRegionToPlayheadCommand.js +69 -0
- package/dist/commands/impl/TrimRegionToPlayheadCommand.js.map +1 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.d.ts +28 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.js +69 -0
- package/dist/commands/impl/TrimRegionToRangeCommand.js.map +1 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts +27 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimToAdjacentRegionCommand.js +77 -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/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/ExportConfig.d.ts +98 -1
- package/dist/domain/ExportConfig.d.ts.map +1 -1
- package/dist/domain/ExportConfig.js +154 -1
- package/dist/domain/ExportConfig.js.map +1 -1
- package/dist/domain/ExportPreset.d.ts +62 -0
- package/dist/domain/ExportPreset.d.ts.map +1 -0
- package/dist/domain/ExportPreset.js +79 -0
- package/dist/domain/ExportPreset.js.map +1 -0
- 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/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/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/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/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/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/ThawList.d.ts +37 -0
- package/dist/domain/ThawList.d.ts.map +1 -0
- package/dist/domain/ThawList.js +73 -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/TriggerBox.d.ts +123 -0
- package/dist/domain/TriggerBox.d.ts.map +1 -0
- package/dist/domain/TriggerBox.js +430 -0
- package/dist/domain/TriggerBox.js.map +1 -0
- package/dist/domain/VCATrack.d.ts +64 -1
- package/dist/domain/VCATrack.d.ts.map +1 -1
- package/dist/domain/VCATrack.js +128 -1
- package/dist/domain/VCATrack.js.map +1 -1
- package/dist/domain/VideoExportConfig.d.ts +117 -0
- package/dist/domain/VideoExportConfig.d.ts.map +1 -0
- package/dist/domain/VideoExportConfig.js +244 -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/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 +199 -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/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/ThawList.d.ts +100 -0
- package/dist/lib/ThawList.d.ts.map +1 -0
- package/dist/lib/ThawList.js +153 -0
- package/dist/lib/ThawList.js.map +1 -0
- package/dist/midi/MidiFileParser.d.ts +33 -0
- package/dist/midi/MidiFileParser.d.ts.map +1 -0
- package/dist/midi/MidiFileParser.js +246 -0
- package/dist/midi/MidiFileParser.js.map +1 -0
- package/dist/midi/MidiFileWriter.d.ts +31 -0
- package/dist/midi/MidiFileWriter.d.ts.map +1 -0
- package/dist/midi/MidiFileWriter.js +160 -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/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/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 +104 -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 +166 -0
- package/dist/processing/MeterDSP.d.ts.map +1 -0
- package/dist/processing/MeterDSP.js +754 -0
- package/dist/processing/MeterDSP.js.map +1 -0
- package/dist/processing/Panner.d.ts +145 -0
- package/dist/processing/Panner.d.ts.map +1 -0
- package/dist/processing/Panner.js +281 -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/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/SurroundPanner.d.ts +122 -0
- package/dist/processing/SurroundPanner.d.ts.map +1 -0
- package/dist/processing/SurroundPanner.js +376 -0
- package/dist/processing/SurroundPanner.js.map +1 -0
- package/dist/processing/TruePeakLimiter.d.ts +34 -0
- package/dist/processing/TruePeakLimiter.d.ts.map +1 -0
- package/dist/processing/TruePeakLimiter.js +144 -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/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 +42 -0
- package/dist/utils/BwfMetadataWriter.d.ts.map +1 -0
- package/dist/utils/BwfMetadataWriter.js +131 -0
- package/dist/utils/BwfMetadataWriter.js.map +1 -0
- package/dist/utils/FilenameTemplate.d.ts +40 -0
- package/dist/utils/FilenameTemplate.d.ts.map +1 -0
- package/dist/utils/FilenameTemplate.js +78 -0
- package/dist/utils/FilenameTemplate.js.map +1 -0
- 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 +17 -0
- package/dist/utils/Mp4ChapterGenerator.d.ts.map +1 -0
- package/dist/utils/Mp4ChapterGenerator.js +33 -0
- package/dist/utils/Mp4ChapterGenerator.js.map +1 -0
- package/dist/utils/OggEncoder.d.ts +20 -20
- package/dist/utils/OggEncoder.d.ts.map +1 -1
- package/dist/utils/OggEncoder.js +114 -50
- package/dist/utils/OggEncoder.js.map +1 -1
- package/dist/utils/TocGenerator.d.ts +17 -0
- package/dist/utils/TocGenerator.d.ts.map +1 -0
- package/dist/utils/TocGenerator.js +47 -0
- package/dist/utils/TocGenerator.js.map +1 -0
- package/package.json +7 -8
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CD Marker Exporter
|
|
3
|
+
*
|
|
4
|
+
* Generates industry-standard marker/chapter files from CDMarker data.
|
|
5
|
+
* Supports CUE sheets, cdrdao TOC files, and Nero-style MP4 chapter files.
|
|
6
|
+
*
|
|
7
|
+
* Ardour reference: libs/ardour/export_handler.cc
|
|
8
|
+
*/
|
|
9
|
+
export class CDMarkerExporter {
|
|
10
|
+
/**
|
|
11
|
+
* Generate a CUE sheet from CD markers.
|
|
12
|
+
*
|
|
13
|
+
* CUE format reference: https://en.wikipedia.org/wiki/Cue_sheet_(computing)
|
|
14
|
+
* Time format: MM:SS:FF where FF = CD frames (75 fps)
|
|
15
|
+
*
|
|
16
|
+
* @param markers Array of CDMarker instances
|
|
17
|
+
* @param filename Audio filename referenced in the CUE sheet
|
|
18
|
+
* @param sampleRate Sample rate of the audio
|
|
19
|
+
* @param albumTitle Optional album title
|
|
20
|
+
* @param albumPerformer Optional album performer
|
|
21
|
+
*/
|
|
22
|
+
static generateCUE(markers, filename, sampleRate, albumTitle = 'Untitled', albumPerformer = '') {
|
|
23
|
+
const sorted = [...markers].sort((a, b) => a.index - b.index);
|
|
24
|
+
const lines = [];
|
|
25
|
+
// Global header
|
|
26
|
+
lines.push(`REM COMMENT "Generated by drop.ai"`);
|
|
27
|
+
if (albumPerformer) {
|
|
28
|
+
lines.push(`PERFORMER "${albumPerformer}"`);
|
|
29
|
+
}
|
|
30
|
+
lines.push(`TITLE "${albumTitle}"`);
|
|
31
|
+
lines.push(`FILE "${filename}" WAVE`);
|
|
32
|
+
for (const marker of sorted) {
|
|
33
|
+
const trackNum = String(marker.index).padStart(2, '0');
|
|
34
|
+
lines.push(` TRACK ${trackNum} AUDIO`);
|
|
35
|
+
if (marker.title) {
|
|
36
|
+
lines.push(` TITLE "${marker.title}"`);
|
|
37
|
+
}
|
|
38
|
+
if (marker.performer) {
|
|
39
|
+
lines.push(` PERFORMER "${marker.performer}"`);
|
|
40
|
+
}
|
|
41
|
+
if (marker.isrc) {
|
|
42
|
+
lines.push(` ISRC ${marker.isrc}`);
|
|
43
|
+
}
|
|
44
|
+
const cdTime = CDMarkerExporter.framesToCDTime(marker.position, sampleRate);
|
|
45
|
+
lines.push(` INDEX 01 ${cdTime}`);
|
|
46
|
+
}
|
|
47
|
+
return lines.join('\n') + '\n';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Generate a cdrdao-compatible TOC (Table of Contents) file.
|
|
51
|
+
*
|
|
52
|
+
* TOC format reference: cdrdao(1) man page
|
|
53
|
+
*
|
|
54
|
+
* @param markers Array of CDMarker instances
|
|
55
|
+
* @param filename Audio filename
|
|
56
|
+
* @param sampleRate Sample rate of the audio
|
|
57
|
+
*/
|
|
58
|
+
static generateTOC(markers, filename, sampleRate) {
|
|
59
|
+
const sorted = [...markers].sort((a, b) => a.index - b.index);
|
|
60
|
+
const lines = [];
|
|
61
|
+
lines.push('CD_DA');
|
|
62
|
+
lines.push('');
|
|
63
|
+
lines.push('// Generated by drop.ai');
|
|
64
|
+
lines.push('');
|
|
65
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
66
|
+
const marker = sorted[i];
|
|
67
|
+
lines.push(`// Track ${marker.index}`);
|
|
68
|
+
lines.push('TRACK AUDIO');
|
|
69
|
+
// CD-TEXT block
|
|
70
|
+
if (marker.title || marker.performer) {
|
|
71
|
+
lines.push('CD_TEXT {');
|
|
72
|
+
lines.push(' LANGUAGE 0 {');
|
|
73
|
+
if (marker.title) {
|
|
74
|
+
lines.push(` TITLE "${marker.title}"`);
|
|
75
|
+
}
|
|
76
|
+
if (marker.performer) {
|
|
77
|
+
lines.push(` PERFORMER "${marker.performer}"`);
|
|
78
|
+
}
|
|
79
|
+
lines.push(' }');
|
|
80
|
+
lines.push('}');
|
|
81
|
+
}
|
|
82
|
+
// ISRC
|
|
83
|
+
if (marker.isrc) {
|
|
84
|
+
lines.push(`ISRC "${marker.isrc}"`);
|
|
85
|
+
}
|
|
86
|
+
// Pregap for first track (standard 2-second pregap)
|
|
87
|
+
if (i === 0 && marker.position === 0) {
|
|
88
|
+
lines.push('PREGAP 00:02:00');
|
|
89
|
+
}
|
|
90
|
+
// File reference with start time
|
|
91
|
+
const cdTime = CDMarkerExporter.framesToCDTime(marker.position, sampleRate);
|
|
92
|
+
// Calculate length if next marker exists
|
|
93
|
+
if (i + 1 < sorted.length) {
|
|
94
|
+
const nextMarker = sorted[i + 1];
|
|
95
|
+
const lengthFrames = nextMarker.position - marker.position;
|
|
96
|
+
const lengthCdTime = CDMarkerExporter.framesToCDTime(lengthFrames, sampleRate);
|
|
97
|
+
lines.push(`FILE "${filename}" ${cdTime} ${lengthCdTime}`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Last track: let cdrdao figure out the remaining length
|
|
101
|
+
lines.push(`FILE "${filename}" ${cdTime}`);
|
|
102
|
+
}
|
|
103
|
+
lines.push('');
|
|
104
|
+
}
|
|
105
|
+
return lines.join('\n');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Generate Nero-style MP4 chapter metadata.
|
|
109
|
+
*
|
|
110
|
+
* Format: CHAPTERXX=HH:MM:SS.mmm / CHAPTERXXNAME=Title
|
|
111
|
+
* This format is understood by ffmpeg via -i chapters.txt.
|
|
112
|
+
*
|
|
113
|
+
* @param markers Array of CDMarker instances
|
|
114
|
+
* @param sampleRate Sample rate of the audio
|
|
115
|
+
*/
|
|
116
|
+
static generateMP4Chapters(markers, sampleRate) {
|
|
117
|
+
const sorted = [...markers].sort((a, b) => a.index - b.index);
|
|
118
|
+
const lines = [];
|
|
119
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
120
|
+
const marker = sorted[i];
|
|
121
|
+
const chapterNum = String(i + 1).padStart(2, '0');
|
|
122
|
+
const timestamp = CDMarkerExporter.framesToTimestamp(marker.position, sampleRate);
|
|
123
|
+
lines.push(`CHAPTER${chapterNum}=${timestamp}`);
|
|
124
|
+
lines.push(`CHAPTER${chapterNum}NAME=${marker.title || `Chapter ${i + 1}`}`);
|
|
125
|
+
}
|
|
126
|
+
return lines.join('\n');
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Convert a sample-frame position to CD time format MM:SS:FF.
|
|
130
|
+
* CD frames run at 75 fps (Red Book standard).
|
|
131
|
+
*
|
|
132
|
+
* @param frames Position in audio sample frames
|
|
133
|
+
* @param sampleRate Audio sample rate (e.g. 44100)
|
|
134
|
+
* @returns Time string in MM:SS:FF format
|
|
135
|
+
*/
|
|
136
|
+
static framesToCDTime(frames, sampleRate) {
|
|
137
|
+
const totalSeconds = frames / sampleRate;
|
|
138
|
+
const minutes = Math.floor(totalSeconds / 60);
|
|
139
|
+
const seconds = Math.floor(totalSeconds % 60);
|
|
140
|
+
const cdFrames = Math.floor((totalSeconds % 1) * 75);
|
|
141
|
+
return (String(minutes).padStart(2, '0') + ':' +
|
|
142
|
+
String(seconds).padStart(2, '0') + ':' +
|
|
143
|
+
String(cdFrames).padStart(2, '0'));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Convert a sample-frame position to HH:MM:SS.mmm timestamp.
|
|
147
|
+
*
|
|
148
|
+
* @param frames Position in audio sample frames
|
|
149
|
+
* @param sampleRate Audio sample rate
|
|
150
|
+
* @returns Time string in HH:MM:SS.mmm format
|
|
151
|
+
*/
|
|
152
|
+
static framesToTimestamp(frames, sampleRate) {
|
|
153
|
+
const totalSeconds = frames / sampleRate;
|
|
154
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
155
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
156
|
+
const seconds = Math.floor(totalSeconds % 60);
|
|
157
|
+
const millis = Math.floor((totalSeconds % 1) * 1000);
|
|
158
|
+
return (String(hours).padStart(2, '0') + ':' +
|
|
159
|
+
String(minutes).padStart(2, '0') + ':' +
|
|
160
|
+
String(seconds).padStart(2, '0') + '.' +
|
|
161
|
+
String(millis).padStart(3, '0'));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=CDMarkerExporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CDMarkerExporter.js","sourceRoot":"","sources":["../../../src/audio/export/CDMarkerExporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { ExportConfig } from '../../domain/ExportConfig';
|
|
2
|
+
/**
|
|
3
|
+
* Analysis results from the analyzer node.
|
|
4
|
+
*/
|
|
5
|
+
export interface ExportAnalysis {
|
|
6
|
+
peakDb: number;
|
|
7
|
+
rmsDb: number;
|
|
8
|
+
lufs: number;
|
|
9
|
+
truePeakDb: number;
|
|
10
|
+
dcOffset: number;
|
|
11
|
+
clippedSamples: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A single processing node in the export graph.
|
|
15
|
+
* Each node receives multi-channel audio (Float32Array[]) and returns processed arrays.
|
|
16
|
+
*/
|
|
17
|
+
export interface ExportNode {
|
|
18
|
+
id: string;
|
|
19
|
+
type: 'source' | 'normalize' | 'limiter' | 'dither' | 'encoder' | 'analyzer' | 'silence_trim' | 'gain' | 'sample_rate_convert';
|
|
20
|
+
process(buffer: Float32Array[], sampleRate: number): Float32Array[] | Promise<Float32Array[]>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Builds a dynamic processing chain for audio export.
|
|
24
|
+
*
|
|
25
|
+
* Instead of a fixed pipeline (as in OfflineExporter), ExportGraphBuilder
|
|
26
|
+
* assembles an ordered sequence of ExportNode instances based on the
|
|
27
|
+
* ExportConfig. Custom nodes can be inserted at any position to extend
|
|
28
|
+
* the chain without modifying the core logic.
|
|
29
|
+
*
|
|
30
|
+
* Ardour reference: libs/ardour/export_graph_builder.cc
|
|
31
|
+
*/
|
|
32
|
+
export declare class ExportGraphBuilder {
|
|
33
|
+
private _nodes;
|
|
34
|
+
private _sampleRate;
|
|
35
|
+
private _channelCount;
|
|
36
|
+
private _config;
|
|
37
|
+
constructor(config: ExportConfig);
|
|
38
|
+
/**
|
|
39
|
+
* Build the processing graph from an ExportConfig.
|
|
40
|
+
* Clears any existing nodes and re-creates the chain.
|
|
41
|
+
*/
|
|
42
|
+
buildFromConfig(config: ExportConfig): void;
|
|
43
|
+
/**
|
|
44
|
+
* Add a node to the graph.
|
|
45
|
+
* @param node The node to insert.
|
|
46
|
+
* @param position Optional zero-based index. Appends if omitted.
|
|
47
|
+
*/
|
|
48
|
+
addNode(node: ExportNode, position?: number): void;
|
|
49
|
+
/**
|
|
50
|
+
* Remove a node by id.
|
|
51
|
+
*/
|
|
52
|
+
removeNode(id: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* Get the current ordered list of nodes (read-only copy).
|
|
55
|
+
*/
|
|
56
|
+
getNodes(): ReadonlyArray<ExportNode>;
|
|
57
|
+
/**
|
|
58
|
+
* Process multi-channel audio through every node in sequence.
|
|
59
|
+
*/
|
|
60
|
+
processBuffer(inputBuffer: Float32Array[]): Promise<Float32Array[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Encode the processed buffer into a Blob according to the config format.
|
|
63
|
+
* This is a lightweight wrapper that delegates to format-specific logic.
|
|
64
|
+
*/
|
|
65
|
+
encode(buffer: Float32Array[]): Promise<Blob>;
|
|
66
|
+
/**
|
|
67
|
+
* Create a normalization node.
|
|
68
|
+
* @param mode 'peak' or 'lufs'
|
|
69
|
+
* @param targetLevel Target level in dB (peak) or LUFS
|
|
70
|
+
*/
|
|
71
|
+
static createNormalizeNode(mode: 'peak' | 'lufs', targetLevel: number): ExportNode;
|
|
72
|
+
/**
|
|
73
|
+
* Create a true-peak limiter node.
|
|
74
|
+
* @param ceiling Maximum true-peak level in dBTP (e.g. -1.0)
|
|
75
|
+
*/
|
|
76
|
+
static createTruePeakLimiterNode(ceiling: number): ExportNode;
|
|
77
|
+
/**
|
|
78
|
+
* Create a dither node.
|
|
79
|
+
* @param type 'none', 'triangular', or 'shaped'
|
|
80
|
+
* @param bitDepth Target bit depth (16 or 24)
|
|
81
|
+
*/
|
|
82
|
+
static createDitherNode(type: 'none' | 'triangular' | 'shaped', bitDepth: number): ExportNode;
|
|
83
|
+
/**
|
|
84
|
+
* Create a silence-trimming node.
|
|
85
|
+
* Removes leading and trailing silence below a threshold.
|
|
86
|
+
* @param thresholdDb Silence threshold in dBFS (e.g. -60)
|
|
87
|
+
*/
|
|
88
|
+
static createSilenceTrimNode(thresholdDb: number): ExportNode;
|
|
89
|
+
/**
|
|
90
|
+
* Create a gain node.
|
|
91
|
+
* @param gainDb Gain in decibels
|
|
92
|
+
*/
|
|
93
|
+
static createGainNode(gainDb: number): ExportNode;
|
|
94
|
+
/**
|
|
95
|
+
* Create a sample-rate conversion node.
|
|
96
|
+
* Uses linear interpolation for simplicity; a production implementation
|
|
97
|
+
* would use windowed sinc interpolation.
|
|
98
|
+
* @param fromRate Source sample rate
|
|
99
|
+
* @param toRate Target sample rate
|
|
100
|
+
*/
|
|
101
|
+
static createSampleRateConverter(fromRate: number, toRate: number): ExportNode;
|
|
102
|
+
/**
|
|
103
|
+
* Create an analyzer node that measures audio characteristics
|
|
104
|
+
* without modifying the signal (pass-through).
|
|
105
|
+
*/
|
|
106
|
+
static createAnalyzerNode(): ExportNode & {
|
|
107
|
+
getAnalysis(): ExportAnalysis;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Encode multi-channel Float32Array[] as a WAV Blob.
|
|
111
|
+
* Supports int16, int24, and float32.
|
|
112
|
+
*/
|
|
113
|
+
private _encodeWav;
|
|
114
|
+
/**
|
|
115
|
+
* Wrap raw Float32 data in a generic Blob (placeholder for formats
|
|
116
|
+
* that require external encoders such as MP3, OGG, FLAC).
|
|
117
|
+
*/
|
|
118
|
+
private _encodeRaw;
|
|
119
|
+
private _writeString;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=ExportGraphBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExportGraphBuilder.d.ts","sourceRoot":"","sources":["../../../src/audio/export/ExportGraphBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,2BAA2B,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,GAAG,qBAAqB,CAAC;IAC/H,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACjG;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAe;gBAElB,MAAM,EAAE,YAAY;IAQhC;;;OAGG;IACI,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAmDlD;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQzD;;OAEG;IACI,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACI,QAAQ,IAAI,aAAa,CAAC,UAAU,CAAC;IAK5C;;OAEG;IACU,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQhF;;;OAGG;IACU,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1D;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU;IAqDlF;;;OAGG;IACH,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IA+B7D;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAkC7F;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IA6C7D;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAgBjD;;;;;;OAMG;IACH,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAgC9E;;;OAGG;IACH,MAAM,CAAC,kBAAkB,IAAI,UAAU,GAAG;QAAE,WAAW,IAAI,cAAc,CAAA;KAAE;IAwE3E;;;OAGG;IACH,OAAO,CAAC,UAAU;IAqFlB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,YAAY;CAKvB"}
|