@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 @@
1
+ {"version":3,"file":"MeterDSP.js","sourceRoot":"","sources":["../../src/processing/MeterDSP.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { Processor, ProcessorId } from './Processor';
2
+ import { Signal } from '../lib/Signal';
3
+ /**
4
+ * Panning algorithm type.
5
+ */
6
+ export declare enum PannerType {
7
+ /** Simple left/right balance control. */
8
+ STEREO_BALANCE = "stereo_balance",
9
+ /** Stereo width (MS mid-side encoding). */
10
+ STEREO_WIDTH = "stereo_width",
11
+ /** Equal-power panning law (cosine/sine). */
12
+ EQUAL_POWER = "equal_power",
13
+ /** Linear panning law. */
14
+ LINEAR = "linear"
15
+ }
16
+ /**
17
+ * Pan law compensation applied at center position.
18
+ *
19
+ * When a mono signal is panned to center, both speakers reproduce the full
20
+ * signal, causing an apparent loudness increase. Pan laws attenuate the
21
+ * center position to compensate.
22
+ */
23
+ export declare enum PanLaw {
24
+ /** -3 dB center attenuation (equal power, default). */
25
+ MINUS_3DB = "-3dB",
26
+ /** -4.5 dB center attenuation (compromise). */
27
+ MINUS_4_5DB = "-4.5dB",
28
+ /** -6 dB center attenuation (linear). */
29
+ MINUS_6DB = "-6dB",
30
+ /** 0 dB center — no compensation. */
31
+ ZERO_DB = "0dB"
32
+ }
33
+ /**
34
+ * Full-featured stereo panner inspired by Ardour's panner infrastructure
35
+ * (libs/panners/).
36
+ *
37
+ * Supports multiple panning algorithms ({@link PannerType}), configurable
38
+ * pan laws ({@link PanLaw}), stereo width control, and a future-proof
39
+ * elevation parameter for 3-D panning.
40
+ *
41
+ * Signal chain position (inside {@link Route}):
42
+ * … -> [Post-fader plugins] -> **Panner** -> Output
43
+ */
44
+ export declare class Panner extends Processor {
45
+ private _type;
46
+ private _panLaw;
47
+ /** Azimuth position: -1.0 (hard left) to 1.0 (hard right). */
48
+ private _azimuth;
49
+ /** Stereo width: 0.0 (mono) to 1.0 (normal) to 2.0 (extra wide). */
50
+ private _width;
51
+ /** Elevation: -1.0 to 1.0 (reserved for future 3-D / Atmos support). */
52
+ private _elevation;
53
+ readonly azimuthChanged: Signal<number>;
54
+ readonly widthChanged: Signal<number>;
55
+ readonly typeChanged: Signal<PannerType>;
56
+ constructor(id: ProcessorId, name?: string, type?: PannerType, panLaw?: PanLaw);
57
+ get type(): PannerType;
58
+ get panLaw(): PanLaw;
59
+ get azimuth(): number;
60
+ get width(): number;
61
+ get elevation(): number;
62
+ /**
63
+ * Set the pan position (azimuth).
64
+ * @param value -1.0 (hard left) to 1.0 (hard right).
65
+ */
66
+ setAzimuth(value: number): void;
67
+ /**
68
+ * Set the stereo width.
69
+ * @param value 0.0 (mono) through 1.0 (normal) to 2.0 (extra wide).
70
+ */
71
+ setWidth(value: number): void;
72
+ /**
73
+ * Set the elevation (reserved for 3-D panning).
74
+ * @param value -1.0 to 1.0.
75
+ */
76
+ setElevation(value: number): void;
77
+ /**
78
+ * Set the pan law.
79
+ */
80
+ setPanLaw(law: PanLaw): void;
81
+ /**
82
+ * Set the panner type (algorithm).
83
+ */
84
+ setType(type: PannerType): void;
85
+ /**
86
+ * Compute the left and right gain coefficients for the current pan
87
+ * position, width, type and pan law.
88
+ *
89
+ * @returns `[leftGain, rightGain]` — linear gain values.
90
+ */
91
+ computeGains(): [number, number];
92
+ /**
93
+ * Equal-power panning: left = cos(theta), right = sin(theta)
94
+ * where theta = normalizedPan * PI/2.
95
+ */
96
+ private _computeEqualPower;
97
+ /**
98
+ * Linear panning: left = 1 - pan, right = pan (pan 0..1).
99
+ */
100
+ private _computeLinear;
101
+ /**
102
+ * Stereo balance: attenuates the opposite channel rather than boosting.
103
+ * At center both channels pass at unity; panning left attenuates right.
104
+ */
105
+ private _computeStereoBalance;
106
+ /**
107
+ * Stereo width via mid/side (MS) encoding.
108
+ *
109
+ * Mid = (L + R) / 2
110
+ * Side = (L - R) / 2
111
+ *
112
+ * Recombine with width factor w:
113
+ * L' = Mid + w * Side
114
+ * R' = Mid - w * Side
115
+ *
116
+ * width = 0 -> mono, 1 -> normal stereo, 2 -> extra wide.
117
+ *
118
+ * Azimuth is applied on top as equal-power balance of the result.
119
+ */
120
+ private _computeStereoWidth;
121
+ /**
122
+ * Compute the gain multiplier that compensates between the raw algorithm's
123
+ * inherent center level and the user-selected pan law.
124
+ *
125
+ * @param rawLaw The pan law inherent to the raw algorithm.
126
+ * @returns A linear gain multiplier (>= 1 if boosting center, <= 1 if cutting).
127
+ */
128
+ private _centerCompensation;
129
+ /**
130
+ * Get the azimuth as a normalized 0..1 value (for automation lanes).
131
+ * 0 = hard left, 0.5 = center, 1 = hard right.
132
+ */
133
+ getNormalizedAzimuth(): number;
134
+ /**
135
+ * Set azimuth from a normalized 0..1 value.
136
+ */
137
+ setNormalizedAzimuth(normalized: number): void;
138
+ /**
139
+ * Human-readable string for the current pan position.
140
+ *
141
+ * Examples: `"L 30"`, `"C"`, `"R 45"`, `"L 100"`.
142
+ */
143
+ valueAsString(): string;
144
+ }
145
+ //# sourceMappingURL=Panner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panner.d.ts","sourceRoot":"","sources":["../../src/processing/Panner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;GAEG;AACH,oBAAY,UAAU;IAClB,yCAAyC;IACzC,cAAc,mBAAmB;IACjC,2CAA2C;IAC3C,YAAY,iBAAiB;IAC7B,6CAA6C;IAC7C,WAAW,gBAAgB;IAC3B,0BAA0B;IAC1B,MAAM,WAAW;CACpB;AAED;;;;;;GAMG;AACH,oBAAY,MAAM;IACd,uDAAuD;IACvD,SAAS,SAAS;IAClB,+CAA+C;IAC/C,WAAW,WAAW;IACtB,yCAAyC;IACzC,SAAS,SAAS;IAClB,qCAAqC;IACrC,OAAO,QAAQ;CAClB;AAcD;;;;;;;;;;GAUG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACjC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAS;IAExB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAa;IAC7B,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,wEAAwE;IACxE,OAAO,CAAC,UAAU,CAAa;IAG/B,SAAgB,cAAc,iBAAwB;IACtD,SAAgB,YAAY,iBAAwB;IACpD,SAAgB,WAAW,qBAA4B;gBAGnD,EAAE,EAAE,WAAW,EACf,IAAI,GAAE,MAAiB,EACvB,IAAI,GAAE,UAAmC,EACzC,MAAM,GAAE,MAAyB;IASrC,IAAW,IAAI,IAAI,UAAU,CAAuB;IACpD,IAAW,MAAM,IAAI,MAAM,CAAyB;IACpD,IAAW,OAAO,IAAI,MAAM,CAA0B;IACtD,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,IAAW,SAAS,IAAI,MAAM,CAA4B;IAI1D;;;OAGG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAStC;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASpC;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAUtC;;;;;OAKG;IACI,YAAY,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAavC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;OAGG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;OAEG;IACI,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAOrD;;;;OAIG;IACI,aAAa,IAAI,MAAM;CAUjC"}
@@ -0,0 +1,281 @@
1
+ import { Processor } from './Processor';
2
+ import { Signal } from '../lib/Signal';
3
+ /**
4
+ * Panning algorithm type.
5
+ */
6
+ export var PannerType;
7
+ (function (PannerType) {
8
+ /** Simple left/right balance control. */
9
+ PannerType["STEREO_BALANCE"] = "stereo_balance";
10
+ /** Stereo width (MS mid-side encoding). */
11
+ PannerType["STEREO_WIDTH"] = "stereo_width";
12
+ /** Equal-power panning law (cosine/sine). */
13
+ PannerType["EQUAL_POWER"] = "equal_power";
14
+ /** Linear panning law. */
15
+ PannerType["LINEAR"] = "linear";
16
+ })(PannerType || (PannerType = {}));
17
+ /**
18
+ * Pan law compensation applied at center position.
19
+ *
20
+ * When a mono signal is panned to center, both speakers reproduce the full
21
+ * signal, causing an apparent loudness increase. Pan laws attenuate the
22
+ * center position to compensate.
23
+ */
24
+ export var PanLaw;
25
+ (function (PanLaw) {
26
+ /** -3 dB center attenuation (equal power, default). */
27
+ PanLaw["MINUS_3DB"] = "-3dB";
28
+ /** -4.5 dB center attenuation (compromise). */
29
+ PanLaw["MINUS_4_5DB"] = "-4.5dB";
30
+ /** -6 dB center attenuation (linear). */
31
+ PanLaw["MINUS_6DB"] = "-6dB";
32
+ /** 0 dB center — no compensation. */
33
+ PanLaw["ZERO_DB"] = "0dB";
34
+ })(PanLaw || (PanLaw = {}));
35
+ /**
36
+ * Map from PanLaw to the linear gain factor applied at dead center.
37
+ */
38
+ function panLawCenterGain(law) {
39
+ switch (law) {
40
+ case PanLaw.MINUS_3DB: return Math.pow(10, -3.0 / 20); // ~0.7071
41
+ case PanLaw.MINUS_4_5DB: return Math.pow(10, -4.5 / 20); // ~0.5957
42
+ case PanLaw.MINUS_6DB: return Math.pow(10, -6.0 / 20); // ~0.5012
43
+ case PanLaw.ZERO_DB: return 1.0;
44
+ }
45
+ }
46
+ /**
47
+ * Full-featured stereo panner inspired by Ardour's panner infrastructure
48
+ * (libs/panners/).
49
+ *
50
+ * Supports multiple panning algorithms ({@link PannerType}), configurable
51
+ * pan laws ({@link PanLaw}), stereo width control, and a future-proof
52
+ * elevation parameter for 3-D panning.
53
+ *
54
+ * Signal chain position (inside {@link Route}):
55
+ * … -> [Post-fader plugins] -> **Panner** -> Output
56
+ */
57
+ export class Panner extends Processor {
58
+ constructor(id, name = 'Panner', type = PannerType.EQUAL_POWER, panLaw = PanLaw.MINUS_3DB) {
59
+ super(id, name);
60
+ /** Azimuth position: -1.0 (hard left) to 1.0 (hard right). */
61
+ this._azimuth = 0;
62
+ /** Stereo width: 0.0 (mono) to 1.0 (normal) to 2.0 (extra wide). */
63
+ this._width = 1.0;
64
+ /** Elevation: -1.0 to 1.0 (reserved for future 3-D / Atmos support). */
65
+ this._elevation = 0;
66
+ // ── Signals ─────────────────────────────────────────────────────────────
67
+ this.azimuthChanged = new Signal();
68
+ this.widthChanged = new Signal();
69
+ this.typeChanged = new Signal();
70
+ this._type = type;
71
+ this._panLaw = panLaw;
72
+ }
73
+ // ── Getters ─────────────────────────────────────────────────────────────
74
+ get type() { return this._type; }
75
+ get panLaw() { return this._panLaw; }
76
+ get azimuth() { return this._azimuth; }
77
+ get width() { return this._width; }
78
+ get elevation() { return this._elevation; }
79
+ // ── Setters ─────────────────────────────────────────────────────────────
80
+ /**
81
+ * Set the pan position (azimuth).
82
+ * @param value -1.0 (hard left) to 1.0 (hard right).
83
+ */
84
+ setAzimuth(value) {
85
+ const clamped = Math.max(-1, Math.min(1, value));
86
+ if (this._azimuth !== clamped) {
87
+ this._azimuth = clamped;
88
+ this.azimuthChanged.emit(clamped);
89
+ this.stateChanged.emit();
90
+ }
91
+ }
92
+ /**
93
+ * Set the stereo width.
94
+ * @param value 0.0 (mono) through 1.0 (normal) to 2.0 (extra wide).
95
+ */
96
+ setWidth(value) {
97
+ const clamped = Math.max(0, Math.min(2, value));
98
+ if (this._width !== clamped) {
99
+ this._width = clamped;
100
+ this.widthChanged.emit(clamped);
101
+ this.stateChanged.emit();
102
+ }
103
+ }
104
+ /**
105
+ * Set the elevation (reserved for 3-D panning).
106
+ * @param value -1.0 to 1.0.
107
+ */
108
+ setElevation(value) {
109
+ const clamped = Math.max(-1, Math.min(1, value));
110
+ this._elevation = clamped;
111
+ }
112
+ /**
113
+ * Set the pan law.
114
+ */
115
+ setPanLaw(law) {
116
+ this._panLaw = law;
117
+ this.stateChanged.emit();
118
+ }
119
+ /**
120
+ * Set the panner type (algorithm).
121
+ */
122
+ setType(type) {
123
+ if (this._type !== type) {
124
+ this._type = type;
125
+ this.typeChanged.emit(type);
126
+ this.stateChanged.emit();
127
+ }
128
+ }
129
+ // ── Core computation ────────────────────────────────────────────────────
130
+ /**
131
+ * Compute the left and right gain coefficients for the current pan
132
+ * position, width, type and pan law.
133
+ *
134
+ * @returns `[leftGain, rightGain]` — linear gain values.
135
+ */
136
+ computeGains() {
137
+ switch (this._type) {
138
+ case PannerType.EQUAL_POWER:
139
+ return this._computeEqualPower();
140
+ case PannerType.LINEAR:
141
+ return this._computeLinear();
142
+ case PannerType.STEREO_BALANCE:
143
+ return this._computeStereoBalance();
144
+ case PannerType.STEREO_WIDTH:
145
+ return this._computeStereoWidth();
146
+ }
147
+ }
148
+ /**
149
+ * Equal-power panning: left = cos(theta), right = sin(theta)
150
+ * where theta = normalizedPan * PI/2.
151
+ */
152
+ _computeEqualPower() {
153
+ const normalized = (this._azimuth + 1) / 2; // 0..1
154
+ const angle = normalized * Math.PI / 2;
155
+ let leftGain = Math.cos(angle);
156
+ let rightGain = Math.sin(angle);
157
+ // Apply pan-law compensation at center.
158
+ // At center (normalized = 0.5) the raw equal-power gains are both
159
+ // ~0.7071 (-3 dB). To map to a different pan law we scale so that
160
+ // the center level matches the chosen law.
161
+ const compensation = this._centerCompensation(PanLaw.MINUS_3DB);
162
+ leftGain *= compensation;
163
+ rightGain *= compensation;
164
+ return [leftGain, rightGain];
165
+ }
166
+ /**
167
+ * Linear panning: left = 1 - pan, right = pan (pan 0..1).
168
+ */
169
+ _computeLinear() {
170
+ const normalized = (this._azimuth + 1) / 2; // 0..1
171
+ let leftGain = 1 - normalized;
172
+ let rightGain = normalized;
173
+ // Raw linear center is 0.5 each (-6 dB).
174
+ const compensation = this._centerCompensation(PanLaw.MINUS_6DB);
175
+ leftGain *= compensation;
176
+ rightGain *= compensation;
177
+ return [leftGain, rightGain];
178
+ }
179
+ /**
180
+ * Stereo balance: attenuates the opposite channel rather than boosting.
181
+ * At center both channels pass at unity; panning left attenuates right.
182
+ */
183
+ _computeStereoBalance() {
184
+ // normalized: 0 = hard left, 0.5 = center, 1 = hard right
185
+ const normalized = (this._azimuth + 1) / 2;
186
+ let leftGain;
187
+ let rightGain;
188
+ if (normalized <= 0.5) {
189
+ // Panned left — attenuate right channel
190
+ leftGain = 1.0;
191
+ rightGain = normalized * 2; // 0..1
192
+ }
193
+ else {
194
+ // Panned right — attenuate left channel
195
+ leftGain = (1 - normalized) * 2; // 1..0
196
+ rightGain = 1.0;
197
+ }
198
+ return [leftGain, rightGain];
199
+ }
200
+ /**
201
+ * Stereo width via mid/side (MS) encoding.
202
+ *
203
+ * Mid = (L + R) / 2
204
+ * Side = (L - R) / 2
205
+ *
206
+ * Recombine with width factor w:
207
+ * L' = Mid + w * Side
208
+ * R' = Mid - w * Side
209
+ *
210
+ * width = 0 -> mono, 1 -> normal stereo, 2 -> extra wide.
211
+ *
212
+ * Azimuth is applied on top as equal-power balance of the result.
213
+ */
214
+ _computeStereoWidth() {
215
+ // Start with equal-power base for the azimuth component
216
+ const normalized = (this._azimuth + 1) / 2;
217
+ const angle = normalized * Math.PI / 2;
218
+ let leftGain = Math.cos(angle);
219
+ let rightGain = Math.sin(angle);
220
+ // Apply width via MS transform coefficients.
221
+ // For a mono input treated as mid-only (side = 0):
222
+ // L = mid, R = mid -> both get equal-power panned gains.
223
+ // For a stereo signal with width:
224
+ // The width scales the side component. We express this as
225
+ // gain adjustments that can be applied per-channel.
226
+ const mid = 1.0;
227
+ const side = this._width;
228
+ const lScale = (mid + side) / 2;
229
+ const rScale = (mid + side) / 2;
230
+ leftGain *= lScale;
231
+ rightGain *= rScale;
232
+ const compensation = this._centerCompensation(PanLaw.MINUS_3DB);
233
+ leftGain *= compensation;
234
+ rightGain *= compensation;
235
+ return [leftGain, rightGain];
236
+ }
237
+ /**
238
+ * Compute the gain multiplier that compensates between the raw algorithm's
239
+ * inherent center level and the user-selected pan law.
240
+ *
241
+ * @param rawLaw The pan law inherent to the raw algorithm.
242
+ * @returns A linear gain multiplier (>= 1 if boosting center, <= 1 if cutting).
243
+ */
244
+ _centerCompensation(rawLaw) {
245
+ const rawCenter = panLawCenterGain(rawLaw);
246
+ const targetCenter = panLawCenterGain(this._panLaw);
247
+ // Scale so that at center, the actual level matches `targetCenter`.
248
+ return targetCenter / rawCenter;
249
+ }
250
+ // ── Normalized / automation helpers ──────────────────────────────────────
251
+ /**
252
+ * Get the azimuth as a normalized 0..1 value (for automation lanes).
253
+ * 0 = hard left, 0.5 = center, 1 = hard right.
254
+ */
255
+ getNormalizedAzimuth() {
256
+ return (this._azimuth + 1) / 2;
257
+ }
258
+ /**
259
+ * Set azimuth from a normalized 0..1 value.
260
+ */
261
+ setNormalizedAzimuth(normalized) {
262
+ const clamped = Math.max(0, Math.min(1, normalized));
263
+ this.setAzimuth(clamped * 2 - 1);
264
+ }
265
+ // ── Display ─────────────────────────────────────────────────────────────
266
+ /**
267
+ * Human-readable string for the current pan position.
268
+ *
269
+ * Examples: `"L 30"`, `"C"`, `"R 45"`, `"L 100"`.
270
+ */
271
+ valueAsString() {
272
+ if (this._azimuth === 0) {
273
+ return 'C';
274
+ }
275
+ // Convert -1..1 to percentage-like 0..100
276
+ const pct = Math.round(Math.abs(this._azimuth) * 100);
277
+ const dir = this._azimuth < 0 ? 'L' : 'R';
278
+ return `${dir} ${pct}`;
279
+ }
280
+ }
281
+ //# sourceMappingURL=Panner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panner.js","sourceRoot":"","sources":["../../src/processing/Panner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IAClB,yCAAyC;IACzC,+CAAiC,CAAA;IACjC,2CAA2C;IAC3C,2CAA6B,CAAA;IAC7B,6CAA6C;IAC7C,yCAA2B,CAAA;IAC3B,0BAA0B;IAC1B,+BAAiB,CAAA;AACrB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,MASX;AATD,WAAY,MAAM;IACd,uDAAuD;IACvD,4BAAkB,CAAA;IAClB,+CAA+C;IAC/C,gCAAsB,CAAA;IACtB,yCAAyC;IACzC,4BAAkB,CAAA;IAClB,qCAAqC;IACrC,yBAAe,CAAA;AACnB,CAAC,EATW,MAAM,KAAN,MAAM,QASjB;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACjC,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,SAAS,CAAC,CAAG,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAG,UAAU;QACrE,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAG,UAAU;QACrE,KAAK,MAAM,CAAC,SAAS,CAAC,CAAG,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAG,UAAU;QACrE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAK,OAAO,GAAG,CAAC;IACxC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IAgBjC,YACI,EAAe,EACf,OAAe,QAAQ,EACvB,OAAmB,UAAU,CAAC,WAAW,EACzC,SAAiB,MAAM,CAAC,SAAS;QAEjC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAlBpB,8DAA8D;QACtD,aAAQ,GAAW,CAAC,CAAC;QAC7B,oEAAoE;QAC5D,WAAM,GAAW,GAAG,CAAC;QAC7B,wEAAwE;QAChE,eAAU,GAAW,CAAC,CAAC;QAE/B,2EAA2E;QAC3D,mBAAc,GAAG,IAAI,MAAM,EAAU,CAAC;QACtC,iBAAY,GAAG,IAAI,MAAM,EAAU,CAAC;QACpC,gBAAW,GAAG,IAAI,MAAM,EAAc,CAAC;QASnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,2EAA2E;IAE3E,IAAW,IAAI,KAAiB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,IAAW,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,IAAW,OAAO,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,IAAW,SAAS,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,2EAA2E;IAE3E;;;OAGG;IACI,UAAU,CAAC,KAAa;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,KAAa;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,KAAa;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,GAAW;QACxB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,IAAgB;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,2EAA2E;IAE3E;;;;;OAKG;IACI,YAAY;QACf,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,UAAU,CAAC,WAAW;gBACvB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrC,KAAK,UAAU,CAAC,MAAM;gBAClB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,UAAU,CAAC,cAAc;gBAC1B,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxC,KAAK,UAAU,CAAC,YAAY;gBACxB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1C,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACtB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;QACnD,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhC,wCAAwC;QACxC,kEAAkE;QAClE,mEAAmE;QACnE,2CAA2C;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,QAAQ,IAAI,YAAY,CAAC;QACzB,SAAS,IAAI,YAAY,CAAC;QAE1B,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,cAAc;QAClB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;QACnD,IAAI,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC;QAC9B,IAAI,SAAS,GAAG,UAAU,CAAC;QAE3B,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,QAAQ,IAAI,YAAY,CAAC;QACzB,SAAS,IAAI,YAAY,CAAC;QAE1B,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACK,qBAAqB;QACzB,0DAA0D;QAC1D,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAgB,CAAC;QACrB,IAAI,SAAiB,CAAC;QAEtB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACpB,wCAAwC;YACxC,QAAQ,GAAG,GAAG,CAAC;YACf,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO;QACvC,CAAC;aAAM,CAAC;YACJ,wCAAwC;YACxC,QAAQ,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;YACxC,SAAS,GAAG,GAAG,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,mBAAmB;QACvB,wDAAwD;QACxD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhC,6CAA6C;QAC7C,mDAAmD;QACnD,6DAA6D;QAC7D,kCAAkC;QAClC,6DAA6D;QAC7D,sDAAsD;QACtD,MAAM,GAAG,GAAG,GAAG,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,QAAQ,IAAI,MAAM,CAAC;QACnB,SAAS,IAAI,MAAM,CAAC;QAEpB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,QAAQ,IAAI,YAAY,CAAC;QACzB,SAAS,IAAI,YAAY,CAAC;QAE1B,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CAAC,MAAc;QACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,oEAAoE;QACpE,OAAO,YAAY,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,4EAA4E;IAE5E;;;OAGG;IACI,oBAAoB;QACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,UAAkB;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,2EAA2E;IAE3E;;;;OAIG;IACI,aAAa;QAChB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACf,CAAC;QAED,0CAA0C;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1C,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,CAAC;CACJ"}
@@ -1,9 +1,64 @@
1
1
  import { Processor, ProcessorId } from './Processor';
2
2
  import { Plugin } from '../plugins/Plugin';
3
+ /**
4
+ * PluginInsert wraps a Plugin instance inside the Processor graph, bridging
5
+ * the plugin parameter world with the route's latency-compensation and
6
+ * tail-length bookkeeping.
7
+ *
8
+ * It automatically estimates processing latency and tail time based on the
9
+ * plugin type and name, and re-evaluates those estimates whenever a plugin
10
+ * parameter changes.
11
+ */
3
12
  export declare class PluginInsert extends Processor {
4
13
  private _plugin;
5
- constructor(id: ProcessorId, plugin: Plugin);
14
+ private _sampleRate;
15
+ private _parameterSubscription;
16
+ constructor(id: ProcessorId, plugin: Plugin, sampleRate?: number);
6
17
  get plugin(): Plugin;
18
+ /** The sample rate used for time-to-sample conversions in tail estimation. */
19
+ get sampleRate(): number;
20
+ set sampleRate(rate: number);
7
21
  set active(value: boolean);
22
+ get active(): boolean;
23
+ /**
24
+ * Estimate latency (in samples) based on plugin name / type heuristics.
25
+ *
26
+ * Real-world plugins would report their exact latency; here we use
27
+ * conservative estimates for common processor categories:
28
+ *
29
+ * - Linear-phase EQ: ~512 samples (FIR filter latency)
30
+ * - Compressor / Limiter: ~64-256 samples (look-ahead)
31
+ * - De-esser: ~64 samples
32
+ * - Other effects / instruments / analyzers: 0
33
+ */
34
+ updateLatencyFromPlugin(): void;
35
+ /**
36
+ * Estimate the tail length (in frames / samples) based on plugin name and
37
+ * parameter state.
38
+ *
39
+ * - Reverb / convolution: 2-5 seconds, scaled by decay / wet parameters.
40
+ * - Delay: delay-time * estimated feedback-loop count.
41
+ * - Everything else: 0.
42
+ */
43
+ updateTailFromPlugin(): void;
44
+ /**
45
+ * Estimate reverb tail between 2 and 5 seconds.
46
+ * Uses 'decay' or 'time' parameters for the base, and 'wet' / 'mix' to
47
+ * scale down when the effect is barely audible.
48
+ */
49
+ private _estimateReverbTail;
50
+ /**
51
+ * Estimate delay tail based on delay-time and feedback.
52
+ *
53
+ * The effective tail is roughly `delayTime * loops` where loops is
54
+ * derived from the feedback amount: loops ≈ log(threshold) / log(feedback).
55
+ * We cap at a sensible maximum (10 s).
56
+ */
57
+ private _estimateDelayTail;
58
+ /**
59
+ * Dispose of internal subscriptions. Call when removing the insert from
60
+ * the processing chain.
61
+ */
62
+ dispose(): void;
8
63
  }
9
64
  //# sourceMappingURL=PluginInsert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginInsert.d.ts","sourceRoot":"","sources":["../../src/processing/PluginInsert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,qBAAa,YAAa,SAAQ,SAAS;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;IAK3C,IAAW,MAAM,IAAI,MAAM,CAE1B;IAGD,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAG/B;CACJ"}
1
+ {"version":3,"file":"PluginInsert.d.ts","sourceRoot":"","sources":["../../src/processing/PluginInsert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAQxD;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,sBAAsB,CAA0B;gBAE5C,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAA4B;IAkBrF,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,8EAA8E;IAC9E,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,UAAU,CAAC,IAAI,EAAE,MAAM,EAOjC;IAGD,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAU/B;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAID;;;;;;;;;;OAUG;IACI,uBAAuB,IAAI,IAAI;IA4BtC;;;;;;;OAOG;IACI,oBAAoB,IAAI,IAAI;IAkBnC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;;OAGG;IACI,OAAO,IAAI,IAAI;CAGzB"}