@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.
Files changed (513) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +734 -316
  3. package/dist/actions/ActionRegistry.d.ts.map +1 -1
  4. package/dist/actions/ActionRegistry.js +7 -2
  5. package/dist/actions/ActionRegistry.js.map +1 -1
  6. package/dist/actions/types.d.ts +7 -1
  7. package/dist/actions/types.d.ts.map +1 -1
  8. package/dist/analysis/AudioAnalyzer.d.ts +69 -0
  9. package/dist/analysis/AudioAnalyzer.d.ts.map +1 -0
  10. package/dist/analysis/AudioAnalyzer.js +567 -0
  11. package/dist/analysis/AudioAnalyzer.js.map +1 -0
  12. package/dist/audio/AudioEngine.d.ts +14 -1
  13. package/dist/audio/AudioEngine.d.ts.map +1 -1
  14. package/dist/audio/AudioEngine.js +115 -35
  15. package/dist/audio/AudioEngine.js.map +1 -1
  16. package/dist/audio/Auditioner.d.ts +102 -0
  17. package/dist/audio/Auditioner.d.ts.map +1 -0
  18. package/dist/audio/Auditioner.js +237 -0
  19. package/dist/audio/Auditioner.js.map +1 -0
  20. package/dist/audio/BWFMetadata.d.ts +114 -0
  21. package/dist/audio/BWFMetadata.d.ts.map +1 -0
  22. package/dist/audio/BWFMetadata.js +392 -0
  23. package/dist/audio/BWFMetadata.js.map +1 -0
  24. package/dist/audio/BufferPool.d.ts +0 -3
  25. package/dist/audio/BufferPool.d.ts.map +1 -1
  26. package/dist/audio/BufferPool.js +0 -3
  27. package/dist/audio/BufferPool.js.map +1 -1
  28. package/dist/audio/ChannelSplitter.d.ts +36 -0
  29. package/dist/audio/ChannelSplitter.d.ts.map +1 -0
  30. package/dist/audio/ChannelSplitter.js +81 -0
  31. package/dist/audio/ChannelSplitter.js.map +1 -0
  32. package/dist/audio/ExportAnalyzer.d.ts +38 -0
  33. package/dist/audio/ExportAnalyzer.d.ts.map +1 -0
  34. package/dist/audio/ExportAnalyzer.js +75 -0
  35. package/dist/audio/ExportAnalyzer.js.map +1 -0
  36. package/dist/audio/LufsNormalizer.d.ts +36 -0
  37. package/dist/audio/LufsNormalizer.d.ts.map +1 -0
  38. package/dist/audio/LufsNormalizer.js +216 -0
  39. package/dist/audio/LufsNormalizer.js.map +1 -0
  40. package/dist/audio/MeterUtils.d.ts +0 -2
  41. package/dist/audio/MeterUtils.d.ts.map +1 -1
  42. package/dist/audio/MeterUtils.js +0 -2
  43. package/dist/audio/MeterUtils.js.map +1 -1
  44. package/dist/audio/OfflineExporter.d.ts +1 -7
  45. package/dist/audio/OfflineExporter.d.ts.map +1 -1
  46. package/dist/audio/OfflineExporter.js +31 -11
  47. package/dist/audio/OfflineExporter.js.map +1 -1
  48. package/dist/audio/ProcessingGraph.d.ts +0 -1
  49. package/dist/audio/ProcessingGraph.d.ts.map +1 -1
  50. package/dist/audio/ProcessingGraph.js +0 -1
  51. package/dist/audio/ProcessingGraph.js.map +1 -1
  52. package/dist/audio/RoutingGraph.d.ts +134 -0
  53. package/dist/audio/RoutingGraph.d.ts.map +1 -0
  54. package/dist/audio/RoutingGraph.js +547 -0
  55. package/dist/audio/RoutingGraph.js.map +1 -0
  56. package/dist/audio/SampleRateConverter.d.ts +20 -0
  57. package/dist/audio/SampleRateConverter.d.ts.map +1 -0
  58. package/dist/audio/SampleRateConverter.js +83 -0
  59. package/dist/audio/SampleRateConverter.js.map +1 -0
  60. package/dist/audio/SilencePadding.d.ts +27 -0
  61. package/dist/audio/SilencePadding.d.ts.map +1 -0
  62. package/dist/audio/SilencePadding.js +84 -0
  63. package/dist/audio/SilencePadding.js.map +1 -0
  64. package/dist/audio/SourceCache.d.ts +13 -19
  65. package/dist/audio/SourceCache.d.ts.map +1 -1
  66. package/dist/audio/SourceCache.js +21 -36
  67. package/dist/audio/SourceCache.js.map +1 -1
  68. package/dist/audio/engine/Declick.d.ts +97 -0
  69. package/dist/audio/engine/Declick.d.ts.map +1 -0
  70. package/dist/audio/engine/Declick.js +203 -0
  71. package/dist/audio/engine/Declick.js.map +1 -0
  72. package/dist/audio/engine/DiskIO.d.ts +170 -0
  73. package/dist/audio/engine/DiskIO.d.ts.map +1 -0
  74. package/dist/audio/engine/DiskIO.js +382 -0
  75. package/dist/audio/engine/DiskIO.js.map +1 -0
  76. package/dist/audio/engine/LatencyCompensator.d.ts +46 -0
  77. package/dist/audio/engine/LatencyCompensator.d.ts.map +1 -0
  78. package/dist/audio/engine/LatencyCompensator.js +84 -0
  79. package/dist/audio/engine/LatencyCompensator.js.map +1 -0
  80. package/dist/audio/engine/MultiTrackRecorder.d.ts +144 -0
  81. package/dist/audio/engine/MultiTrackRecorder.d.ts.map +1 -0
  82. package/dist/audio/engine/MultiTrackRecorder.js +359 -0
  83. package/dist/audio/engine/MultiTrackRecorder.js.map +1 -0
  84. package/dist/audio/engine/PlaylistEngine.d.ts +1 -1
  85. package/dist/audio/engine/PlaylistEngine.d.ts.map +1 -1
  86. package/dist/audio/engine/PlaylistEngine.js +10 -3
  87. package/dist/audio/engine/PlaylistEngine.js.map +1 -1
  88. package/dist/audio/engine/PunchRecordManager.d.ts +111 -0
  89. package/dist/audio/engine/PunchRecordManager.d.ts.map +1 -0
  90. package/dist/audio/engine/PunchRecordManager.js +191 -0
  91. package/dist/audio/engine/PunchRecordManager.js.map +1 -0
  92. package/dist/audio/engine/RoutingGraph.d.ts +133 -0
  93. package/dist/audio/engine/RoutingGraph.d.ts.map +1 -0
  94. package/dist/audio/engine/RoutingGraph.js +436 -0
  95. package/dist/audio/engine/RoutingGraph.js.map +1 -0
  96. package/dist/audio/engine/SidechainRouter.d.ts +137 -0
  97. package/dist/audio/engine/SidechainRouter.d.ts.map +1 -0
  98. package/dist/audio/engine/SidechainRouter.js +290 -0
  99. package/dist/audio/engine/SidechainRouter.js.map +1 -0
  100. package/dist/audio/engine/XrunTracker.d.ts +71 -0
  101. package/dist/audio/engine/XrunTracker.d.ts.map +1 -0
  102. package/dist/audio/engine/XrunTracker.js +118 -0
  103. package/dist/audio/engine/XrunTracker.js.map +1 -0
  104. package/dist/audio/export/CDMarkerExporter.d.ts +60 -0
  105. package/dist/audio/export/CDMarkerExporter.d.ts.map +1 -0
  106. package/dist/audio/export/CDMarkerExporter.js +162 -0
  107. package/dist/audio/export/CDMarkerExporter.js.map +1 -0
  108. package/dist/audio/export/ExportGraphBuilder.d.ts +119 -0
  109. package/dist/audio/export/ExportGraphBuilder.d.ts.map +1 -0
  110. package/dist/audio/export/ExportGraphBuilder.js +520 -0
  111. package/dist/audio/export/ExportGraphBuilder.js.map +1 -0
  112. package/dist/audio/export/ExportPresetManager.d.ts +85 -0
  113. package/dist/audio/export/ExportPresetManager.d.ts.map +1 -0
  114. package/dist/audio/export/ExportPresetManager.js +304 -0
  115. package/dist/audio/export/ExportPresetManager.js.map +1 -0
  116. package/dist/automation/AutomationList.d.ts +0 -1
  117. package/dist/automation/AutomationList.d.ts.map +1 -1
  118. package/dist/automation/AutomationList.js +0 -1
  119. package/dist/automation/AutomationList.js.map +1 -1
  120. package/dist/automation/AutomationMode.d.ts +0 -1
  121. package/dist/automation/AutomationMode.d.ts.map +1 -1
  122. package/dist/automation/AutomationMode.js +0 -1
  123. package/dist/automation/AutomationMode.js.map +1 -1
  124. package/dist/commands/CommandHistory.d.ts +1 -4
  125. package/dist/commands/CommandHistory.d.ts.map +1 -1
  126. package/dist/commands/CommandHistory.js +6 -9
  127. package/dist/commands/CommandHistory.js.map +1 -1
  128. package/dist/commands/CommandRegistry.d.ts +1 -2
  129. package/dist/commands/CommandRegistry.d.ts.map +1 -1
  130. package/dist/commands/CommandRegistry.js +1 -2
  131. package/dist/commands/CommandRegistry.js.map +1 -1
  132. package/dist/commands/UndoTransaction.d.ts +0 -2
  133. package/dist/commands/UndoTransaction.d.ts.map +1 -1
  134. package/dist/commands/UndoTransaction.js +1 -3
  135. package/dist/commands/UndoTransaction.js.map +1 -1
  136. package/dist/commands/handlers/HistoryHandler.d.ts +5 -5
  137. package/dist/commands/handlers/HistoryHandler.js +10 -10
  138. package/dist/commands/handlers/HistoryHandler.js.map +1 -1
  139. package/dist/commands/handlers/MarkerHandler.d.ts +0 -1
  140. package/dist/commands/handlers/MarkerHandler.d.ts.map +1 -1
  141. package/dist/commands/handlers/MarkerHandler.js +0 -1
  142. package/dist/commands/handlers/MarkerHandler.js.map +1 -1
  143. package/dist/commands/handlers/RegionHandler.d.ts.map +1 -1
  144. package/dist/commands/handlers/RegionHandler.js +25 -1
  145. package/dist/commands/handlers/RegionHandler.js.map +1 -1
  146. package/dist/commands/handlers/TrackHandler.js +1 -1
  147. package/dist/commands/handlers/TrackHandler.js.map +1 -1
  148. package/dist/commands/impl/CopyRegionCommand.d.ts +0 -1
  149. package/dist/commands/impl/CopyRegionCommand.d.ts.map +1 -1
  150. package/dist/commands/impl/CopyRegionCommand.js +0 -1
  151. package/dist/commands/impl/CopyRegionCommand.js.map +1 -1
  152. package/dist/commands/impl/DuplicateRegionCommand.d.ts +0 -1
  153. package/dist/commands/impl/DuplicateRegionCommand.d.ts.map +1 -1
  154. package/dist/commands/impl/DuplicateRegionCommand.js +0 -1
  155. package/dist/commands/impl/DuplicateRegionCommand.js.map +1 -1
  156. package/dist/commands/impl/ExportCommand.d.ts +0 -1
  157. package/dist/commands/impl/ExportCommand.d.ts.map +1 -1
  158. package/dist/commands/impl/ExportCommand.js +0 -1
  159. package/dist/commands/impl/ExportCommand.js.map +1 -1
  160. package/dist/commands/impl/FreezeTrackCommand.d.ts +1 -1
  161. package/dist/commands/impl/FreezeTrackCommand.d.ts.map +1 -1
  162. package/dist/commands/impl/FreezeTrackCommand.js +38 -37
  163. package/dist/commands/impl/FreezeTrackCommand.js.map +1 -1
  164. package/dist/commands/impl/PasteRegionCommand.d.ts +0 -1
  165. package/dist/commands/impl/PasteRegionCommand.d.ts.map +1 -1
  166. package/dist/commands/impl/PasteRegionCommand.js +0 -1
  167. package/dist/commands/impl/PasteRegionCommand.js.map +1 -1
  168. package/dist/commands/impl/SaveSnapshotCommand.d.ts +1 -1
  169. package/dist/commands/impl/SaveSnapshotCommand.js +1 -1
  170. package/dist/commands/impl/SetLoopRangeCommand.d.ts +0 -1
  171. package/dist/commands/impl/SetLoopRangeCommand.d.ts.map +1 -1
  172. package/dist/commands/impl/SetLoopRangeCommand.js +0 -1
  173. package/dist/commands/impl/SetLoopRangeCommand.js.map +1 -1
  174. package/dist/commands/impl/SetPunchRangeCommand.d.ts +0 -1
  175. package/dist/commands/impl/SetPunchRangeCommand.d.ts.map +1 -1
  176. package/dist/commands/impl/SetPunchRangeCommand.js +0 -1
  177. package/dist/commands/impl/SetPunchRangeCommand.js.map +1 -1
  178. package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts.map +1 -1
  179. package/dist/commands/impl/SetRegionTimeDomainCommand.js +3 -3
  180. package/dist/commands/impl/SetRegionTimeDomainCommand.js.map +1 -1
  181. package/dist/commands/impl/SplitAtPlayheadCommand.d.ts +0 -2
  182. package/dist/commands/impl/SplitAtPlayheadCommand.d.ts.map +1 -1
  183. package/dist/commands/impl/SplitAtPlayheadCommand.js +0 -2
  184. package/dist/commands/impl/SplitAtPlayheadCommand.js.map +1 -1
  185. package/dist/commands/impl/SplitRegionCommand.d.ts +0 -1
  186. package/dist/commands/impl/SplitRegionCommand.d.ts.map +1 -1
  187. package/dist/commands/impl/SplitRegionCommand.js +0 -1
  188. package/dist/commands/impl/SplitRegionCommand.js.map +1 -1
  189. package/dist/commands/impl/StripSilenceCommand.d.ts +0 -1
  190. package/dist/commands/impl/StripSilenceCommand.d.ts.map +1 -1
  191. package/dist/commands/impl/StripSilenceCommand.js +0 -1
  192. package/dist/commands/impl/StripSilenceCommand.js.map +1 -1
  193. package/dist/commands/impl/TimeStretchRegionCommand.d.ts +1 -2
  194. package/dist/commands/impl/TimeStretchRegionCommand.d.ts.map +1 -1
  195. package/dist/commands/impl/TimeStretchRegionCommand.js +1 -2
  196. package/dist/commands/impl/TimeStretchRegionCommand.js.map +1 -1
  197. package/dist/commands/impl/ToggleLoopCommand.d.ts +1 -0
  198. package/dist/commands/impl/ToggleLoopCommand.d.ts.map +1 -1
  199. package/dist/commands/impl/ToggleLoopCommand.js +10 -0
  200. package/dist/commands/impl/ToggleLoopCommand.js.map +1 -1
  201. package/dist/commands/impl/TrimRegionCommand.d.ts +14 -1
  202. package/dist/commands/impl/TrimRegionCommand.d.ts.map +1 -1
  203. package/dist/commands/impl/TrimRegionCommand.js +138 -33
  204. package/dist/commands/impl/TrimRegionCommand.js.map +1 -1
  205. package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts +26 -0
  206. package/dist/commands/impl/TrimRegionToPlayheadCommand.d.ts.map +1 -0
  207. package/dist/commands/impl/TrimRegionToPlayheadCommand.js +68 -0
  208. package/dist/commands/impl/TrimRegionToPlayheadCommand.js.map +1 -0
  209. package/dist/commands/impl/TrimRegionToRangeCommand.d.ts +27 -0
  210. package/dist/commands/impl/TrimRegionToRangeCommand.d.ts.map +1 -0
  211. package/dist/commands/impl/TrimRegionToRangeCommand.js +68 -0
  212. package/dist/commands/impl/TrimRegionToRangeCommand.js.map +1 -0
  213. package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts +26 -0
  214. package/dist/commands/impl/TrimToAdjacentRegionCommand.d.ts.map +1 -0
  215. package/dist/commands/impl/TrimToAdjacentRegionCommand.js +76 -0
  216. package/dist/commands/impl/TrimToAdjacentRegionCommand.js.map +1 -0
  217. package/dist/commands/types.d.ts +19 -0
  218. package/dist/commands/types.d.ts.map +1 -1
  219. package/dist/commands/types.js +21 -0
  220. package/dist/commands/types.js.map +1 -1
  221. package/dist/domain/ABComparison.d.ts +0 -1
  222. package/dist/domain/ABComparison.d.ts.map +1 -1
  223. package/dist/domain/ABComparison.js +0 -1
  224. package/dist/domain/ABComparison.js.map +1 -1
  225. package/dist/domain/CDMarker.d.ts +0 -1
  226. package/dist/domain/CDMarker.d.ts.map +1 -1
  227. package/dist/domain/CDMarker.js +0 -1
  228. package/dist/domain/CDMarker.js.map +1 -1
  229. package/dist/domain/ClockMode.d.ts +0 -1
  230. package/dist/domain/ClockMode.d.ts.map +1 -1
  231. package/dist/domain/ClockMode.js +0 -1
  232. package/dist/domain/ClockMode.js.map +1 -1
  233. package/dist/domain/Crossfade.d.ts +78 -0
  234. package/dist/domain/Crossfade.d.ts.map +1 -0
  235. package/dist/domain/Crossfade.js +216 -0
  236. package/dist/domain/Crossfade.js.map +1 -0
  237. package/dist/domain/DragManager.d.ts +0 -2
  238. package/dist/domain/DragManager.d.ts.map +1 -1
  239. package/dist/domain/DragManager.js +0 -2
  240. package/dist/domain/DragManager.js.map +1 -1
  241. package/dist/domain/EditMode.d.ts +0 -1
  242. package/dist/domain/EditMode.d.ts.map +1 -1
  243. package/dist/domain/EditMode.js +0 -1
  244. package/dist/domain/EditMode.js.map +1 -1
  245. package/dist/domain/ExportConfig.d.ts +98 -2
  246. package/dist/domain/ExportConfig.d.ts.map +1 -1
  247. package/dist/domain/ExportConfig.js +154 -2
  248. package/dist/domain/ExportConfig.js.map +1 -1
  249. package/dist/domain/ExportPreset.d.ts +60 -0
  250. package/dist/domain/ExportPreset.d.ts.map +1 -0
  251. package/dist/domain/ExportPreset.js +77 -0
  252. package/dist/domain/ExportPreset.js.map +1 -0
  253. package/dist/domain/ExportStatus.d.ts +0 -1
  254. package/dist/domain/ExportStatus.d.ts.map +1 -1
  255. package/dist/domain/ExportStatus.js +0 -1
  256. package/dist/domain/ExportStatus.js.map +1 -1
  257. package/dist/domain/GridSettings.d.ts +0 -3
  258. package/dist/domain/GridSettings.d.ts.map +1 -1
  259. package/dist/domain/GridSettings.js +0 -3
  260. package/dist/domain/GridSettings.js.map +1 -1
  261. package/dist/domain/ImportStatus.d.ts +40 -0
  262. package/dist/domain/ImportStatus.d.ts.map +1 -0
  263. package/dist/domain/ImportStatus.js +86 -0
  264. package/dist/domain/ImportStatus.js.map +1 -0
  265. package/dist/domain/Marker.d.ts +0 -1
  266. package/dist/domain/Marker.d.ts.map +1 -1
  267. package/dist/domain/Marker.js +0 -1
  268. package/dist/domain/Marker.js.map +1 -1
  269. package/dist/domain/MeterData.d.ts +0 -2
  270. package/dist/domain/MeterData.d.ts.map +1 -1
  271. package/dist/domain/MeterType.d.ts +0 -2
  272. package/dist/domain/MeterType.d.ts.map +1 -1
  273. package/dist/domain/MeterType.js +0 -2
  274. package/dist/domain/MeterType.js.map +1 -1
  275. package/dist/domain/MonitorMode.d.ts +0 -1
  276. package/dist/domain/MonitorMode.d.ts.map +1 -1
  277. package/dist/domain/MonitorMode.js +0 -1
  278. package/dist/domain/MonitorMode.js.map +1 -1
  279. package/dist/domain/MouseMode.d.ts +0 -1
  280. package/dist/domain/MouseMode.d.ts.map +1 -1
  281. package/dist/domain/MouseMode.js +0 -1
  282. package/dist/domain/MouseMode.js.map +1 -1
  283. package/dist/domain/OverlapType.d.ts +0 -2
  284. package/dist/domain/OverlapType.d.ts.map +1 -1
  285. package/dist/domain/OverlapType.js +0 -2
  286. package/dist/domain/OverlapType.js.map +1 -1
  287. package/dist/domain/Playlist.d.ts +72 -0
  288. package/dist/domain/Playlist.d.ts.map +1 -1
  289. package/dist/domain/Playlist.js +231 -6
  290. package/dist/domain/Playlist.js.map +1 -1
  291. package/dist/domain/Range.d.ts +0 -1
  292. package/dist/domain/Range.d.ts.map +1 -1
  293. package/dist/domain/Range.js +0 -1
  294. package/dist/domain/Range.js.map +1 -1
  295. package/dist/domain/RecordMode.d.ts +0 -1
  296. package/dist/domain/RecordMode.d.ts.map +1 -1
  297. package/dist/domain/RecordMode.js +0 -1
  298. package/dist/domain/RecordMode.js.map +1 -1
  299. package/dist/domain/Region.d.ts +76 -0
  300. package/dist/domain/Region.d.ts.map +1 -1
  301. package/dist/domain/Region.js +234 -1
  302. package/dist/domain/Region.js.map +1 -1
  303. package/dist/domain/RegionClipboard.d.ts +1 -3
  304. package/dist/domain/RegionClipboard.d.ts.map +1 -1
  305. package/dist/domain/RegionClipboard.js +1 -2
  306. package/dist/domain/RegionClipboard.js.map +1 -1
  307. package/dist/domain/Route.d.ts +43 -3
  308. package/dist/domain/Route.d.ts.map +1 -1
  309. package/dist/domain/Route.js +92 -6
  310. package/dist/domain/Route.js.map +1 -1
  311. package/dist/domain/RulerType.d.ts +0 -1
  312. package/dist/domain/RulerType.d.ts.map +1 -1
  313. package/dist/domain/RulerType.js +0 -1
  314. package/dist/domain/RulerType.js.map +1 -1
  315. package/dist/domain/SelectionHistory.d.ts +0 -3
  316. package/dist/domain/SelectionHistory.d.ts.map +1 -1
  317. package/dist/domain/SelectionHistory.js +0 -3
  318. package/dist/domain/SelectionHistory.js.map +1 -1
  319. package/dist/domain/SendBus.d.ts +0 -1
  320. package/dist/domain/SendBus.d.ts.map +1 -1
  321. package/dist/domain/SendBus.js +0 -1
  322. package/dist/domain/SendBus.js.map +1 -1
  323. package/dist/domain/Session.d.ts +31 -0
  324. package/dist/domain/Session.d.ts.map +1 -1
  325. package/dist/domain/Session.js +70 -0
  326. package/dist/domain/Session.js.map +1 -1
  327. package/dist/domain/SidechainConfig.d.ts +0 -1
  328. package/dist/domain/SidechainConfig.d.ts.map +1 -1
  329. package/dist/domain/SidechainConfig.js +0 -1
  330. package/dist/domain/SidechainConfig.js.map +1 -1
  331. package/dist/domain/Source.d.ts +145 -1
  332. package/dist/domain/Source.d.ts.map +1 -1
  333. package/dist/domain/Source.js +144 -1
  334. package/dist/domain/Source.js.map +1 -1
  335. package/dist/domain/Take.d.ts +0 -1
  336. package/dist/domain/Take.d.ts.map +1 -1
  337. package/dist/domain/Take.js +0 -1
  338. package/dist/domain/Take.js.map +1 -1
  339. package/dist/domain/ThawList.d.ts +36 -0
  340. package/dist/domain/ThawList.d.ts.map +1 -0
  341. package/dist/domain/ThawList.js +72 -0
  342. package/dist/domain/ThawList.js.map +1 -0
  343. package/dist/domain/Track.d.ts +93 -1
  344. package/dist/domain/Track.d.ts.map +1 -1
  345. package/dist/domain/Track.js +136 -0
  346. package/dist/domain/Track.js.map +1 -1
  347. package/dist/domain/TrackGroup.d.ts +0 -1
  348. package/dist/domain/TrackGroup.d.ts.map +1 -1
  349. package/dist/domain/TrackGroup.js +0 -1
  350. package/dist/domain/TrackGroup.js.map +1 -1
  351. package/dist/domain/TransportFSM.d.ts +0 -1
  352. package/dist/domain/TransportFSM.d.ts.map +1 -1
  353. package/dist/domain/TransportFSM.js +0 -1
  354. package/dist/domain/TransportFSM.js.map +1 -1
  355. package/dist/domain/TransportMode.d.ts +0 -1
  356. package/dist/domain/TransportMode.d.ts.map +1 -1
  357. package/dist/domain/TransportMode.js +0 -1
  358. package/dist/domain/TransportMode.js.map +1 -1
  359. package/dist/domain/TriggerBox.d.ts +121 -0
  360. package/dist/domain/TriggerBox.d.ts.map +1 -0
  361. package/dist/domain/TriggerBox.js +428 -0
  362. package/dist/domain/TriggerBox.js.map +1 -0
  363. package/dist/domain/VCATrack.d.ts +63 -2
  364. package/dist/domain/VCATrack.d.ts.map +1 -1
  365. package/dist/domain/VCATrack.js +127 -2
  366. package/dist/domain/VCATrack.js.map +1 -1
  367. package/dist/domain/VideoExportConfig.d.ts +116 -0
  368. package/dist/domain/VideoExportConfig.d.ts.map +1 -0
  369. package/dist/domain/VideoExportConfig.js +243 -0
  370. package/dist/domain/VideoExportConfig.js.map +1 -0
  371. package/dist/domain/VideoExportStatus.d.ts +89 -0
  372. package/dist/domain/VideoExportStatus.d.ts.map +1 -0
  373. package/dist/domain/VideoExportStatus.js +192 -0
  374. package/dist/domain/VideoExportStatus.js.map +1 -0
  375. package/dist/domain/VideoMetadata.d.ts +46 -0
  376. package/dist/domain/VideoMetadata.d.ts.map +1 -0
  377. package/dist/domain/VideoMetadata.js +2 -0
  378. package/dist/domain/VideoMetadata.js.map +1 -0
  379. package/dist/domain/ZoomFocus.d.ts +0 -1
  380. package/dist/domain/ZoomFocus.d.ts.map +1 -1
  381. package/dist/domain/ZoomFocus.js +0 -1
  382. package/dist/domain/ZoomFocus.js.map +1 -1
  383. package/dist/domain/index.d.ts +5 -0
  384. package/dist/domain/index.d.ts.map +1 -1
  385. package/dist/domain/index.js +5 -0
  386. package/dist/domain/index.js.map +1 -1
  387. package/dist/domain/temporal/TempoMap.d.ts +198 -2
  388. package/dist/domain/temporal/TempoMap.d.ts.map +1 -1
  389. package/dist/domain/temporal/TempoMap.js +464 -30
  390. package/dist/domain/temporal/TempoMap.js.map +1 -1
  391. package/dist/domain/temporal/types.d.ts +1 -1
  392. package/dist/domain/temporal/types.d.ts.map +1 -1
  393. package/dist/domain/temporal/types.js +1 -1
  394. package/dist/domain/temporal/types.js.map +1 -1
  395. package/dist/index.d.ts +43 -1
  396. package/dist/index.d.ts.map +1 -1
  397. package/dist/index.js +32 -1
  398. package/dist/index.js.map +1 -1
  399. package/dist/lib/Signal.d.ts +1 -1
  400. package/dist/lib/ThawList.d.ts +98 -0
  401. package/dist/lib/ThawList.d.ts.map +1 -0
  402. package/dist/lib/ThawList.js +151 -0
  403. package/dist/lib/ThawList.js.map +1 -0
  404. package/dist/midi/MidiFileParser.d.ts +32 -0
  405. package/dist/midi/MidiFileParser.d.ts.map +1 -0
  406. package/dist/midi/MidiFileParser.js +245 -0
  407. package/dist/midi/MidiFileParser.js.map +1 -0
  408. package/dist/midi/MidiFileWriter.d.ts +30 -0
  409. package/dist/midi/MidiFileWriter.d.ts.map +1 -0
  410. package/dist/midi/MidiFileWriter.js +159 -0
  411. package/dist/midi/MidiFileWriter.js.map +1 -0
  412. package/dist/midi/MidiImporter.d.ts +37 -0
  413. package/dist/midi/MidiImporter.d.ts.map +1 -0
  414. package/dist/midi/MidiImporter.js +62 -0
  415. package/dist/midi/MidiImporter.js.map +1 -0
  416. package/dist/plugins/PluginManager.js +2 -2
  417. package/dist/plugins/PluginManager.js.map +1 -1
  418. package/dist/plugins/PluginPresetManager.d.ts +86 -0
  419. package/dist/plugins/PluginPresetManager.d.ts.map +1 -0
  420. package/dist/plugins/PluginPresetManager.js +140 -0
  421. package/dist/plugins/PluginPresetManager.js.map +1 -0
  422. package/dist/plugins/impl/ExpanderPlugin.d.ts +1 -1
  423. package/dist/plugins/impl/ExpanderPlugin.js +1 -1
  424. package/dist/plugins/impl/ParametricEQPlugin.d.ts +1 -1
  425. package/dist/plugins/impl/ParametricEQPlugin.js +1 -1
  426. package/dist/processing/IO.d.ts +15 -1
  427. package/dist/processing/IO.d.ts.map +1 -1
  428. package/dist/processing/IO.js +29 -1
  429. package/dist/processing/IO.js.map +1 -1
  430. package/dist/processing/InternalSend.d.ts +102 -0
  431. package/dist/processing/InternalSend.d.ts.map +1 -0
  432. package/dist/processing/InternalSend.js +175 -0
  433. package/dist/processing/InternalSend.js.map +1 -0
  434. package/dist/processing/MeterDSP.d.ts +165 -0
  435. package/dist/processing/MeterDSP.d.ts.map +1 -0
  436. package/dist/processing/MeterDSP.js +753 -0
  437. package/dist/processing/MeterDSP.js.map +1 -0
  438. package/dist/processing/MeterProcessor.d.ts +0 -1
  439. package/dist/processing/MeterProcessor.d.ts.map +1 -1
  440. package/dist/processing/MeterProcessor.js +0 -1
  441. package/dist/processing/MeterProcessor.js.map +1 -1
  442. package/dist/processing/Panner.d.ts +144 -0
  443. package/dist/processing/Panner.d.ts.map +1 -0
  444. package/dist/processing/Panner.js +280 -0
  445. package/dist/processing/Panner.js.map +1 -0
  446. package/dist/processing/PluginInsert.d.ts +56 -1
  447. package/dist/processing/PluginInsert.d.ts.map +1 -1
  448. package/dist/processing/PluginInsert.js +180 -2
  449. package/dist/processing/PluginInsert.js.map +1 -1
  450. package/dist/processing/PolarityProcessor.d.ts +1 -1
  451. package/dist/processing/PolarityProcessor.js +1 -1
  452. package/dist/processing/Processor.d.ts +38 -0
  453. package/dist/processing/Processor.d.ts.map +1 -1
  454. package/dist/processing/Processor.js +60 -1
  455. package/dist/processing/Processor.js.map +1 -1
  456. package/dist/processing/SendProcessor.d.ts +0 -1
  457. package/dist/processing/SendProcessor.d.ts.map +1 -1
  458. package/dist/processing/SendProcessor.js +0 -1
  459. package/dist/processing/SendProcessor.js.map +1 -1
  460. package/dist/processing/SurroundPanner.d.ts +120 -0
  461. package/dist/processing/SurroundPanner.d.ts.map +1 -0
  462. package/dist/processing/SurroundPanner.js +374 -0
  463. package/dist/processing/SurroundPanner.js.map +1 -0
  464. package/dist/processing/TruePeakLimiter.d.ts +32 -0
  465. package/dist/processing/TruePeakLimiter.d.ts.map +1 -0
  466. package/dist/processing/TruePeakLimiter.js +142 -0
  467. package/dist/processing/TruePeakLimiter.js.map +1 -0
  468. package/dist/storage/ExportPresetStorage.d.ts +33 -0
  469. package/dist/storage/ExportPresetStorage.d.ts.map +1 -0
  470. package/dist/storage/ExportPresetStorage.js +121 -0
  471. package/dist/storage/ExportPresetStorage.js.map +1 -0
  472. package/dist/storage/SessionArchive.d.ts +73 -0
  473. package/dist/storage/SessionArchive.d.ts.map +1 -0
  474. package/dist/storage/SessionArchive.js +211 -0
  475. package/dist/storage/SessionArchive.js.map +1 -0
  476. package/dist/storage/SessionStorage.d.ts +1 -1
  477. package/dist/storage/SessionTemplate.d.ts +74 -5
  478. package/dist/storage/SessionTemplate.d.ts.map +1 -1
  479. package/dist/storage/SessionTemplate.js +247 -53
  480. package/dist/storage/SessionTemplate.js.map +1 -1
  481. package/dist/utils/BwfMetadataWriter.d.ts +41 -0
  482. package/dist/utils/BwfMetadataWriter.d.ts.map +1 -0
  483. package/dist/utils/BwfMetadataWriter.js +130 -0
  484. package/dist/utils/BwfMetadataWriter.js.map +1 -0
  485. package/dist/utils/DitherProcessor.d.ts +0 -1
  486. package/dist/utils/DitherProcessor.d.ts.map +1 -1
  487. package/dist/utils/DitherProcessor.js +0 -1
  488. package/dist/utils/DitherProcessor.js.map +1 -1
  489. package/dist/utils/FilenameTemplate.d.ts +39 -0
  490. package/dist/utils/FilenameTemplate.d.ts.map +1 -0
  491. package/dist/utils/FilenameTemplate.js +77 -0
  492. package/dist/utils/FilenameTemplate.js.map +1 -0
  493. package/dist/utils/FlacEncoder.d.ts +0 -1
  494. package/dist/utils/FlacEncoder.d.ts.map +1 -1
  495. package/dist/utils/FlacEncoder.js +0 -1
  496. package/dist/utils/FlacEncoder.js.map +1 -1
  497. package/dist/utils/Logger.d.ts +28 -0
  498. package/dist/utils/Logger.d.ts.map +1 -0
  499. package/dist/utils/Logger.js +46 -0
  500. package/dist/utils/Logger.js.map +1 -0
  501. package/dist/utils/Mp4ChapterGenerator.d.ts +16 -0
  502. package/dist/utils/Mp4ChapterGenerator.d.ts.map +1 -0
  503. package/dist/utils/Mp4ChapterGenerator.js +32 -0
  504. package/dist/utils/Mp4ChapterGenerator.js.map +1 -0
  505. package/dist/utils/OggEncoder.d.ts +19 -21
  506. package/dist/utils/OggEncoder.d.ts.map +1 -1
  507. package/dist/utils/OggEncoder.js +113 -51
  508. package/dist/utils/OggEncoder.js.map +1 -1
  509. package/dist/utils/TocGenerator.d.ts +16 -0
  510. package/dist/utils/TocGenerator.d.ts.map +1 -0
  511. package/dist/utils/TocGenerator.js +46 -0
  512. package/dist/utils/TocGenerator.js.map +1 -0
  513. package/package.json +7 -8
@@ -27,8 +27,15 @@ export class Region {
27
27
  this.locked = false;
28
28
  /** Time domain for this region (default: AudioTime for backward compatibility) */
29
29
  this.timeDomain = TimeDomain.AudioTime;
30
+ // Region FX (per-region plugin chain)
31
+ this._regionFx = [];
32
+ // Enhanced lock types
33
+ this._positionLocked = false;
34
+ this._videoLocked = false;
30
35
  // Signals
31
36
  this.lockedChanged = new Signal();
37
+ this.regionFxAdded = new Signal();
38
+ this.regionFxRemoved = new Signal();
32
39
  this.id = id;
33
40
  this.sourceId = sourceId;
34
41
  this.start = start;
@@ -75,17 +82,170 @@ export class Region {
75
82
  newStart = 0;
76
83
  this.start = newStart;
77
84
  }
85
+ /**
86
+ * Trim the front of the region by an amount (delta-based).
87
+ * Positive amount moves start forward (shortens region).
88
+ * Negative amount moves start backward (extends region, if source allows).
89
+ */
78
90
  trimFront(amount) {
79
91
  if (amount >= this.length)
80
92
  return; // Prevent full deletion via trim
93
+ // Source boundary constraint: don't go before source start 0
94
+ if (this.sourceStart + amount < 0) {
95
+ amount = -this.sourceStart;
96
+ }
97
+ if (amount === 0)
98
+ return;
81
99
  this.start += amount;
82
100
  this.sourceStart += amount;
83
101
  this.length -= amount;
102
+ // Invalidate cached transients on trim
103
+ if (this.transients.length > 0) {
104
+ this.transients = this.transients
105
+ .map(t => t - amount)
106
+ .filter(t => t >= 0 && t < this.length);
107
+ }
84
108
  }
109
+ /**
110
+ * Trim the back of the region by an amount (delta-based).
111
+ * Positive amount extends region, negative shortens it.
112
+ */
85
113
  trimBack(amount) {
86
114
  if (-amount >= this.length)
87
115
  return; // Prevent full deletion via trim
88
- this.length += amount; // amount can be negative for trimming, positive for extending
116
+ this.length += amount;
117
+ // Invalidate transients beyond new length
118
+ if (this.transients.length > 0) {
119
+ this.transients = this.transients.filter(t => t < this.length);
120
+ }
121
+ }
122
+ /**
123
+ * Trim front to a new absolute timeline position.
124
+ * Adjusts start, sourceStart, and length so the end stays fixed.
125
+ * @param newPosition - The new timeline start position
126
+ * @param sourceDuration - Optional source duration for boundary constraint
127
+ */
128
+ trimFrontTo(newPosition, sourceDuration) {
129
+ if (this.locked || this._positionLocked)
130
+ return;
131
+ if (newPosition < 0)
132
+ newPosition = 0;
133
+ const currentEnd = this.end;
134
+ if (newPosition >= currentEnd)
135
+ return; // Cannot trim past end
136
+ const delta = newPosition - this.start;
137
+ const newSourceStart = this.sourceStart + delta;
138
+ // Source boundary: cannot go before source start
139
+ if (newSourceStart < 0)
140
+ return;
141
+ // Source boundary: check we don't exceed source duration
142
+ const newLength = currentEnd - newPosition;
143
+ if (sourceDuration !== undefined && newSourceStart + newLength > sourceDuration)
144
+ return;
145
+ // Ensure minimum length
146
+ if (newLength < Region.MIN_LENGTH)
147
+ return;
148
+ this.start = newPosition;
149
+ this.sourceStart = newSourceStart;
150
+ this.length = newLength;
151
+ // Adjust fades: if fadeIn exceeds new length, clamp it
152
+ if (this.fadeIn + this.fadeOut > this.length) {
153
+ this.fadeIn = Math.max(0, this.length - this.fadeOut);
154
+ }
155
+ // Invalidate transients
156
+ if (this.transients.length > 0) {
157
+ this.transients = this.transients
158
+ .map(t => t - delta)
159
+ .filter(t => t >= 0 && t < this.length);
160
+ }
161
+ }
162
+ /**
163
+ * Trim end to a new absolute timeline endpoint.
164
+ * Adjusts length while keeping start and sourceStart fixed.
165
+ * @param newEndpoint - The new timeline end position
166
+ * @param sourceDuration - Optional source duration for boundary constraint
167
+ */
168
+ trimEndTo(newEndpoint, sourceDuration) {
169
+ if (this.locked || this._positionLocked)
170
+ return;
171
+ if (newEndpoint <= this.start)
172
+ return; // Cannot trim before start
173
+ const newLength = newEndpoint - this.start;
174
+ // Source boundary constraint
175
+ if (sourceDuration !== undefined && this.sourceStart + newLength > sourceDuration)
176
+ return;
177
+ // Ensure minimum length
178
+ if (newLength < Region.MIN_LENGTH)
179
+ return;
180
+ this.length = newLength;
181
+ // Adjust fades: if fadeOut exceeds new length, clamp it
182
+ if (this.fadeIn + this.fadeOut > this.length) {
183
+ this.fadeOut = Math.max(0, this.length - this.fadeIn);
184
+ }
185
+ // Invalidate transients
186
+ if (this.transients.length > 0) {
187
+ this.transients = this.transients.filter(t => t < this.length);
188
+ }
189
+ }
190
+ /**
191
+ * Trim both position and length atomically.
192
+ * @param position - New timeline position
193
+ * @param length - New length
194
+ * @param sourceDuration - Optional source duration for constraint
195
+ */
196
+ trimTo(position, length, sourceDuration) {
197
+ if (this.locked || this._positionLocked)
198
+ return;
199
+ if (position < 0 || length < Region.MIN_LENGTH)
200
+ return;
201
+ const delta = position - this.start;
202
+ const newSourceStart = this.sourceStart + delta;
203
+ if (newSourceStart < 0)
204
+ return;
205
+ if (sourceDuration !== undefined && newSourceStart + length > sourceDuration) {
206
+ length = sourceDuration - newSourceStart;
207
+ if (length < Region.MIN_LENGTH)
208
+ return;
209
+ }
210
+ this.start = position;
211
+ this.sourceStart = newSourceStart;
212
+ this.length = length;
213
+ // Clamp fades
214
+ if (this.fadeIn + this.fadeOut > this.length) {
215
+ this.fadeIn = Math.min(this.fadeIn, this.length);
216
+ this.fadeOut = Math.max(0, this.length - this.fadeIn);
217
+ }
218
+ // Invalidate transients
219
+ if (this.transients.length > 0) {
220
+ this.transients = this.transients
221
+ .map(t => t - delta)
222
+ .filter(t => t >= 0 && t < this.length);
223
+ }
224
+ }
225
+ /**
226
+ * Check if this region can trim its start before the source's beginning.
227
+ * Audio regions cannot (they'd read silence); MIDI regions can.
228
+ */
229
+ canTrimStartBeforeSourceStart() {
230
+ return false; // Default: audio region. Override in MidiRegion.
231
+ }
232
+ /**
233
+ * Verify and clamp start + length to source boundaries.
234
+ * @returns true if the values were valid (or clamped successfully)
235
+ */
236
+ verifyStartAndLength(sourceDuration) {
237
+ if (sourceDuration === undefined)
238
+ return true;
239
+ if (this.sourceStart < 0) {
240
+ this.sourceStart = 0;
241
+ }
242
+ const maxLength = sourceDuration - this.sourceStart;
243
+ if (maxLength <= 0)
244
+ return false;
245
+ if (this.length > maxLength) {
246
+ this.length = maxLength;
247
+ }
248
+ return true;
89
249
  }
90
250
  setFadeIn(amount) {
91
251
  if (amount < 0)
@@ -215,5 +375,78 @@ export class Region {
215
375
  hasTransients() {
216
376
  return this.transients.length > 0;
217
377
  }
378
+ // ─── Region FX (Per-Region Plugin Chain) ────────────────────────────────
379
+ /** Add a processor to the region's FX chain. */
380
+ addRegionFx(processor) {
381
+ this._regionFx.push(processor);
382
+ this.regionFxAdded.emit(processor);
383
+ }
384
+ /** Remove a processor from the region's FX chain by its ID. */
385
+ removeRegionFx(processorId) {
386
+ const idx = this._regionFx.findIndex(p => p.id === processorId);
387
+ if (idx === -1)
388
+ return;
389
+ const [removed] = this._regionFx.splice(idx, 1);
390
+ this.regionFxRemoved.emit(removed);
391
+ }
392
+ /** Get a readonly copy of the region's FX chain. */
393
+ getRegionFx() {
394
+ return [...this._regionFx];
395
+ }
396
+ /** Move a processor to a new index in the FX chain. */
397
+ moveRegionFx(processorId, newIndex) {
398
+ const idx = this._regionFx.findIndex(p => p.id === processorId);
399
+ if (idx === -1)
400
+ return;
401
+ const clamped = Math.max(0, Math.min(newIndex, this._regionFx.length - 1));
402
+ const [processor] = this._regionFx.splice(idx, 1);
403
+ this._regionFx.splice(clamped, 0, processor);
404
+ }
405
+ /** Remove all processors from the region's FX chain. */
406
+ clearRegionFx() {
407
+ const removed = [...this._regionFx];
408
+ this._regionFx = [];
409
+ for (const processor of removed) {
410
+ this.regionFxRemoved.emit(processor);
411
+ }
412
+ }
413
+ /** Whether this region has any FX processors. */
414
+ hasRegionFx() {
415
+ return this._regionFx.length > 0;
416
+ }
417
+ // ─── Ancestral Tracking (Undo) ──────────────────────────────────────────
418
+ /** Get the ancestral start position (before any edits). */
419
+ getAncestralStart() {
420
+ return this._ancestralStart;
421
+ }
422
+ /** Get the ancestral length (before any edits). */
423
+ getAncestralLength() {
424
+ return this._ancestralLength;
425
+ }
426
+ /** Set the ancestral data for undo tracking. */
427
+ setAncestralData(start, length) {
428
+ this._ancestralStart = start;
429
+ this._ancestralLength = length;
430
+ }
431
+ // ─── Enhanced Lock Types ────────────────────────────────────────────────
432
+ /** Whether the region's position is locked (cannot be moved). */
433
+ isPositionLocked() {
434
+ return this._positionLocked;
435
+ }
436
+ /** Set the position lock state. */
437
+ setPositionLocked(locked) {
438
+ this._positionLocked = locked;
439
+ }
440
+ /** Whether the region is video-locked (synced to video timeline). */
441
+ isVideoLocked() {
442
+ return this._videoLocked;
443
+ }
444
+ /** Set the video lock state. */
445
+ setVideoLocked(locked) {
446
+ this._videoLocked = locked;
447
+ }
218
448
  }
449
+ // ─── Trim Operations ──────────────────────────────────────────────────
450
+ /** Minimum region length in frames (1 sample) */
451
+ Region.MIN_LENGTH = 1;
219
452
  //# sourceMappingURL=Region.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Region.js","sourceRoot":"","sources":["../../src/domain/Region.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Region.js","sourceRoot":"","sources":["../../src/domain/Region.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ import { TrackId, SourceId, FrameCount } from './types';
4
4
  * Region Clipboard Data
5
5
  *
6
6
  * Copy된 Region의 정보를 저장합니다.
7
- * Ardour 참조: gtk2_ardour/editor.h (RegionSelection)
8
7
  */
9
8
  export interface ClipboardRegionData {
10
9
  sourceId: SourceId;
@@ -43,13 +42,12 @@ export declare class RegionClipboard {
43
42
  clear(): void;
44
43
  /**
45
44
  * Paste count for offset tracking.
46
- * Ardour: paste_count in editor.h
47
45
  */
48
46
  get pasteCount(): number;
49
47
  incrementPasteCount(): void;
50
48
  /**
51
49
  * Reset paste count.
52
- * Called on undo/redo (Ardour: paste_count = 0 in do_undo/do_redo).
50
+ * Called on undo/redo.
53
51
  */
54
52
  resetPasteCount(): void;
55
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RegionClipboard.d.ts","sourceRoot":"","sources":["../../src/domain/RegionClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAa;IAEhC,OAAO;WAEO,WAAW,IAAI,eAAe;IAO5C;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAczD;;OAEG;IACI,gBAAgB,IAAI,aAAa,CAAC,mBAAmB,CAAC;IAI7D;;OAEG;IACI,OAAO,IAAI,OAAO;IAIzB;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;;OAGG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEM,mBAAmB,IAAI,IAAI;IAIlC;;;OAGG;IACI,eAAe,IAAI,IAAI;CAGjC"}
1
+ {"version":3,"file":"RegionClipboard.d.ts","sourceRoot":"","sources":["../../src/domain/RegionClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAa;IAEhC,OAAO;WAEO,WAAW,IAAI,eAAe;IAO5C;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAczD;;OAEG;IACI,gBAAgB,IAAI,aAAa,CAAC,mBAAmB,CAAC;IAI7D;;OAEG;IACI,OAAO,IAAI,OAAO;IAIzB;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEM,mBAAmB,IAAI,IAAI;IAIlC;;;OAGG;IACI,eAAe,IAAI,IAAI;CAGjC"}
@@ -51,7 +51,6 @@ export class RegionClipboard {
51
51
  }
52
52
  /**
53
53
  * Paste count for offset tracking.
54
- * Ardour: paste_count in editor.h
55
54
  */
56
55
  get pasteCount() {
57
56
  return this._pasteCount;
@@ -61,7 +60,7 @@ export class RegionClipboard {
61
60
  }
62
61
  /**
63
62
  * Reset paste count.
64
- * Called on undo/redo (Ardour: paste_count = 0 in do_undo/do_redo).
63
+ * Called on undo/redo.
65
64
  */
66
65
  resetPasteCount() {
67
66
  this._pasteCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"RegionClipboard.js","sourceRoot":"","sources":["../../src/domain/RegionClipboard.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAKxB;QAHQ,mBAAc,GAA0B,EAAE,CAAC;QAC3C,gBAAW,GAAW,CAAC,CAAC;IAET,CAAC;IAEjB,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAiB,EAAE,QAAmB;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;SAChC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,mBAAmB;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"RegionClipboard.js","sourceRoot":"","sources":["../../src/domain/RegionClipboard.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAKxB;QAHQ,mBAAc,GAA0B,EAAE,CAAC;QAC3C,gBAAW,GAAW,CAAC,CAAC;IAET,CAAC;IAEjB,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAiB,EAAE,QAAmB;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;SAChC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,mBAAmB;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ"}
@@ -1,10 +1,11 @@
1
1
  import { RouteId, ProcessorId } from './types';
2
2
  import { Processor } from '../processing/Processor';
3
3
  import { GainProcessor } from '../processing/GainProcessor';
4
- import { PanProcessor } from '../processing/PanProcessor';
4
+ import { Panner } from '../processing/Panner';
5
5
  import { PolarityProcessor } from '../processing/PolarityProcessor';
6
6
  import { IO } from '../processing/IO';
7
7
  import { Signal } from '../lib/Signal';
8
+ import { LatencyCompensator } from '../audio/engine/LatencyCompensator';
8
9
  export declare class Route {
9
10
  readonly id: RouteId;
10
11
  name: string;
@@ -28,6 +29,19 @@ export declare class Route {
28
29
  * so that all routes in the session are time-aligned.
29
30
  */
30
31
  private _compensationDelay;
32
+ /**
33
+ * Delay buffer that applies `_compensationDelay` samples of latency to
34
+ * this route's audio so all routes stay time-aligned at the summing bus.
35
+ */
36
+ readonly latencyCompensator: LatencyCompensator;
37
+ /**
38
+ * Emitted whenever the total processor latency of this route changes,
39
+ * carrying the new total latency in samples. The session listens to
40
+ * this signal to know when to recompute global compensation.
41
+ */
42
+ readonly latencyChanged: Signal<number>;
43
+ /** Disposers for processor latency-change subscriptions. */
44
+ private _latencySubscriptions;
31
45
  constructor(id: RouteId, name: string);
32
46
  /**
33
47
  * Adds a processor to the chain.
@@ -68,7 +82,7 @@ export declare class Route {
68
82
  /** Polarity (phase inversion) processor. */
69
83
  get polarity(): PolarityProcessor;
70
84
  /** Channel panner. */
71
- get panner(): PanProcessor;
85
+ get panner(): Panner;
72
86
  /**
73
87
  * Sum of latencies (in samples) introduced by all processors in this route.
74
88
  *
@@ -77,6 +91,21 @@ export declare class Route {
77
91
  * per-route compensation delays so that all routes stay time-aligned.
78
92
  */
79
93
  getProcessorLatency(): number;
94
+ /**
95
+ * Alias for {@link getProcessorLatency} — returns the total latency
96
+ * (in samples) across every processor in the chain.
97
+ */
98
+ getTotalLatency(): number;
99
+ /**
100
+ * Returns the maximum tail length (in frames) across all processors in
101
+ * this route.
102
+ *
103
+ * The tail length represents the duration of audio "tail" that persists
104
+ * after input ceases (e.g. reverb decay, delay feedback). The engine
105
+ * uses this value to know how long to keep processing after playback
106
+ * stops.
107
+ */
108
+ getTotalTailLength(): number;
80
109
  /**
81
110
  * The current compensation delay applied to this route (in samples).
82
111
  *
@@ -85,6 +114,15 @@ export declare class Route {
85
114
  * so that every route's effective latency equals the session maximum.
86
115
  */
87
116
  get compensationDelay(): number;
117
+ /**
118
+ * Recalculate the route-level latency total and emit {@link latencyChanged}
119
+ * when it differs from the previous value. Also syncs the
120
+ * {@link latencyCompensator} delay with {@link _compensationDelay}.
121
+ *
122
+ * Called automatically whenever a processor is added / removed or any
123
+ * processor's latency changes.
124
+ */
125
+ updateLatencyCompensation(): void;
88
126
  /**
89
127
  * Directly set the compensation delay for this route.
90
128
  * @param samples Delay in samples (>= 0).
@@ -99,6 +137,8 @@ export declare class Route {
99
137
  *
100
138
  * @param maxLatency The highest processor latency among all routes (in samples).
101
139
  */
102
- computeLatencyCompensation(maxLatency: number): void;
140
+ computeLatencyCompensation(maxLatency?: number): void;
141
+ private _subscribeToProcessorLatency;
142
+ private _unsubscribeFromProcessorLatency;
103
143
  }
104
144
  //# sourceMappingURL=Route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/domain/Route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,qBAAa,KAAK;IACd,SAAgB,EAAE,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IAGpB,SAAgB,KAAK,EAAE,EAAE,CAAC;IAC1B,SAAgB,MAAM,EAAE,EAAE,CAAC;IAE3B,OAAO,CAAC,mBAAmB,CAAmB;IAC9C,OAAO,CAAC,oBAAoB,CAAmB;IAE/C,SAAgB,cAAc,oBAA2B;IACzD,SAAgB,gBAAgB,iBAA6B;IAO7D,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAAgB;IAC7B,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAAgB;IAC9B,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAoB;IACrC,sBAAsB;IACtB,OAAO,CAAC,OAAO,CAAe;IAE9B,OAAO,CAAC,OAAO,CAAiB;IAGhC;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAAa;gBAE3B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;IAkBrC;;;;;OAKG;IACI,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAE,KAAK,GAAG,MAAc,EAAE,KAAK,CAAC,EAAE,MAAM;IAcnF,eAAe,CAAC,EAAE,EAAE,WAAW;IAkBtC;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;IAmBzD;;;;OAIG;IACH,IAAW,UAAU,IAAI,aAAa,CAAC,SAAS,CAAC,CAShD;IAED,IAAW,kBAAkB,IAAI,aAAa,CAAC,SAAS,CAAC,CAExD;IAED,IAAW,mBAAmB,IAAI,aAAa,CAAC,SAAS,CAAC,CAEzD;IAID,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,EAAE,EAAE,MAAM,EAE3B;IAED,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,IAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAEzB;IAED;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,EAAE,EAAE,MAAM,EAEzB;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAE/B;IAID,iCAAiC;IACjC,IAAW,aAAa,IAAI,aAAa,CAAuB;IAChE,0BAA0B;IAC1B,IAAW,KAAK,IAAI,aAAa,CAAwB;IACzD,4CAA4C;IAC5C,IAAW,QAAQ,IAAI,iBAAiB,CAA2B;IACnE,sBAAsB;IACtB,IAAW,MAAM,IAAI,YAAY,CAAyB;IAI1D;;;;;;OAMG;IACI,mBAAmB,IAAI,MAAM;IAQpC;;;;;;OAMG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED;;;OAGG;IACI,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlD;;;;;;;;OAQG;IACI,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAI9D"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/domain/Route.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { GainProcessor } from '../processing/GainProcessor';
2
- import { PanProcessor } from '../processing/PanProcessor';
2
+ import { Panner } from '../processing/Panner';
3
3
  import { PolarityProcessor } from '../processing/PolarityProcessor';
4
4
  import { IO } from '../processing/IO';
5
5
  import { Signal } from '../lib/Signal';
6
+ import { LatencyCompensator } from '../audio/engine/LatencyCompensator';
6
7
  export class Route {
7
8
  constructor(id, name) {
8
9
  this._preFaderProcessors = [];
@@ -16,6 +17,19 @@ export class Route {
16
17
  * so that all routes in the session are time-aligned.
17
18
  */
18
19
  this._compensationDelay = 0;
20
+ /**
21
+ * Delay buffer that applies `_compensationDelay` samples of latency to
22
+ * this route's audio so all routes stay time-aligned at the summing bus.
23
+ */
24
+ this.latencyCompensator = new LatencyCompensator();
25
+ /**
26
+ * Emitted whenever the total processor latency of this route changes,
27
+ * carrying the new total latency in samples. The session listens to
28
+ * this signal to know when to recompute global compensation.
29
+ */
30
+ this.latencyChanged = new Signal();
31
+ /** Disposers for processor latency-change subscriptions. */
32
+ this._latencySubscriptions = new Map();
19
33
  this.id = id;
20
34
  this.name = name;
21
35
  // Initialize IO
@@ -25,7 +39,7 @@ export class Route {
25
39
  this._trim = new GainProcessor(crypto.randomUUID(), 'Trim');
26
40
  this._fader = new GainProcessor(crypto.randomUUID());
27
41
  this._polarity = new PolarityProcessor(crypto.randomUUID());
28
- this._panner = new PanProcessor(crypto.randomUUID());
42
+ this._panner = new Panner(crypto.randomUUID());
29
43
  // Core strip processors are implicit "bridge" processors -- they are
30
44
  // not stored in the pre/post lists but appear in the `processors` getter.
31
45
  }
@@ -43,23 +57,32 @@ export class Route {
43
57
  else {
44
58
  targetList.push(processor);
45
59
  }
60
+ // Subscribe to the processor's latency changes so we can propagate
61
+ // total-latency updates to the session.
62
+ this._subscribeToProcessorLatency(processor);
46
63
  // We emit the processor. Listeners (AudioEngine) will query `processors` getter
47
64
  // to find its global index, or we might need to update listeners if they need precise info.
48
65
  this.processorAdded.emit(processor);
66
+ // Recompute route-level totals now that the chain has changed.
67
+ this.updateLatencyCompensation();
49
68
  }
50
69
  removeProcessor(id) {
51
70
  // Check pre
52
71
  let index = this._preFaderProcessors.findIndex(p => p.id === id);
53
72
  if (index !== -1) {
54
73
  this._preFaderProcessors.splice(index, 1);
74
+ this._unsubscribeFromProcessorLatency(id);
55
75
  this.processorRemoved.emit(id);
76
+ this.updateLatencyCompensation();
56
77
  return;
57
78
  }
58
79
  // Check post
59
80
  index = this._postFaderProcessors.findIndex(p => p.id === id);
60
81
  if (index !== -1) {
61
82
  this._postFaderProcessors.splice(index, 1);
83
+ this._unsubscribeFromProcessorLatency(id);
62
84
  this.processorRemoved.emit(id);
85
+ this.updateLatencyCompensation();
63
86
  return;
64
87
  }
65
88
  }
@@ -113,10 +136,10 @@ export class Route {
113
136
  this._fader.gain = db;
114
137
  }
115
138
  get pan() {
116
- return this._panner.pan;
139
+ return this._panner.azimuth;
117
140
  }
118
141
  set pan(val) {
119
- this._panner.pan = val;
142
+ this._panner.setAzimuth(val);
120
143
  }
121
144
  /**
122
145
  * Input trim gain in dB.
@@ -158,6 +181,32 @@ export class Route {
158
181
  }
159
182
  return total;
160
183
  }
184
+ /**
185
+ * Alias for {@link getProcessorLatency} — returns the total latency
186
+ * (in samples) across every processor in the chain.
187
+ */
188
+ getTotalLatency() {
189
+ return this.getProcessorLatency();
190
+ }
191
+ /**
192
+ * Returns the maximum tail length (in frames) across all processors in
193
+ * this route.
194
+ *
195
+ * The tail length represents the duration of audio "tail" that persists
196
+ * after input ceases (e.g. reverb decay, delay feedback). The engine
197
+ * uses this value to know how long to keep processing after playback
198
+ * stops.
199
+ */
200
+ getTotalTailLength() {
201
+ let maxTail = 0;
202
+ for (const proc of this.processors) {
203
+ const tail = proc.getEffectiveTailLength();
204
+ if (tail > maxTail) {
205
+ maxTail = tail;
206
+ }
207
+ }
208
+ return maxTail;
209
+ }
161
210
  /**
162
211
  * The current compensation delay applied to this route (in samples).
163
212
  *
@@ -168,12 +217,26 @@ export class Route {
168
217
  get compensationDelay() {
169
218
  return this._compensationDelay;
170
219
  }
220
+ /**
221
+ * Recalculate the route-level latency total and emit {@link latencyChanged}
222
+ * when it differs from the previous value. Also syncs the
223
+ * {@link latencyCompensator} delay with {@link _compensationDelay}.
224
+ *
225
+ * Called automatically whenever a processor is added / removed or any
226
+ * processor's latency changes.
227
+ */
228
+ updateLatencyCompensation() {
229
+ const total = this.getProcessorLatency();
230
+ this.latencyCompensator.setDelay(this._compensationDelay);
231
+ this.latencyChanged.emit(total);
232
+ }
171
233
  /**
172
234
  * Directly set the compensation delay for this route.
173
235
  * @param samples Delay in samples (>= 0).
174
236
  */
175
237
  setCompensationDelay(samples) {
176
238
  this._compensationDelay = Math.max(0, samples);
239
+ this.latencyCompensator.setDelay(this._compensationDelay);
177
240
  }
178
241
  /**
179
242
  * Compute the compensation delay needed for this route given the
@@ -185,8 +248,31 @@ export class Route {
185
248
  * @param maxLatency The highest processor latency among all routes (in samples).
186
249
  */
187
250
  computeLatencyCompensation(maxLatency) {
188
- const ownLatency = this.getProcessorLatency();
189
- this._compensationDelay = Math.max(0, maxLatency - ownLatency);
251
+ if (maxLatency !== undefined) {
252
+ const ownLatency = this.getTotalLatency();
253
+ this._compensationDelay = Math.max(0, maxLatency - ownLatency);
254
+ }
255
+ else {
256
+ // Self-contained: compensation is based solely on this route's
257
+ // own latency (useful when a single route needs to report its
258
+ // internal compensation requirement).
259
+ this._compensationDelay = this.getTotalLatency();
260
+ }
261
+ this.latencyCompensator.setDelay(this._compensationDelay);
262
+ }
263
+ // ── Private: processor latency subscriptions ────────────────────────────
264
+ _subscribeToProcessorLatency(processor) {
265
+ const sub = processor.latencyChanged.connect(() => {
266
+ this.updateLatencyCompensation();
267
+ });
268
+ this._latencySubscriptions.set(processor.id, sub);
269
+ }
270
+ _unsubscribeFromProcessorLatency(id) {
271
+ const sub = this._latencySubscriptions.get(id);
272
+ if (sub) {
273
+ sub.dispose();
274
+ this._latencySubscriptions.delete(id);
275
+ }
190
276
  }
191
277
  }
192
278
  //# sourceMappingURL=Route.js.map