@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.
Files changed (301) hide show
  1. package/README.md +655 -237
  2. package/dist/actions/ActionRegistry.d.ts.map +1 -1
  3. package/dist/actions/ActionRegistry.js +7 -2
  4. package/dist/actions/ActionRegistry.js.map +1 -1
  5. package/dist/actions/types.d.ts +7 -1
  6. package/dist/actions/types.d.ts.map +1 -1
  7. package/dist/analysis/AudioAnalyzer.d.ts +71 -0
  8. package/dist/analysis/AudioAnalyzer.d.ts.map +1 -0
  9. package/dist/analysis/AudioAnalyzer.js +569 -0
  10. package/dist/analysis/AudioAnalyzer.js.map +1 -0
  11. package/dist/audio/AudioEngine.d.ts +14 -1
  12. package/dist/audio/AudioEngine.d.ts.map +1 -1
  13. package/dist/audio/AudioEngine.js +115 -35
  14. package/dist/audio/AudioEngine.js.map +1 -1
  15. package/dist/audio/Auditioner.d.ts +104 -0
  16. package/dist/audio/Auditioner.d.ts.map +1 -0
  17. package/dist/audio/Auditioner.js +239 -0
  18. package/dist/audio/Auditioner.js.map +1 -0
  19. package/dist/audio/BWFMetadata.d.ts +116 -0
  20. package/dist/audio/BWFMetadata.d.ts.map +1 -0
  21. package/dist/audio/BWFMetadata.js +394 -0
  22. package/dist/audio/BWFMetadata.js.map +1 -0
  23. package/dist/audio/ChannelSplitter.d.ts +37 -0
  24. package/dist/audio/ChannelSplitter.d.ts.map +1 -0
  25. package/dist/audio/ChannelSplitter.js +82 -0
  26. package/dist/audio/ChannelSplitter.js.map +1 -0
  27. package/dist/audio/ExportAnalyzer.d.ts +39 -0
  28. package/dist/audio/ExportAnalyzer.d.ts.map +1 -0
  29. package/dist/audio/ExportAnalyzer.js +76 -0
  30. package/dist/audio/ExportAnalyzer.js.map +1 -0
  31. package/dist/audio/LufsNormalizer.d.ts +37 -0
  32. package/dist/audio/LufsNormalizer.d.ts.map +1 -0
  33. package/dist/audio/LufsNormalizer.js +217 -0
  34. package/dist/audio/LufsNormalizer.js.map +1 -0
  35. package/dist/audio/OfflineExporter.d.ts +1 -6
  36. package/dist/audio/OfflineExporter.d.ts.map +1 -1
  37. package/dist/audio/OfflineExporter.js +31 -10
  38. package/dist/audio/OfflineExporter.js.map +1 -1
  39. package/dist/audio/RoutingGraph.d.ts +134 -0
  40. package/dist/audio/RoutingGraph.d.ts.map +1 -0
  41. package/dist/audio/RoutingGraph.js +547 -0
  42. package/dist/audio/RoutingGraph.js.map +1 -0
  43. package/dist/audio/SampleRateConverter.d.ts +21 -0
  44. package/dist/audio/SampleRateConverter.d.ts.map +1 -0
  45. package/dist/audio/SampleRateConverter.js +84 -0
  46. package/dist/audio/SampleRateConverter.js.map +1 -0
  47. package/dist/audio/SilencePadding.d.ts +29 -0
  48. package/dist/audio/SilencePadding.d.ts.map +1 -0
  49. package/dist/audio/SilencePadding.js +86 -0
  50. package/dist/audio/SilencePadding.js.map +1 -0
  51. package/dist/audio/SourceCache.d.ts +13 -16
  52. package/dist/audio/SourceCache.d.ts.map +1 -1
  53. package/dist/audio/SourceCache.js +21 -33
  54. package/dist/audio/SourceCache.js.map +1 -1
  55. package/dist/audio/engine/Declick.d.ts +98 -0
  56. package/dist/audio/engine/Declick.d.ts.map +1 -0
  57. package/dist/audio/engine/Declick.js +204 -0
  58. package/dist/audio/engine/Declick.js.map +1 -0
  59. package/dist/audio/engine/DiskIO.d.ts +172 -0
  60. package/dist/audio/engine/DiskIO.d.ts.map +1 -0
  61. package/dist/audio/engine/DiskIO.js +384 -0
  62. package/dist/audio/engine/DiskIO.js.map +1 -0
  63. package/dist/audio/engine/LatencyCompensator.d.ts +46 -0
  64. package/dist/audio/engine/LatencyCompensator.d.ts.map +1 -0
  65. package/dist/audio/engine/LatencyCompensator.js +84 -0
  66. package/dist/audio/engine/LatencyCompensator.js.map +1 -0
  67. package/dist/audio/engine/MultiTrackRecorder.d.ts +146 -0
  68. package/dist/audio/engine/MultiTrackRecorder.d.ts.map +1 -0
  69. package/dist/audio/engine/MultiTrackRecorder.js +359 -0
  70. package/dist/audio/engine/MultiTrackRecorder.js.map +1 -0
  71. package/dist/audio/engine/PlaylistEngine.d.ts.map +1 -1
  72. package/dist/audio/engine/PlaylistEngine.js +9 -2
  73. package/dist/audio/engine/PlaylistEngine.js.map +1 -1
  74. package/dist/audio/engine/PunchRecordManager.d.ts +113 -0
  75. package/dist/audio/engine/PunchRecordManager.d.ts.map +1 -0
  76. package/dist/audio/engine/PunchRecordManager.js +191 -0
  77. package/dist/audio/engine/PunchRecordManager.js.map +1 -0
  78. package/dist/audio/engine/RoutingGraph.d.ts +135 -0
  79. package/dist/audio/engine/RoutingGraph.d.ts.map +1 -0
  80. package/dist/audio/engine/RoutingGraph.js +436 -0
  81. package/dist/audio/engine/RoutingGraph.js.map +1 -0
  82. package/dist/audio/engine/SidechainRouter.d.ts +139 -0
  83. package/dist/audio/engine/SidechainRouter.d.ts.map +1 -0
  84. package/dist/audio/engine/SidechainRouter.js +292 -0
  85. package/dist/audio/engine/SidechainRouter.js.map +1 -0
  86. package/dist/audio/engine/XrunTracker.d.ts +71 -0
  87. package/dist/audio/engine/XrunTracker.d.ts.map +1 -0
  88. package/dist/audio/engine/XrunTracker.js +118 -0
  89. package/dist/audio/engine/XrunTracker.js.map +1 -0
  90. package/dist/audio/export/CDMarkerExporter.d.ts +62 -0
  91. package/dist/audio/export/CDMarkerExporter.d.ts.map +1 -0
  92. package/dist/audio/export/CDMarkerExporter.js +164 -0
  93. package/dist/audio/export/CDMarkerExporter.js.map +1 -0
  94. package/dist/audio/export/ExportGraphBuilder.d.ts +121 -0
  95. package/dist/audio/export/ExportGraphBuilder.d.ts.map +1 -0
  96. package/dist/audio/export/ExportGraphBuilder.js +522 -0
  97. package/dist/audio/export/ExportGraphBuilder.js.map +1 -0
  98. package/dist/audio/export/ExportPresetManager.d.ts +87 -0
  99. package/dist/audio/export/ExportPresetManager.d.ts.map +1 -0
  100. package/dist/audio/export/ExportPresetManager.js +306 -0
  101. package/dist/audio/export/ExportPresetManager.js.map +1 -0
  102. package/dist/commands/handlers/RegionHandler.d.ts.map +1 -1
  103. package/dist/commands/handlers/RegionHandler.js +25 -1
  104. package/dist/commands/handlers/RegionHandler.js.map +1 -1
  105. package/dist/commands/handlers/TrackHandler.js +1 -1
  106. package/dist/commands/handlers/TrackHandler.js.map +1 -1
  107. package/dist/commands/impl/FreezeTrackCommand.d.ts.map +1 -1
  108. package/dist/commands/impl/FreezeTrackCommand.js +37 -36
  109. package/dist/commands/impl/FreezeTrackCommand.js.map +1 -1
  110. package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts.map +1 -1
  111. package/dist/commands/impl/SetRegionTimeDomainCommand.js +3 -3
  112. package/dist/commands/impl/SetRegionTimeDomainCommand.js.map +1 -1
  113. package/dist/commands/impl/ToggleLoopCommand.d.ts +1 -0
  114. package/dist/commands/impl/ToggleLoopCommand.d.ts.map +1 -1
  115. package/dist/commands/impl/ToggleLoopCommand.js +10 -0
  116. package/dist/commands/impl/ToggleLoopCommand.js.map +1 -1
  117. package/dist/commands/impl/TrimRegionCommand.d.ts +14 -1
  118. package/dist/commands/impl/TrimRegionCommand.d.ts.map +1 -1
  119. package/dist/commands/impl/TrimRegionCommand.js +138 -33
  120. package/dist/commands/impl/TrimRegionCommand.js.map +1 -1
  121. package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts +27 -0
  122. package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts.map +1 -0
  123. package/dist/commands/impl/TrimRegionToPlayheadCommand.js +69 -0
  124. package/dist/commands/impl/TrimRegionToPlayheadCommand.js.map +1 -0
  125. package/dist/commands/impl/TrimRegionToRangeCommand.d.ts +28 -0
  126. package/dist/commands/impl/TrimRegionToRangeCommand.d.ts.map +1 -0
  127. package/dist/commands/impl/TrimRegionToRangeCommand.js +69 -0
  128. package/dist/commands/impl/TrimRegionToRangeCommand.js.map +1 -0
  129. package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts +27 -0
  130. package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts.map +1 -0
  131. package/dist/commands/impl/TrimToAdjacentRegionCommand.js +77 -0
  132. package/dist/commands/impl/TrimToAdjacentRegionCommand.js.map +1 -0
  133. package/dist/commands/types.d.ts +19 -0
  134. package/dist/commands/types.d.ts.map +1 -1
  135. package/dist/commands/types.js +21 -0
  136. package/dist/commands/types.js.map +1 -1
  137. package/dist/domain/Crossfade.d.ts +78 -0
  138. package/dist/domain/Crossfade.d.ts.map +1 -0
  139. package/dist/domain/Crossfade.js +216 -0
  140. package/dist/domain/Crossfade.js.map +1 -0
  141. package/dist/domain/ExportConfig.d.ts +98 -1
  142. package/dist/domain/ExportConfig.d.ts.map +1 -1
  143. package/dist/domain/ExportConfig.js +154 -1
  144. package/dist/domain/ExportConfig.js.map +1 -1
  145. package/dist/domain/ExportPreset.d.ts +62 -0
  146. package/dist/domain/ExportPreset.d.ts.map +1 -0
  147. package/dist/domain/ExportPreset.js +79 -0
  148. package/dist/domain/ExportPreset.js.map +1 -0
  149. package/dist/domain/ImportStatus.d.ts +40 -0
  150. package/dist/domain/ImportStatus.d.ts.map +1 -0
  151. package/dist/domain/ImportStatus.js +86 -0
  152. package/dist/domain/ImportStatus.js.map +1 -0
  153. package/dist/domain/Playlist.d.ts +72 -0
  154. package/dist/domain/Playlist.d.ts.map +1 -1
  155. package/dist/domain/Playlist.js +231 -6
  156. package/dist/domain/Playlist.js.map +1 -1
  157. package/dist/domain/Region.d.ts +76 -0
  158. package/dist/domain/Region.d.ts.map +1 -1
  159. package/dist/domain/Region.js +234 -1
  160. package/dist/domain/Region.js.map +1 -1
  161. package/dist/domain/Route.d.ts +43 -3
  162. package/dist/domain/Route.d.ts.map +1 -1
  163. package/dist/domain/Route.js +92 -6
  164. package/dist/domain/Route.js.map +1 -1
  165. package/dist/domain/Session.d.ts +31 -0
  166. package/dist/domain/Session.d.ts.map +1 -1
  167. package/dist/domain/Session.js +70 -0
  168. package/dist/domain/Session.js.map +1 -1
  169. package/dist/domain/Source.d.ts +145 -1
  170. package/dist/domain/Source.d.ts.map +1 -1
  171. package/dist/domain/Source.js +144 -1
  172. package/dist/domain/Source.js.map +1 -1
  173. package/dist/domain/ThawList.d.ts +37 -0
  174. package/dist/domain/ThawList.d.ts.map +1 -0
  175. package/dist/domain/ThawList.js +73 -0
  176. package/dist/domain/ThawList.js.map +1 -0
  177. package/dist/domain/Track.d.ts +93 -1
  178. package/dist/domain/Track.d.ts.map +1 -1
  179. package/dist/domain/Track.js +136 -0
  180. package/dist/domain/Track.js.map +1 -1
  181. package/dist/domain/TriggerBox.d.ts +123 -0
  182. package/dist/domain/TriggerBox.d.ts.map +1 -0
  183. package/dist/domain/TriggerBox.js +430 -0
  184. package/dist/domain/TriggerBox.js.map +1 -0
  185. package/dist/domain/VCATrack.d.ts +64 -1
  186. package/dist/domain/VCATrack.d.ts.map +1 -1
  187. package/dist/domain/VCATrack.js +128 -1
  188. package/dist/domain/VCATrack.js.map +1 -1
  189. package/dist/domain/VideoExportConfig.d.ts +117 -0
  190. package/dist/domain/VideoExportConfig.d.ts.map +1 -0
  191. package/dist/domain/VideoExportConfig.js +244 -0
  192. package/dist/domain/VideoExportConfig.js.map +1 -0
  193. package/dist/domain/VideoExportStatus.d.ts +89 -0
  194. package/dist/domain/VideoExportStatus.d.ts.map +1 -0
  195. package/dist/domain/VideoExportStatus.js +192 -0
  196. package/dist/domain/VideoExportStatus.js.map +1 -0
  197. package/dist/domain/VideoMetadata.d.ts +46 -0
  198. package/dist/domain/VideoMetadata.d.ts.map +1 -0
  199. package/dist/domain/VideoMetadata.js +2 -0
  200. package/dist/domain/VideoMetadata.js.map +1 -0
  201. package/dist/domain/index.d.ts +5 -0
  202. package/dist/domain/index.d.ts.map +1 -1
  203. package/dist/domain/index.js +5 -0
  204. package/dist/domain/index.js.map +1 -1
  205. package/dist/domain/temporal/TempoMap.d.ts +199 -2
  206. package/dist/domain/temporal/TempoMap.d.ts.map +1 -1
  207. package/dist/domain/temporal/TempoMap.js +464 -30
  208. package/dist/domain/temporal/TempoMap.js.map +1 -1
  209. package/dist/index.d.ts +43 -1
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +32 -1
  212. package/dist/index.js.map +1 -1
  213. package/dist/lib/ThawList.d.ts +100 -0
  214. package/dist/lib/ThawList.d.ts.map +1 -0
  215. package/dist/lib/ThawList.js +153 -0
  216. package/dist/lib/ThawList.js.map +1 -0
  217. package/dist/midi/MidiFileParser.d.ts +33 -0
  218. package/dist/midi/MidiFileParser.d.ts.map +1 -0
  219. package/dist/midi/MidiFileParser.js +246 -0
  220. package/dist/midi/MidiFileParser.js.map +1 -0
  221. package/dist/midi/MidiFileWriter.d.ts +31 -0
  222. package/dist/midi/MidiFileWriter.d.ts.map +1 -0
  223. package/dist/midi/MidiFileWriter.js +160 -0
  224. package/dist/midi/MidiFileWriter.js.map +1 -0
  225. package/dist/midi/MidiImporter.d.ts +37 -0
  226. package/dist/midi/MidiImporter.d.ts.map +1 -0
  227. package/dist/midi/MidiImporter.js +62 -0
  228. package/dist/midi/MidiImporter.js.map +1 -0
  229. package/dist/plugins/PluginPresetManager.d.ts +86 -0
  230. package/dist/plugins/PluginPresetManager.d.ts.map +1 -0
  231. package/dist/plugins/PluginPresetManager.js +140 -0
  232. package/dist/plugins/PluginPresetManager.js.map +1 -0
  233. package/dist/processing/IO.d.ts +15 -1
  234. package/dist/processing/IO.d.ts.map +1 -1
  235. package/dist/processing/IO.js +29 -1
  236. package/dist/processing/IO.js.map +1 -1
  237. package/dist/processing/InternalSend.d.ts +104 -0
  238. package/dist/processing/InternalSend.d.ts.map +1 -0
  239. package/dist/processing/InternalSend.js +175 -0
  240. package/dist/processing/InternalSend.js.map +1 -0
  241. package/dist/processing/MeterDSP.d.ts +166 -0
  242. package/dist/processing/MeterDSP.d.ts.map +1 -0
  243. package/dist/processing/MeterDSP.js +754 -0
  244. package/dist/processing/MeterDSP.js.map +1 -0
  245. package/dist/processing/Panner.d.ts +145 -0
  246. package/dist/processing/Panner.d.ts.map +1 -0
  247. package/dist/processing/Panner.js +281 -0
  248. package/dist/processing/Panner.js.map +1 -0
  249. package/dist/processing/PluginInsert.d.ts +56 -1
  250. package/dist/processing/PluginInsert.d.ts.map +1 -1
  251. package/dist/processing/PluginInsert.js +180 -2
  252. package/dist/processing/PluginInsert.js.map +1 -1
  253. package/dist/processing/Processor.d.ts +38 -0
  254. package/dist/processing/Processor.d.ts.map +1 -1
  255. package/dist/processing/Processor.js +60 -1
  256. package/dist/processing/Processor.js.map +1 -1
  257. package/dist/processing/SurroundPanner.d.ts +122 -0
  258. package/dist/processing/SurroundPanner.d.ts.map +1 -0
  259. package/dist/processing/SurroundPanner.js +376 -0
  260. package/dist/processing/SurroundPanner.js.map +1 -0
  261. package/dist/processing/TruePeakLimiter.d.ts +34 -0
  262. package/dist/processing/TruePeakLimiter.d.ts.map +1 -0
  263. package/dist/processing/TruePeakLimiter.js +144 -0
  264. package/dist/processing/TruePeakLimiter.js.map +1 -0
  265. package/dist/storage/ExportPresetStorage.d.ts +33 -0
  266. package/dist/storage/ExportPresetStorage.d.ts.map +1 -0
  267. package/dist/storage/ExportPresetStorage.js +121 -0
  268. package/dist/storage/ExportPresetStorage.js.map +1 -0
  269. package/dist/storage/SessionArchive.d.ts +73 -0
  270. package/dist/storage/SessionArchive.d.ts.map +1 -0
  271. package/dist/storage/SessionArchive.js +211 -0
  272. package/dist/storage/SessionArchive.js.map +1 -0
  273. package/dist/storage/SessionTemplate.d.ts +74 -5
  274. package/dist/storage/SessionTemplate.d.ts.map +1 -1
  275. package/dist/storage/SessionTemplate.js +247 -53
  276. package/dist/storage/SessionTemplate.js.map +1 -1
  277. package/dist/utils/BwfMetadataWriter.d.ts +42 -0
  278. package/dist/utils/BwfMetadataWriter.d.ts.map +1 -0
  279. package/dist/utils/BwfMetadataWriter.js +131 -0
  280. package/dist/utils/BwfMetadataWriter.js.map +1 -0
  281. package/dist/utils/FilenameTemplate.d.ts +40 -0
  282. package/dist/utils/FilenameTemplate.d.ts.map +1 -0
  283. package/dist/utils/FilenameTemplate.js +78 -0
  284. package/dist/utils/FilenameTemplate.js.map +1 -0
  285. package/dist/utils/Logger.d.ts +28 -0
  286. package/dist/utils/Logger.d.ts.map +1 -0
  287. package/dist/utils/Logger.js +46 -0
  288. package/dist/utils/Logger.js.map +1 -0
  289. package/dist/utils/Mp4ChapterGenerator.d.ts +17 -0
  290. package/dist/utils/Mp4ChapterGenerator.d.ts.map +1 -0
  291. package/dist/utils/Mp4ChapterGenerator.js +33 -0
  292. package/dist/utils/Mp4ChapterGenerator.js.map +1 -0
  293. package/dist/utils/OggEncoder.d.ts +20 -20
  294. package/dist/utils/OggEncoder.d.ts.map +1 -1
  295. package/dist/utils/OggEncoder.js +114 -50
  296. package/dist/utils/OggEncoder.js.map +1 -1
  297. package/dist/utils/TocGenerator.d.ts +17 -0
  298. package/dist/utils/TocGenerator.d.ts.map +1 -0
  299. package/dist/utils/TocGenerator.js +47 -0
  300. package/dist/utils/TocGenerator.js.map +1 -0
  301. 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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"}
@@ -5,13 +5,40 @@ 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
44
  * Ardour 참조: libs/ardour/ardour/export_format_specification.h
@@ -28,12 +55,28 @@ export declare class ExportConfig {
28
55
  endFrame: FrameCount;
29
56
  filename: string;
30
57
  folder: string;
58
+ filenameTemplate: string;
59
+ presetId?: string;
31
60
  exportMasterOnly: boolean;
32
61
  trackIds: string[];
33
62
  stemExport: boolean;
63
+ splitMono: boolean;
34
64
  ditherType: DitherType;
35
65
  normalize: boolean;
66
+ normalizeMode: NormalizeMode;
36
67
  targetPeakDb?: number;
68
+ targetLufs: number;
69
+ truePeakLimit: boolean;
70
+ truePeakCeiling: number;
71
+ timespans: ExportTimespan[];
72
+ silencePaddingStart: number;
73
+ silencePaddingEnd: number;
74
+ trimSilence: boolean;
75
+ exportCdMarkers: boolean;
76
+ cdMarkerFormat: 'cue' | 'toc' | 'mp4ch';
77
+ bwfMetadata: boolean;
78
+ bwfData?: BwfMetadata;
79
+ reimportAfterExport: boolean;
37
80
  readonly changed: Signal<void>;
38
81
  constructor(id?: string);
39
82
  setFormat(format: ExportFormat): void;
@@ -42,14 +85,68 @@ export declare class ExportConfig {
42
85
  setRangeById(rangeId: RangeId): void;
43
86
  setFilename(filename: string): void;
44
87
  setFolder(folder: string): void;
88
+ setFilenameTemplate(template: string): void;
45
89
  setNormalize(normalize: boolean, targetPeakDb?: number): void;
90
+ setNormalizeMode(mode: NormalizeMode): void;
91
+ setTargetLufs(lufs: number): void;
92
+ setTruePeakLimit(enabled: boolean, ceiling?: number): void;
46
93
  setStemExport(stemExport: boolean): void;
94
+ setSplitMono(splitMono: boolean): void;
47
95
  setQuality(quality: number): void;
48
96
  setDitherType(ditherType: DitherType): void;
49
97
  setExportMasterOnly(masterOnly: boolean): void;
50
98
  setTrackIds(trackIds: string[]): void;
99
+ setTimespans(timespans: ExportTimespan[]): void;
100
+ setSilencePadding(startFrames: number, endFrames: number): void;
101
+ setTrimSilence(trim: boolean): void;
102
+ setCdMarkerExport(enabled: boolean, format?: 'cue' | 'toc' | 'mp4ch'): void;
103
+ setBwfMetadata(enabled: boolean, data?: BwfMetadata): void;
104
+ setPresetId(presetId: string | undefined): void;
51
105
  validate(): boolean;
52
106
  getDuration(): FrameCount;
53
107
  getFullPath(): string;
108
+ /**
109
+ * Serialize to JSON for preset storage.
110
+ */
111
+ toJSON(): ExportConfigSnapshot;
112
+ /**
113
+ * Restore from JSON snapshot.
114
+ */
115
+ static fromJSON(data: ExportConfigSnapshot): ExportConfig;
116
+ }
117
+ export interface ExportConfigSnapshot {
118
+ id: string;
119
+ format: ExportFormat;
120
+ sampleFormat: ExportSampleFormat;
121
+ sampleRate: number;
122
+ bitrate?: number;
123
+ quality?: number;
124
+ rangeId?: string;
125
+ startFrame: number;
126
+ endFrame: number;
127
+ filename: string;
128
+ folder?: string;
129
+ filenameTemplate?: string;
130
+ presetId?: string;
131
+ exportMasterOnly: boolean;
132
+ trackIds: string[];
133
+ stemExport: boolean;
134
+ splitMono?: boolean;
135
+ ditherType: DitherType;
136
+ normalize: boolean;
137
+ normalizeMode?: NormalizeMode;
138
+ targetPeakDb?: number;
139
+ targetLufs?: number;
140
+ truePeakLimit?: boolean;
141
+ truePeakCeiling?: number;
142
+ timespans?: ExportTimespan[];
143
+ silencePaddingStart?: number;
144
+ silencePaddingEnd?: number;
145
+ trimSilence?: boolean;
146
+ exportCdMarkers?: boolean;
147
+ cdMarkerFormat?: 'cue' | 'toc' | 'mp4ch';
148
+ bwfMetadata?: boolean;
149
+ bwfData?: BwfMetadata;
150
+ reimportAfterExport?: boolean;
54
151
  }
55
152
  //# 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;IAGpB,gBAAgB,EAAE,OAAO,CAAQ;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IAGxB,UAAU,EAAE,OAAO,CAAS;IAG5B,UAAU,EAAE,UAAU,CAAmB;IAGzC,SAAS,EAAE,OAAO,CAAS;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAG7B,SAAgB,OAAO,eAAsB;gBAEjC,EAAE,CAAC,EAAE,MAAM;IAIhB,SAAS,CAAC,MAAM,EAAE,YAAY;IAK9B,eAAe,CAAC,YAAY,EAAE,kBAAkB;IAKhD,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU;IAOrD,YAAY,CAAC,OAAO,EAAE,OAAO;IAK7B,WAAW,CAAC,QAAQ,EAAE,MAAM;IAK5B,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM;IAMtD,aAAa,CAAC,UAAU,EAAE,OAAO;IAKjC,UAAU,CAAC,OAAO,EAAE,MAAM;IAK1B,aAAa,CAAC,UAAU,EAAE,UAAU;IAKpC,mBAAmB,CAAC,UAAU,EAAE,OAAO;IAKvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IAK9B,QAAQ,IAAI,OAAO;IAQnB,WAAW,IAAI,UAAU;IAIzB,WAAW,IAAI,MAAM;CAK/B"}
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) {
@@ -28,15 +29,36 @@ export class ExportConfig {
28
29
  // File Settings
29
30
  this.filename = 'export';
30
31
  this.folder = '';
32
+ this.filenameTemplate = '%s'; // Phase 1: template with tokens
31
33
  // Channel Settings
32
34
  this.exportMasterOnly = true;
33
35
  this.trackIds = []; // If not master only, specific track IDs
34
36
  // Stem Export
35
37
  this.stemExport = false;
38
+ // Split Mono (Phase 5B)
39
+ this.splitMono = false;
36
40
  // Dithering
37
41
  this.ditherType = DitherType.NONE;
38
- // Normalize (peak normalization in dBFS — not LUFS)
42
+ // Normalize
39
43
  this.normalize = false;
44
+ this.normalizeMode = 'peak';
45
+ this.targetLufs = -14; // Phase 2A
46
+ // True Peak Limiter (Phase 2B)
47
+ this.truePeakLimit = false;
48
+ this.truePeakCeiling = -1.0; // dBTP
49
+ // Multi-Timespan (Phase 5A)
50
+ this.timespans = [];
51
+ // Silence Padding (Phase 5C)
52
+ this.silencePaddingStart = 0; // frames
53
+ this.silencePaddingEnd = 0; // frames
54
+ this.trimSilence = false;
55
+ // CD Markers (Phase 5D)
56
+ this.exportCdMarkers = false;
57
+ this.cdMarkerFormat = 'cue';
58
+ // BWF Metadata (Phase 5E)
59
+ this.bwfMetadata = false;
60
+ // Post-Export (Phase 6)
61
+ this.reimportAfterExport = false;
40
62
  // Signals
41
63
  this.changed = new Signal();
42
64
  this.id = id || crypto.randomUUID();
@@ -67,15 +89,37 @@ export class ExportConfig {
67
89
  this.folder = folder;
68
90
  this.changed.emit();
69
91
  }
92
+ setFilenameTemplate(template) {
93
+ this.filenameTemplate = template;
94
+ this.changed.emit();
95
+ }
70
96
  setNormalize(normalize, targetPeakDb) {
71
97
  this.normalize = normalize;
72
98
  this.targetPeakDb = targetPeakDb;
73
99
  this.changed.emit();
74
100
  }
101
+ setNormalizeMode(mode) {
102
+ this.normalizeMode = mode;
103
+ this.changed.emit();
104
+ }
105
+ setTargetLufs(lufs) {
106
+ this.targetLufs = lufs;
107
+ this.changed.emit();
108
+ }
109
+ setTruePeakLimit(enabled, ceiling) {
110
+ this.truePeakLimit = enabled;
111
+ if (ceiling !== undefined)
112
+ this.truePeakCeiling = ceiling;
113
+ this.changed.emit();
114
+ }
75
115
  setStemExport(stemExport) {
76
116
  this.stemExport = stemExport;
77
117
  this.changed.emit();
78
118
  }
119
+ setSplitMono(splitMono) {
120
+ this.splitMono = splitMono;
121
+ this.changed.emit();
122
+ }
79
123
  setQuality(quality) {
80
124
  this.quality = Math.max(0, Math.min(1, quality));
81
125
  this.changed.emit();
@@ -92,6 +136,35 @@ export class ExportConfig {
92
136
  this.trackIds = trackIds;
93
137
  this.changed.emit();
94
138
  }
139
+ setTimespans(timespans) {
140
+ this.timespans = timespans;
141
+ this.changed.emit();
142
+ }
143
+ setSilencePadding(startFrames, endFrames) {
144
+ this.silencePaddingStart = startFrames;
145
+ this.silencePaddingEnd = endFrames;
146
+ this.changed.emit();
147
+ }
148
+ setTrimSilence(trim) {
149
+ this.trimSilence = trim;
150
+ this.changed.emit();
151
+ }
152
+ setCdMarkerExport(enabled, format) {
153
+ this.exportCdMarkers = enabled;
154
+ if (format)
155
+ this.cdMarkerFormat = format;
156
+ this.changed.emit();
157
+ }
158
+ setBwfMetadata(enabled, data) {
159
+ this.bwfMetadata = enabled;
160
+ if (data)
161
+ this.bwfData = data;
162
+ this.changed.emit();
163
+ }
164
+ setPresetId(presetId) {
165
+ this.presetId = presetId;
166
+ this.changed.emit();
167
+ }
95
168
  validate() {
96
169
  if (this.endFrame <= this.startFrame)
97
170
  return false;
@@ -111,5 +184,85 @@ export class ExportConfig {
111
184
  const folder = this.folder || 'exports';
112
185
  return `${folder}/${this.filename}.${ext}`;
113
186
  }
187
+ /**
188
+ * Serialize to JSON for preset storage.
189
+ */
190
+ toJSON() {
191
+ return {
192
+ id: this.id,
193
+ format: this.format,
194
+ sampleFormat: this.sampleFormat,
195
+ sampleRate: this.sampleRate,
196
+ bitrate: this.bitrate,
197
+ quality: this.quality,
198
+ rangeId: this.rangeId,
199
+ startFrame: this.startFrame,
200
+ endFrame: this.endFrame,
201
+ filename: this.filename,
202
+ folder: this.folder,
203
+ filenameTemplate: this.filenameTemplate,
204
+ presetId: this.presetId,
205
+ exportMasterOnly: this.exportMasterOnly,
206
+ trackIds: [...this.trackIds],
207
+ stemExport: this.stemExport,
208
+ splitMono: this.splitMono,
209
+ ditherType: this.ditherType,
210
+ normalize: this.normalize,
211
+ normalizeMode: this.normalizeMode,
212
+ targetPeakDb: this.targetPeakDb,
213
+ targetLufs: this.targetLufs,
214
+ truePeakLimit: this.truePeakLimit,
215
+ truePeakCeiling: this.truePeakCeiling,
216
+ timespans: this.timespans.map(ts => (Object.assign({}, ts))),
217
+ silencePaddingStart: this.silencePaddingStart,
218
+ silencePaddingEnd: this.silencePaddingEnd,
219
+ trimSilence: this.trimSilence,
220
+ exportCdMarkers: this.exportCdMarkers,
221
+ cdMarkerFormat: this.cdMarkerFormat,
222
+ bwfMetadata: this.bwfMetadata,
223
+ bwfData: this.bwfData ? Object.assign({}, this.bwfData) : undefined,
224
+ reimportAfterExport: this.reimportAfterExport,
225
+ };
226
+ }
227
+ /**
228
+ * Restore from JSON snapshot.
229
+ */
230
+ static fromJSON(data) {
231
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
232
+ const config = new ExportConfig(data.id);
233
+ config.format = data.format;
234
+ config.sampleFormat = data.sampleFormat;
235
+ config.sampleRate = data.sampleRate;
236
+ config.bitrate = data.bitrate;
237
+ config.quality = data.quality;
238
+ config.rangeId = data.rangeId;
239
+ config.startFrame = data.startFrame;
240
+ config.endFrame = data.endFrame;
241
+ config.filename = data.filename;
242
+ config.folder = (_a = data.folder) !== null && _a !== void 0 ? _a : '';
243
+ config.filenameTemplate = (_b = data.filenameTemplate) !== null && _b !== void 0 ? _b : '%s';
244
+ config.presetId = data.presetId;
245
+ config.exportMasterOnly = data.exportMasterOnly;
246
+ config.trackIds = data.trackIds ? [...data.trackIds] : [];
247
+ config.stemExport = data.stemExport;
248
+ config.splitMono = (_c = data.splitMono) !== null && _c !== void 0 ? _c : false;
249
+ config.ditherType = data.ditherType;
250
+ config.normalize = data.normalize;
251
+ config.normalizeMode = (_d = data.normalizeMode) !== null && _d !== void 0 ? _d : 'peak';
252
+ config.targetPeakDb = data.targetPeakDb;
253
+ config.targetLufs = (_e = data.targetLufs) !== null && _e !== void 0 ? _e : -14;
254
+ config.truePeakLimit = (_f = data.truePeakLimit) !== null && _f !== void 0 ? _f : false;
255
+ config.truePeakCeiling = (_g = data.truePeakCeiling) !== null && _g !== void 0 ? _g : -1.0;
256
+ config.timespans = data.timespans ? data.timespans.map(ts => (Object.assign({}, ts))) : [];
257
+ config.silencePaddingStart = (_h = data.silencePaddingStart) !== null && _h !== void 0 ? _h : 0;
258
+ config.silencePaddingEnd = (_j = data.silencePaddingEnd) !== null && _j !== void 0 ? _j : 0;
259
+ config.trimSilence = (_k = data.trimSilence) !== null && _k !== void 0 ? _k : false;
260
+ config.exportCdMarkers = (_l = data.exportCdMarkers) !== null && _l !== void 0 ? _l : false;
261
+ config.cdMarkerFormat = (_m = data.cdMarkerFormat) !== null && _m !== void 0 ? _m : 'cue';
262
+ config.bwfMetadata = (_o = data.bwfMetadata) !== null && _o !== void 0 ? _o : false;
263
+ config.bwfData = data.bwfData ? Object.assign({}, data.bwfData) : undefined;
264
+ config.reimportAfterExport = (_p = data.reimportAfterExport) !== null && _p !== void 0 ? _p : false;
265
+ return config;
266
+ }
114
267
  }
115
268
  //# sourceMappingURL=ExportConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExportConfig.js","sourceRoot":"","sources":["../../src/domain/ExportConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExportConfig.js","sourceRoot":"","sources":["../../src/domain/ExportConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Signal } from '../lib/Signal';
2
+ import { ExportFormat, ExportSampleFormat } from './ExportConfig';
3
+ import { DitherType } from '../utils/DitherProcessor';
4
+ /**
5
+ * Serializable snapshot of export configuration for preset storage.
6
+ */
7
+ export interface ExportPresetConfig {
8
+ format: ExportFormat;
9
+ sampleFormat: ExportSampleFormat;
10
+ sampleRate: number;
11
+ bitrate?: number;
12
+ quality?: number;
13
+ ditherType: DitherType;
14
+ normalize: boolean;
15
+ normalizeMode: 'peak' | 'lufs';
16
+ targetPeakDb?: number;
17
+ targetLufs?: number;
18
+ truePeakLimit: boolean;
19
+ truePeakCeiling: number;
20
+ exportMasterOnly: boolean;
21
+ stemExport: boolean;
22
+ splitMono: boolean;
23
+ filenameTemplate: string;
24
+ silencePaddingStart: number;
25
+ silencePaddingEnd: number;
26
+ trimSilence: boolean;
27
+ exportCdMarkers: boolean;
28
+ cdMarkerFormat: 'cue' | 'toc' | 'mp4ch';
29
+ bwfMetadata: boolean;
30
+ }
31
+ /**
32
+ * Export Preset — a saved configuration snapshot for quick recall.
33
+ * Ardour reference: libs/ardour/ardour/export_preset.h
34
+ */
35
+ export declare class ExportPreset {
36
+ readonly id: string;
37
+ name: string;
38
+ readonly builtIn: boolean;
39
+ config: ExportPresetConfig;
40
+ readonly changed: Signal<ExportPreset>;
41
+ constructor(id: string, name: string, config: ExportPresetConfig, builtIn?: boolean);
42
+ setName(name: string): void;
43
+ updateConfig(config: Partial<ExportPresetConfig>): void;
44
+ toJSON(): ExportPresetSnapshot;
45
+ static fromJSON(data: ExportPresetSnapshot): ExportPreset;
46
+ }
47
+ export interface ExportPresetSnapshot {
48
+ id: string;
49
+ name: string;
50
+ builtIn: boolean;
51
+ config: ExportPresetConfig;
52
+ }
53
+ /**
54
+ * Default preset configuration values.
55
+ */
56
+ export declare function defaultPresetConfig(): ExportPresetConfig;
57
+ /**
58
+ * Built-in presets matching common professional workflows.
59
+ * Ardour reference: share/export/*.preset (15+ presets)
60
+ */
61
+ export declare function getBuiltInPresets(): ExportPreset[];
62
+ //# sourceMappingURL=ExportPreset.d.ts.map