@libraz/libsonare 1.7.2 → 1.8.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 (303) hide show
  1. package/NOTICE +178 -0
  2. package/README.md +26 -203
  3. package/dist/_chain_config.d.ts +14 -0
  4. package/dist/_chain_config.d.ts.map +1 -0
  5. package/dist/_effects_common.d.ts +6 -0
  6. package/dist/_effects_common.d.ts.map +1 -0
  7. package/dist/_feature_validation.d.ts +8 -0
  8. package/dist/_feature_validation.d.ts.map +1 -0
  9. package/dist/_fft_options.d.ts +24 -0
  10. package/dist/_fft_options.d.ts.map +1 -0
  11. package/dist/align_take.d.ts +50 -0
  12. package/dist/align_take.d.ts.map +1 -0
  13. package/dist/analysis.d.ts +29 -5840
  14. package/dist/analysis.d.ts.map +1 -0
  15. package/dist/analysis.js +873 -722
  16. package/dist/analysis.js.map +1 -1
  17. package/dist/analysis_helpers.d.ts +9 -0
  18. package/dist/analysis_helpers.d.ts.map +1 -0
  19. package/dist/audio.d.ts +163 -0
  20. package/dist/audio.d.ts.map +1 -0
  21. package/dist/clip_page_streamer.d.ts +133 -0
  22. package/dist/clip_page_streamer.d.ts.map +1 -0
  23. package/dist/codes.d.ts +44 -0
  24. package/dist/codes.d.ts.map +1 -0
  25. package/dist/effects_mastering.d.ts +23 -0
  26. package/dist/effects_mastering.d.ts.map +1 -0
  27. package/dist/effects_note_ops.d.ts +477 -0
  28. package/dist/effects_note_ops.d.ts.map +1 -0
  29. package/dist/effects_percussive.d.ts +185 -0
  30. package/dist/effects_percussive.d.ts.map +1 -0
  31. package/dist/effects_separation.d.ts +65 -0
  32. package/dist/effects_separation.d.ts.map +1 -0
  33. package/dist/effects_spectral.d.ts +28 -0
  34. package/dist/effects_spectral.d.ts.map +1 -0
  35. package/dist/effects_timepitch.d.ts +129 -0
  36. package/dist/effects_timepitch.d.ts.map +1 -0
  37. package/dist/effects_voice_change.d.ts +53 -0
  38. package/dist/effects_voice_change.d.ts.map +1 -0
  39. package/dist/errors.d.ts +51 -0
  40. package/dist/errors.d.ts.map +1 -0
  41. package/dist/feature_core.d.ts +341 -0
  42. package/dist/feature_core.d.ts.map +1 -0
  43. package/dist/feature_decompose.d.ts +278 -0
  44. package/dist/feature_decompose.d.ts.map +1 -0
  45. package/dist/feature_inverse.d.ts +128 -0
  46. package/dist/feature_inverse.d.ts.map +1 -0
  47. package/dist/feature_loudness.d.ts +66 -0
  48. package/dist/feature_loudness.d.ts.map +1 -0
  49. package/dist/feature_music.d.ts +307 -0
  50. package/dist/feature_music.d.ts.map +1 -0
  51. package/dist/feature_pitch.d.ts +108 -0
  52. package/dist/feature_pitch.d.ts.map +1 -0
  53. package/dist/feature_resample.d.ts +16 -0
  54. package/dist/feature_resample.d.ts.map +1 -0
  55. package/dist/feature_spectral.d.ts +137 -0
  56. package/dist/feature_spectral.d.ts.map +1 -0
  57. package/dist/feature_spectrogram.d.ts +198 -0
  58. package/dist/feature_spectrogram.d.ts.map +1 -0
  59. package/dist/features.d.ts +10 -0
  60. package/dist/features.d.ts.map +1 -0
  61. package/dist/hrtf/default.shrf +0 -0
  62. package/dist/index.d.ts +74 -7431
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +3758 -1362
  65. package/dist/index.js.map +1 -1
  66. package/dist/instrument_types.d.ts +517 -0
  67. package/dist/instrument_types.d.ts.map +1 -0
  68. package/dist/live_audio.d.ts +35 -0
  69. package/dist/live_audio.d.ts.map +1 -0
  70. package/dist/mastering_chain.d.ts +213 -0
  71. package/dist/mastering_chain.d.ts.map +1 -0
  72. package/dist/mastering_core.d.ts +457 -0
  73. package/dist/mastering_core.d.ts.map +1 -0
  74. package/dist/mastering_dynamics.d.ts +80 -0
  75. package/dist/mastering_dynamics.d.ts.map +1 -0
  76. package/dist/metering.d.ts +287 -0
  77. package/dist/metering.d.ts.map +1 -0
  78. package/dist/mixer.d.ts +464 -0
  79. package/dist/mixer.d.ts.map +1 -0
  80. package/dist/mixing_assistant.d.ts +62 -0
  81. package/dist/mixing_assistant.d.ts.map +1 -0
  82. package/dist/mixing_oneshot.d.ts +40 -0
  83. package/dist/mixing_oneshot.d.ts.map +1 -0
  84. package/dist/module_state.d.ts +15 -0
  85. package/dist/module_state.d.ts.map +1 -0
  86. package/dist/opfs_clip_pages.d.ts +28 -0
  87. package/dist/opfs_clip_pages.d.ts.map +1 -0
  88. package/dist/playback_renderer.d.ts +128 -0
  89. package/dist/playback_renderer.d.ts.map +1 -0
  90. package/dist/polyphony.d.ts +202 -0
  91. package/dist/polyphony.d.ts.map +1 -0
  92. package/dist/project.d.ts +8 -0
  93. package/dist/project.d.ts.map +1 -0
  94. package/dist/project_class.d.ts +562 -0
  95. package/dist/project_class.d.ts.map +1 -0
  96. package/dist/project_internal.d.ts +194 -0
  97. package/dist/project_internal.d.ts.map +1 -0
  98. package/dist/project_synth.d.ts +74 -0
  99. package/dist/project_synth.d.ts.map +1 -0
  100. package/dist/project_types.d.ts +652 -0
  101. package/dist/project_types.d.ts.map +1 -0
  102. package/dist/public_types.d.ts +185 -0
  103. package/dist/public_types.d.ts.map +1 -0
  104. package/dist/public_types_acoustic.d.ts +215 -0
  105. package/dist/public_types_acoustic.d.ts.map +1 -0
  106. package/dist/public_types_mastering.d.ts +510 -0
  107. package/dist/public_types_mastering.d.ts.map +1 -0
  108. package/dist/public_types_mixing.d.ts +436 -0
  109. package/dist/public_types_mixing.d.ts.map +1 -0
  110. package/dist/public_types_music.d.ts +619 -0
  111. package/dist/public_types_music.d.ts.map +1 -0
  112. package/dist/public_types_playback.d.ts +164 -0
  113. package/dist/public_types_playback.d.ts.map +1 -0
  114. package/dist/public_types_realtime.d.ts +174 -0
  115. package/dist/public_types_realtime.d.ts.map +1 -0
  116. package/dist/public_types_repair.d.ts +424 -0
  117. package/dist/public_types_repair.d.ts.map +1 -0
  118. package/dist/public_types_spectral.d.ts +697 -0
  119. package/dist/public_types_spectral.d.ts.map +1 -0
  120. package/dist/quick_analysis.d.ts +445 -0
  121. package/dist/quick_analysis.d.ts.map +1 -0
  122. package/dist/realtime_engine.d.ts +850 -0
  123. package/dist/realtime_engine.d.ts.map +1 -0
  124. package/dist/realtime_voice_changer.d.ts +158 -0
  125. package/dist/realtime_voice_changer.d.ts.map +1 -0
  126. package/dist/repair_dereverb.d.ts +187 -0
  127. package/dist/repair_dereverb.d.ts.map +1 -0
  128. package/dist/repair_impulsive.d.ts +186 -0
  129. package/dist/repair_impulsive.d.ts.map +1 -0
  130. package/dist/repair_noise.d.ts +239 -0
  131. package/dist/repair_noise.d.ts.map +1 -0
  132. package/dist/repair_trim.d.ts +123 -0
  133. package/dist/repair_trim.d.ts.map +1 -0
  134. package/dist/sample_bank.d.ts +84 -0
  135. package/dist/sample_bank.d.ts.map +1 -0
  136. package/dist/scale.d.ts +10 -0
  137. package/dist/scale.d.ts.map +1 -0
  138. package/dist/schemas/mixer-scene.schema.json +393 -0
  139. package/dist/schemas/playback-renderer-config.schema.json +392 -0
  140. package/dist/sonare-analysis.d.ts +8 -0
  141. package/dist/sonare-analysis.js +2 -2
  142. package/dist/sonare-analysis.wasm +0 -0
  143. package/dist/sonare.d.ts +3909 -0
  144. package/dist/sonare.js +2 -2
  145. package/dist/sonare.wasm +0 -0
  146. package/dist/stream_analyzer.d.ts +163 -0
  147. package/dist/stream_analyzer.d.ts.map +1 -0
  148. package/dist/stream_types.d.ts +214 -0
  149. package/dist/stream_types.d.ts.map +1 -0
  150. package/dist/streaming_mixing.d.ts +6 -0
  151. package/dist/streaming_mixing.d.ts.map +1 -0
  152. package/dist/streaming_processors.d.ts +335 -0
  153. package/dist/streaming_processors.d.ts.map +1 -0
  154. package/dist/transcribe.d.ts +77 -0
  155. package/dist/transcribe.d.ts.map +1 -0
  156. package/dist/validation.d.ts +140 -0
  157. package/dist/validation.d.ts.map +1 -0
  158. package/dist/web_midi.d.ts +77 -0
  159. package/dist/web_midi.d.ts.map +1 -0
  160. package/dist/worker.d.ts +5 -48
  161. package/dist/worker.d.ts.map +1 -0
  162. package/dist/worker.js +94 -41
  163. package/dist/worker.js.map +1 -1
  164. package/dist/worker_client.d.ts +96 -0
  165. package/dist/worker_client.d.ts.map +1 -0
  166. package/dist/worker_protocol.d.ts +43 -0
  167. package/dist/worker_protocol.d.ts.map +1 -0
  168. package/dist/worklet/audio_types.d.ts +21 -0
  169. package/dist/worklet/audio_types.d.ts.map +1 -0
  170. package/dist/worklet/engine-automation.d.ts +29 -0
  171. package/dist/worklet/engine-automation.d.ts.map +1 -0
  172. package/dist/worklet/engine-capture-facade.d.ts +35 -0
  173. package/dist/worklet/engine-capture-facade.d.ts.map +1 -0
  174. package/dist/worklet/engine-clips.d.ts +23 -0
  175. package/dist/worklet/engine-clips.d.ts.map +1 -0
  176. package/dist/worklet/engine-markers.d.ts +40 -0
  177. package/dist/worklet/engine-markers.d.ts.map +1 -0
  178. package/dist/worklet/engine-mixer-facade.d.ts +128 -0
  179. package/dist/worklet/engine-mixer-facade.d.ts.map +1 -0
  180. package/dist/worklet/engine-node.d.ts +81 -0
  181. package/dist/worklet/engine-node.d.ts.map +1 -0
  182. package/dist/worklet/engine-offline.d.ts +81 -0
  183. package/dist/worklet/engine-offline.d.ts.map +1 -0
  184. package/dist/worklet/engine-options.d.ts +12 -0
  185. package/dist/worklet/engine-options.d.ts.map +1 -0
  186. package/dist/worklet/engine-parameter-facade.d.ts +106 -0
  187. package/dist/worklet/engine-parameter-facade.d.ts.map +1 -0
  188. package/dist/worklet/engine-processor.d.ts +68 -0
  189. package/dist/worklet/engine-processor.d.ts.map +1 -0
  190. package/dist/worklet/engine-register.d.ts +2 -0
  191. package/dist/worklet/engine-register.d.ts.map +1 -0
  192. package/dist/worklet/engine-strips.d.ts +73 -0
  193. package/dist/worklet/engine-strips.d.ts.map +1 -0
  194. package/dist/worklet/engine-sync.d.ts +37 -0
  195. package/dist/worklet/engine-sync.d.ts.map +1 -0
  196. package/dist/worklet/engine-tempo-facade.d.ts +48 -0
  197. package/dist/worklet/engine-tempo-facade.d.ts.map +1 -0
  198. package/dist/worklet/engine.d.ts +397 -0
  199. package/dist/worklet/engine.d.ts.map +1 -0
  200. package/dist/worklet/guards.d.ts +47 -0
  201. package/dist/worklet/guards.d.ts.map +1 -0
  202. package/dist/worklet/messages.d.ts +710 -0
  203. package/dist/worklet/messages.d.ts.map +1 -0
  204. package/dist/worklet/mixer-processor.d.ts +46 -0
  205. package/dist/worklet/mixer-processor.d.ts.map +1 -0
  206. package/dist/worklet/playback-processor.d.ts +62 -0
  207. package/dist/worklet/playback-processor.d.ts.map +1 -0
  208. package/dist/worklet/protocol.d.ts +323 -0
  209. package/dist/worklet/protocol.d.ts.map +1 -0
  210. package/dist/worklet/voice-changer-processor.d.ts +41 -0
  211. package/dist/worklet/voice-changer-processor.d.ts.map +1 -0
  212. package/dist/worklet.d.ts +16 -2515
  213. package/dist/worklet.d.ts.map +1 -0
  214. package/dist/worklet.js +2763 -501
  215. package/dist/worklet.js.map +1 -1
  216. package/package.json +23 -12
  217. package/src/_effects_common.ts +17 -0
  218. package/src/_feature_validation.ts +34 -0
  219. package/src/_fft_options.ts +39 -0
  220. package/src/align_take.ts +64 -0
  221. package/src/analysis.ts +56 -3
  222. package/src/analysis_helpers.ts +7 -0
  223. package/src/audio.ts +106 -3
  224. package/src/codes.ts +39 -2
  225. package/src/effects_mastering.ts +97 -22
  226. package/src/effects_note_ops.ts +635 -0
  227. package/src/effects_percussive.ts +217 -0
  228. package/src/effects_separation.ts +150 -0
  229. package/src/effects_spectral.ts +60 -0
  230. package/src/effects_timepitch.ts +377 -0
  231. package/src/errors.ts +23 -1
  232. package/src/feature_core.ts +127 -2
  233. package/src/feature_decompose.ts +633 -0
  234. package/src/feature_inverse.ts +454 -0
  235. package/src/feature_loudness.ts +125 -0
  236. package/src/feature_music.ts +107 -14
  237. package/src/feature_pitch.ts +96 -1
  238. package/src/feature_spectral.ts +16 -611
  239. package/src/feature_spectrogram.ts +63 -450
  240. package/src/features.ts +36 -22
  241. package/src/index.ts +282 -30
  242. package/src/instrument_types.ts +645 -0
  243. package/src/live_audio.ts +27 -1
  244. package/src/mastering_chain.ts +184 -0
  245. package/src/mastering_core.ts +346 -32
  246. package/src/mastering_dynamics.ts +22 -11
  247. package/src/metering.ts +67 -24
  248. package/src/mixer.ts +212 -3
  249. package/src/mixing_assistant.ts +138 -0
  250. package/src/mixing_oneshot.ts +10 -5
  251. package/src/module_state.ts +24 -2
  252. package/src/playback_renderer.ts +252 -0
  253. package/src/polyphony.ts +279 -0
  254. package/src/project.ts +61 -24
  255. package/src/project_class.ts +450 -27
  256. package/src/project_internal.ts +149 -42
  257. package/src/project_synth.ts +67 -1
  258. package/src/project_types.ts +268 -270
  259. package/src/public_types.ts +122 -3
  260. package/src/public_types_acoustic.ts +112 -3
  261. package/src/public_types_mastering.ts +254 -73
  262. package/src/public_types_mixing.ts +363 -1
  263. package/src/public_types_music.ts +312 -2
  264. package/src/public_types_playback.ts +195 -0
  265. package/src/public_types_realtime.ts +39 -7
  266. package/src/public_types_repair.ts +446 -0
  267. package/src/public_types_spectral.ts +487 -1
  268. package/src/quick_analysis.ts +203 -26
  269. package/src/realtime_engine.ts +711 -28
  270. package/src/realtime_voice_changer.ts +55 -1
  271. package/src/repair_dereverb.ts +299 -0
  272. package/src/repair_impulsive.ts +395 -0
  273. package/src/repair_noise.ts +425 -0
  274. package/src/repair_trim.ts +226 -0
  275. package/src/sample_bank.ts +113 -0
  276. package/src/sonare.js.d.ts +1122 -30
  277. package/src/stream_analyzer.ts +36 -4
  278. package/src/stream_types.ts +37 -0
  279. package/src/streaming_mixing.ts +1 -1
  280. package/src/streaming_processors.ts +194 -10
  281. package/src/transcribe.ts +89 -0
  282. package/src/validation.ts +285 -11
  283. package/src/web_midi.ts +1 -6
  284. package/src/worker.ts +18 -2
  285. package/src/worklet/audio_types.ts +37 -0
  286. package/src/worklet/engine-mixer-facade.ts +444 -10
  287. package/src/worklet/engine-node.ts +78 -26
  288. package/src/worklet/engine-offline.ts +14 -8
  289. package/src/worklet/engine-parameter-facade.ts +21 -0
  290. package/src/worklet/engine-processor.ts +272 -83
  291. package/src/worklet/engine-register.ts +32 -18
  292. package/src/worklet/engine-strips.ts +280 -9
  293. package/src/worklet/engine-sync.ts +14 -6
  294. package/src/worklet/engine.ts +365 -31
  295. package/src/worklet/guards.ts +140 -44
  296. package/src/worklet/messages.ts +227 -2
  297. package/src/worklet/mixer-processor.ts +109 -47
  298. package/src/worklet/playback-processor.ts +300 -0
  299. package/src/worklet/protocol.ts +53 -3
  300. package/src/worklet/voice-changer-processor.ts +17 -11
  301. package/src/worklet.ts +17 -0
  302. package/src/effects_transform.ts +0 -718
  303. package/src/mastering_repair.ts +0 -273
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/worklet/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { WorkletInput, WorkletOutput } from './audio_types';
2
+ import type { SonareWorkletMessage, SonareWorkletProcessorOptions, WorkletTransport } from './messages';
3
+ /**
4
+ * AudioWorklet-style mixer bridge backed by the package's single `sonare.wasm`.
5
+ *
6
+ * The WASM module must already be initialized via `init()` before constructing
7
+ * this bridge. Each AudioWorklet input is treated as one stereo strip:
8
+ * `inputs[strip][0]` is left and `inputs[strip][1]` is right. Missing channels
9
+ * are replaced with preallocated silence.
10
+ */
11
+ export declare class SonareWorkletProcessor {
12
+ readonly sampleRate: number;
13
+ readonly blockSize: number;
14
+ private mixer;
15
+ private realtime;
16
+ private closed;
17
+ private processedFrames;
18
+ private lastMeterFrame;
19
+ private meterIntervalFrames;
20
+ private spectrumIntervalFrames;
21
+ private lastSpectrumFrame;
22
+ private transport?;
23
+ private meterRing?;
24
+ /**
25
+ * Reused meter record, so a publish writes fields instead of allocating one.
26
+ *
27
+ * `targetId` is always the master and the four LUFS / gain-reduction fields
28
+ * are always unavailable here — the mixer worklet does not run the
29
+ * K-weighting filters, and a floor value would read as silence — so both are
30
+ * set once rather than per interval.
31
+ */
32
+ private readonly meterScratch;
33
+ private spectrumRing?;
34
+ private spectrumBands;
35
+ constructor(options: SonareWorkletProcessorOptions, transport?: WorkletTransport);
36
+ process(inputs: WorkletInput, outputs: WorkletOutput): boolean;
37
+ receiveMessage(message: SonareWorkletMessage): void;
38
+ destroy(): void;
39
+ private publishMeter;
40
+ private writeMeterRing;
41
+ private publishSpectrum;
42
+ private computeSpectrum;
43
+ private writeSpectrumRing;
44
+ }
45
+ export declare function registerSonareWorkletProcessor(name?: string): void;
46
+ //# sourceMappingURL=mixer-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixer-processor.d.ts","sourceRoot":"","sources":["../../src/worklet/mixer-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EACV,oBAAoB,EACpB,6BAA6B,EAE7B,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAcpB;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAC,CAAwB;IAC1C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAe3B;IACF,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAe;gBAExB,OAAO,EAAE,6BAA6B,EAAE,SAAS,CAAC,EAAE,gBAAgB;IA8ChF,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IA8D9D,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAgCnD,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,YAAY;IAwEpB,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,iBAAiB;CAiB1B;AAED,wBAAgB,8BAA8B,CAAC,IAAI,SAA6B,GAAG,IAAI,CAqCtF"}
@@ -0,0 +1,62 @@
1
+ import { type WorkletInput, type WorkletOutput } from './audio_types';
2
+ import type { SonarePlaybackDiagnosticsReplyMessage, SonarePlaybackMessage, SonarePlaybackNodeOptions, SonarePlaybackWorkletProcessorOptions, WorkletPort } from './messages';
3
+ /**
4
+ * The playback renderer inside an AudioWorklet.
5
+ *
6
+ * `inputs[0].length` is the block's input channel count, so a
7
+ * `MediaElementAudioSourceNode` whose channel count follows the media drives
8
+ * `input.layout: "auto"` directly. A block with no input channels (no active
9
+ * connection: paused, ended, loading) renders silence on the active layout. A
10
+ * block whose channel count the renderer refuses renders silence the same way
11
+ * and counts toward `unsupported_input_blocks`; either way the renderer
12
+ * advances by the block, so the timeline never shifts. Nothing throws on the
13
+ * audio thread.
14
+ *
15
+ * Every buffer is allocated in the constructor: `process()` copies into WASM
16
+ * heap planes and allocates nothing.
17
+ */
18
+ export declare class SonarePlaybackWorkletProcessor {
19
+ private static warnedBlockOverflow;
20
+ private readonly renderer;
21
+ private readonly native;
22
+ private readonly port?;
23
+ private readonly maxBlockSize;
24
+ private readonly outputChannels;
25
+ private inputPlanes;
26
+ private outputPlanes;
27
+ private unsupportedInputBlocks;
28
+ private destroyed;
29
+ constructor(options?: SonarePlaybackWorkletProcessorOptions, port?: WorkletPort);
30
+ /**
31
+ * Handles a control-plane message. AudioWorklet port handlers run on the
32
+ * rendering thread between `process()` calls, which is what makes `reset`
33
+ * safe here. A refused message is answered with an `error` message.
34
+ */
35
+ receiveMessage(message: SonarePlaybackMessage): void;
36
+ /** The renderer's diagnostics plus `unsupported_input_blocks`, as a plain object. */
37
+ diagnostics(): SonarePlaybackDiagnosticsReplyMessage['diagnostics'];
38
+ process(inputs: WorkletInput, outputs: WorkletOutput): boolean;
39
+ destroy(): void;
40
+ private acquirePlanes;
41
+ private clampFrames;
42
+ }
43
+ export declare function registerSonarePlaybackWorkletProcessor(name?: string): void;
44
+ /**
45
+ * Creates the AudioWorkletNode for a processor registered with
46
+ * {@link registerSonarePlaybackWorkletProcessor}. The node's input follows its
47
+ * source's channel count without any browser up/down mix
48
+ * (`channelCountMode: "max"`, `channelInterpretation: "discrete"`), and its
49
+ * output carries the target's channel count. The configuration is serialized
50
+ * here, on the main thread.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * await context.audioWorklet.addModule(playbackWorkletUrl);
55
+ * const hrtf = await (await fetch(hrtfUrl)).arrayBuffer();
56
+ * const node = createSonarePlaybackNode(context, { config: {}, hrtf });
57
+ * context.createMediaElementSource(video).connect(node).connect(context.destination);
58
+ * video.addEventListener('seeking', () => node.port.postMessage({ type: 'reset' }));
59
+ * ```
60
+ */
61
+ export declare function createSonarePlaybackNode(context: BaseAudioContext, options?: SonarePlaybackNodeOptions): AudioWorkletNode;
62
+ //# sourceMappingURL=playback-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playback-processor.d.ts","sourceRoot":"","sources":["../../src/worklet/playback-processor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,KAAK,EACV,qCAAqC,EAErC,qBAAqB,EACrB,yBAAyB,EACzB,qCAAqC,EACrC,WAAW,EACZ,MAAM,YAAY,CAAC;AAyBpB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,qCAA0C,EAAE,IAAI,CAAC,EAAE,WAAW;IAuBnF;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAkCpD,qFAAqF;IACrF,WAAW,IAAI,qCAAqC,CAAC,aAAa,CAAC;IAOnE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IAmD9D,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;CAcpB;AAED,wBAAgB,sCAAsC,CAAC,IAAI,SAA8B,GAAG,IAAI,CAmC/F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,yBAA8B,GACtC,gBAAgB,CAoBlB"}
@@ -0,0 +1,323 @@
1
+ import type { EngineMeterTelemetry, EngineTelemetry } from '../index';
2
+ export declare const ENGINE_MIXER_PARAM_FADER_DB = 1;
3
+ export declare const ENGINE_MIXER_PARAM_PAN = 2;
4
+ export declare function engineMixerLaneTarget(laneIndex: number, paramKind: number): number;
5
+ export declare function engineMixerBusTarget(busIndex: number, paramKind: number): number;
6
+ export declare function engineMixerMasterTarget(paramKind: number): number;
7
+ export interface SonareWorkletMeterSnapshot {
8
+ type: 'meter';
9
+ targetId: number;
10
+ frame: number;
11
+ peakDbL: number;
12
+ peakDbR: number;
13
+ rmsDbL: number;
14
+ rmsDbR: number;
15
+ correlation: number;
16
+ /**
17
+ * Left-channel inter-sample (true) peak in dB, from the ITU-R BS.1770-4
18
+ * polyphase reconstruction at 4x. A streaming measurement, and the render
19
+ * quantum makes that visible here: the centered reconstruction stencil needs a
20
+ * few future samples a realtime path does not have, so each block's last
21
+ * samples read marginally low (about 0.1 dB across 64..8192-sample blocks on a
22
+ * near-Nyquist tone, always under-reading). Use `meteringTruePeakDb` over the
23
+ * whole signal for an exact dBTP number.
24
+ */
25
+ truePeakDbL: number;
26
+ /** Right-channel inter-sample (true) peak in dB. See {@link truePeakDbL}. */
27
+ truePeakDbR: number;
28
+ momentaryLufs: number;
29
+ shortTermLufs: number;
30
+ integratedLufs: number;
31
+ gainReductionDb: number;
32
+ }
33
+ export interface SonareWorkletSpectrumSnapshot {
34
+ type: 'spectrum';
35
+ frame: number;
36
+ bands: Float32Array;
37
+ }
38
+ export declare const SONARE_METER_RING_HEADER_INTS = 4;
39
+ export declare const SONARE_METER_RING_RECORD_FLOATS = 14;
40
+ export declare const SONARE_SPECTRUM_RING_HEADER_INTS = 5;
41
+ export declare const SONARE_SCOPE_RING_HEADER_INTS = 6;
42
+ export declare const SONARE_SCOPE_RING_RECORD_PREFIX_FLOATS = 5;
43
+ /** Low 24 bits of a frame index (exact in Float32). */
44
+ export declare function encodeFrameLo(frame: number): number;
45
+ /** High bits of a frame index above 2^24 (exact in Float32 up to ~2^48). */
46
+ export declare function encodeFrameHi(frame: number): number;
47
+ /** Reconstruct a frame index from its low/high Float32 lanes. */
48
+ export declare function decodeFrame(lo: number, hi: number): number;
49
+ export declare const SONARE_ENGINE_RING_HEADER_INTS = 5;
50
+ export declare const SONARE_ENGINE_COMMAND_RECORD_BYTES = 32;
51
+ export declare const SONARE_ENGINE_TELEMETRY_RECORD_BYTES = 48;
52
+ export declare const SONARE_CLIP_PAGE_REQUEST_RING_HEADER_INTS = 5;
53
+ export declare const SONARE_CLIP_PAGE_REQUEST_RING_RECORD_UINT32S = 2;
54
+ export declare const SONARE_EXTERNAL_MIDI_RING_HEADER_INTS = 5;
55
+ export declare const SONARE_EXTERNAL_MIDI_RING_RECORD_UINT32S = 4;
56
+ export declare enum SonareEngineCommandType {
57
+ SetParam = 0,
58
+ SetParamSmoothed = 1,
59
+ TransportPlay = 2,
60
+ TransportStop = 3,
61
+ TransportSeekSample = 4,
62
+ TransportSeekPpq = 5,
63
+ SetTempoMap = 6,
64
+ SetLoop = 7,
65
+ SwapGraph = 8,
66
+ SwapAutomation = 9,
67
+ SetSoloMute = 10,
68
+ AddClip = 11,
69
+ RemoveClip = 12,
70
+ ArmRecord = 13,
71
+ Punch = 14,
72
+ SetMetronome = 15,
73
+ SetMarker = 16,
74
+ SeekMarker = 17,
75
+ SetTrackMonitorMode = 26
76
+ }
77
+ export declare enum SonareEngineTelemetryType {
78
+ ProcessBlock = 0,
79
+ Error = 1
80
+ }
81
+ export declare enum SonareEngineTelemetryError {
82
+ None = 0,
83
+ CommandQueueOverflow = 1,
84
+ PendingCommandOverflow = 2,
85
+ BoundaryOverflow = 3,
86
+ TelemetryOverflow = 4,
87
+ CaptureOverflow = 5,
88
+ MaxBlockExceeded = 6,
89
+ UnknownTarget = 7,
90
+ NonRealtimeSafeParameter = 8,
91
+ NotPrepared = 9,
92
+ NonQueueableCommand = 10,
93
+ AutomationBindTargetOverflow = 11,
94
+ StaleAutomationLanes = 12,
95
+ SmoothedParameterCapacity = 13,
96
+ CommandBacklogDeferred = 14,
97
+ ClipPageUnderrun = 15,
98
+ InsertAutomationOverflow = 16,
99
+ MidiClockOverflow = 17,
100
+ MetronomeOverflow = 18,
101
+ InvalidCommand = 19,
102
+ MaxChannelsExceeded = 20,
103
+ ParameterBaseOverflow = 21
104
+ }
105
+ export interface SonareMeterRingBuffer {
106
+ sharedBuffer: SharedArrayBuffer;
107
+ header: Int32Array;
108
+ records: Float32Array;
109
+ capacity: number;
110
+ }
111
+ export interface SonareMeterRingReadResult {
112
+ nextReadIndex: number;
113
+ meters: SonareWorkletMeterSnapshot[];
114
+ }
115
+ export interface SonareSpectrumRingBuffer {
116
+ sharedBuffer: SharedArrayBuffer;
117
+ header: Int32Array;
118
+ records: Float32Array;
119
+ capacity: number;
120
+ bands: number;
121
+ }
122
+ export interface SonareSpectrumRingReadResult {
123
+ nextReadIndex: number;
124
+ spectra: SonareWorkletSpectrumSnapshot[];
125
+ }
126
+ /**
127
+ * A single target-addressed scope record drained from the realtime engine's
128
+ * scope ring: an FFT magnitude spectrum plus a decimated goniometer/vectorscope
129
+ * point cloud. Unlike {@link SonareWorkletSpectrumSnapshot} (the legacy
130
+ * coarse-DFT meter spectrum), this carries a `targetId` (master/lane/bus) and a
131
+ * stereo point cloud, mirroring the engine's `ScopeTelemetryRecord`.
132
+ */
133
+ export interface SonareWorkletScopeSnapshot {
134
+ type: 'scope';
135
+ targetId: number;
136
+ frame: number;
137
+ /** Linear-band magnitudes in dB (length = the configured band count). */
138
+ bands: Float32Array;
139
+ /** Interleaved stereo goniometer points: [l0, r0, l1, r1, ...]. */
140
+ points: Float32Array;
141
+ }
142
+ export interface SonareScopeRingBuffer {
143
+ sharedBuffer: SharedArrayBuffer;
144
+ header: Int32Array;
145
+ records: Float32Array;
146
+ capacity: number;
147
+ bands: number;
148
+ maxPoints: number;
149
+ }
150
+ export interface SonareScopeRingReadResult {
151
+ nextReadIndex: number;
152
+ scopes: SonareWorkletScopeSnapshot[];
153
+ }
154
+ export interface SonareExternalMidiRingEvent {
155
+ destinationId: number;
156
+ renderFrame: number;
157
+ byteWord: number;
158
+ byteCount: number;
159
+ }
160
+ export interface SonareExternalMidiRingBuffer {
161
+ sharedBuffer: SharedArrayBuffer;
162
+ header: Int32Array;
163
+ records: Uint32Array;
164
+ capacity: number;
165
+ }
166
+ export interface SharedExternalMidiRingWriter {
167
+ header: Int32Array;
168
+ records: Uint32Array;
169
+ capacity: number;
170
+ }
171
+ export interface SonareExternalMidiRingReadResult {
172
+ events: SonareExternalMidiRingEvent[];
173
+ dropped: number;
174
+ }
175
+ export interface SharedScopeRingWriter {
176
+ header: Int32Array;
177
+ records: Float32Array;
178
+ capacity: number;
179
+ bands: number;
180
+ maxPoints: number;
181
+ recordFloats: number;
182
+ }
183
+ export interface SonareEngineCommandRecord {
184
+ type: SonareEngineCommandType | number;
185
+ targetId?: number;
186
+ sampleTime?: number | bigint;
187
+ argFloat?: number;
188
+ argInt?: number | bigint;
189
+ }
190
+ export interface SonareEngineTelemetryRecord {
191
+ type: SonareEngineTelemetryType | number;
192
+ error: SonareEngineTelemetryError | number;
193
+ renderFrame: number;
194
+ timelineSample: number;
195
+ audibleTimelineSample: number;
196
+ graphLatencySamplesQ8: number;
197
+ value: number;
198
+ }
199
+ export interface SonareEngineCommandRingBuffer {
200
+ sharedBuffer: SharedArrayBuffer;
201
+ header: Int32Array;
202
+ view: DataView;
203
+ capacity: number;
204
+ }
205
+ export interface SonareEngineTelemetryRingBuffer {
206
+ sharedBuffer: SharedArrayBuffer;
207
+ header: Int32Array;
208
+ view: DataView;
209
+ capacity: number;
210
+ }
211
+ export interface SonareEngineTelemetryRingReadResult {
212
+ nextReadIndex: number;
213
+ telemetry: SonareEngineTelemetryRecord[];
214
+ }
215
+ export interface SonareClipPageRequest {
216
+ clipId: number;
217
+ pageIndex: number;
218
+ }
219
+ export interface SonareClipPageRequestRingBuffer {
220
+ sharedBuffer: SharedArrayBuffer;
221
+ header: Int32Array;
222
+ records: Uint32Array;
223
+ capacity: number;
224
+ }
225
+ export interface SharedClipPageRequestRingWriter {
226
+ header: Int32Array;
227
+ records: Uint32Array;
228
+ capacity: number;
229
+ }
230
+ export interface SonareClipPageRequestRingReadResult {
231
+ requests: SonareClipPageRequest[];
232
+ /** Cumulative uint32 drop count for native and SAB-ring overflows. */
233
+ dropped: number;
234
+ }
235
+ export interface SharedMeterRingWriter {
236
+ header: Int32Array;
237
+ records: Float32Array;
238
+ capacity: number;
239
+ }
240
+ export interface SharedSpectrumRingWriter {
241
+ header: Int32Array;
242
+ records: Float32Array;
243
+ capacity: number;
244
+ bands: number;
245
+ recordFloats: number;
246
+ }
247
+ /**
248
+ * Shared finite dB floor (`sonare::constants::kFloorDb`). Every level-in-dB
249
+ * field on a worklet snapshot bottoms out here rather than at `-Infinity`.
250
+ */
251
+ export declare const SONARE_FLOOR_DB = -120;
252
+ /**
253
+ * Magnitude to dB with the shared finite floor.
254
+ *
255
+ * `-Infinity` is not a usable value for a meter reading: it propagates NaN
256
+ * through the usual `(db + 60) / 60 * height` bar geometry, serializes to
257
+ * `null` through `JSON.stringify`, and poisons `Math.min`/`Math.max`
258
+ * aggregation. The native meters have always floored at `kFloorDb`, so a
259
+ * producer emitting `-Infinity` also made the two worklets disagree about
260
+ * silence.
261
+ */
262
+ export declare function toDb(value: number): number;
263
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
264
+ export declare function sonareMeterRingBufferByteLength(capacity: number): number;
265
+ export declare function createSonareMeterRingBuffer(capacity?: number): SonareMeterRingBuffer;
266
+ export declare function readSonareMeterRingBuffer(ring: SonareMeterRingBuffer, readIndex?: number): SonareMeterRingReadResult;
267
+ export declare function sonareSpectrumRingBufferByteLength(capacity: number, bands?: number): number;
268
+ export declare function createSonareSpectrumRingBuffer(capacity?: number, bands?: number): SonareSpectrumRingBuffer;
269
+ export declare function readSonareSpectrumRingBuffer(ring: SonareSpectrumRingBuffer, readIndex?: number): SonareSpectrumRingReadResult;
270
+ export declare function sonareScopeRingRecordFloats(bands: number, maxPoints: number): number;
271
+ export declare function sonareScopeRingBufferByteLength(capacity: number, bands?: number, maxPoints?: number): number;
272
+ export declare function createSonareScopeRingBuffer(capacity?: number, bands?: number, maxPoints?: number): SonareScopeRingBuffer;
273
+ export declare function readSonareScopeRingBuffer(ring: SonareScopeRingBuffer, readIndex?: number): SonareScopeRingReadResult;
274
+ export declare function scopeRingFromSharedBuffer(sharedBuffer: SharedArrayBuffer, fallbackCapacity?: number, fallbackBands?: number, fallbackMaxPoints?: number): SharedScopeRingWriter;
275
+ export declare function sonareEngineCommandRingBufferByteLength(capacity: number): number;
276
+ export declare function sonareEngineTelemetryRingBufferByteLength(capacity: number): number;
277
+ export declare function sonareClipPageRequestRingBufferByteLength(capacity: number): number;
278
+ export declare function sonareExternalMidiRingBufferByteLength(capacity: number): number;
279
+ export declare function externalMidiRingFromSharedBuffer(sharedBuffer: SharedArrayBuffer, fallbackCapacity?: number): SharedExternalMidiRingWriter;
280
+ export declare function createSonareExternalMidiRingBuffer(capacity?: number): SonareExternalMidiRingBuffer;
281
+ /** Write one lowered MIDI-1 event without allocations from the audio worklet. */
282
+ export declare function pushSonareExternalMidiRingBuffer(ring: SharedExternalMidiRingWriter, destinationId: number, renderFrame: number, byteWord: number, byteCount: number): boolean;
283
+ /** Main-thread drain. It is intentionally the only place MIDI byte arrays are built. */
284
+ export declare function readSonareExternalMidiRingBuffer(ring: SonareExternalMidiRingBuffer): SonareExternalMidiRingReadResult;
285
+ export declare function createSonareClipPageRequestRingBuffer(capacity?: number): SonareClipPageRequestRingBuffer;
286
+ /**
287
+ * Writes one request without allocating. Invalid uint32 coordinates and a full
288
+ * ring are counted as drops so the main thread can surface a bounded-loss
289
+ * diagnostic without receiving a worklet postMessage.
290
+ */
291
+ export declare function pushSonareClipPageRequestRingBuffer(ring: SharedClipPageRequestRingWriter, clipId: number, pageIndex: number): boolean;
292
+ /** Drains the SPSC request ring on the main thread. Object creation is here, never in process(). */
293
+ export declare function readSonareClipPageRequestRingBuffer(ring: SonareClipPageRequestRingBuffer): SonareClipPageRequestRingReadResult;
294
+ export declare function createSonareEngineCommandRingBuffer(capacity?: number): SonareEngineCommandRingBuffer;
295
+ export declare function createSonareEngineTelemetryRingBuffer(capacity?: number): SonareEngineTelemetryRingBuffer;
296
+ export declare function pushSonareEngineCommandRingBuffer(ring: SonareEngineCommandRingBuffer, command: SonareEngineCommandRecord): boolean;
297
+ export declare function popSonareEngineCommandRingBuffer(ring: SonareEngineCommandRingBuffer): SonareEngineCommandRecord | null;
298
+ export declare function writeSonareEngineTelemetryRingBuffer(ring: SonareEngineTelemetryRingBuffer, telemetry: SonareEngineTelemetryRecord): void;
299
+ export declare function readSonareEngineTelemetryRingBuffer(ring: SonareEngineTelemetryRingBuffer, readIndex?: number): SonareEngineTelemetryRingReadResult;
300
+ export declare function meterRingFromSharedBuffer(sharedBuffer: SharedArrayBuffer, fallbackCapacity?: number): SharedMeterRingWriter;
301
+ export declare function spectrumRingFromSharedBuffer(sharedBuffer: SharedArrayBuffer, fallbackCapacity?: number, fallbackBands?: number): SharedSpectrumRingWriter;
302
+ export declare function engineRingFromSharedBuffer(sharedBuffer: SharedArrayBuffer, recordBytes: number, fallbackCapacity?: number): {
303
+ header: Int32Array;
304
+ view: DataView;
305
+ capacity: number;
306
+ };
307
+ export declare function clipPageRequestRingFromSharedBuffer(sharedBuffer: SharedArrayBuffer, fallbackCapacity?: number): SharedClipPageRequestRingWriter;
308
+ /**
309
+ * The domain of a uint32 record slot: no fraction, no sign, no overflow.
310
+ *
311
+ * `setUint32` folds anything outside it into a legal value, so a negative id
312
+ * becomes a large one and 2**32 becomes 0. An absent value is out of domain;
313
+ * a slot with a default resolves it before asking.
314
+ */
315
+ export declare function isUint32Slot(value: number | undefined): boolean;
316
+ /** Store a signed 64-bit safe integer as two 32-bit words without BigInt. */
317
+ export declare function writeInt64Words(view: DataView, offset: number, value: number): void;
318
+ /** Reconstruct a signed 64-bit safe integer stored by {@link writeInt64Words}. */
319
+ export declare function readInt64Words(view: DataView, offset: number): number;
320
+ export declare function telemetryFromEngine(telemetry: EngineTelemetry): SonareEngineTelemetryRecord;
321
+ export declare function meterFromEngine(meter: EngineMeterTelemetry): SonareWorkletMeterSnapshot;
322
+ export declare function magnitudeToDb(value: number): number;
323
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/worklet/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type WorkletInput, type WorkletOutput } from './audio_types';
2
+ import type { SonareRealtimeVoiceChangerMessage, SonareRealtimeVoiceChangerWorkletProcessorOptions } from './messages';
3
+ export declare class SonareRealtimeVoiceChangerWorkletProcessor {
4
+ private static warnedMonoOverflow;
5
+ private static warnedInterleavedOverflow;
6
+ private changer;
7
+ private readonly sampleRate;
8
+ private readonly blockSize;
9
+ private readonly channelCount;
10
+ private monoInput;
11
+ private monoOutput;
12
+ private bufferGeneration;
13
+ private planarChannels;
14
+ private readonly monoPlane;
15
+ private destroyed;
16
+ constructor(options?: SonareRealtimeVoiceChangerWorkletProcessorOptions);
17
+ /**
18
+ * Handles a control-plane message from the main thread. AudioWorklet port
19
+ * handlers run on the same audio rendering thread as `process()`: this path
20
+ * therefore accepts only a pre-normalized POD and never parses JSON.
21
+ */
22
+ receiveMessage(message: SonareRealtimeVoiceChangerMessage): void;
23
+ process(inputs: WorkletInput, outputs: WorkletOutput): boolean;
24
+ destroy(): void;
25
+ private reacquireBuffers;
26
+ /**
27
+ * Returns the number of frames we can actually process given the
28
+ * pre-allocated capacity. If the host requests more frames than the
29
+ * worst-case block size declared at construction time, we clamp to the
30
+ * available capacity and warn once — we MUST NOT reallocate on the
31
+ * realtime audio thread.
32
+ */
33
+ private ensureMonoCapacity;
34
+ /**
35
+ * Same contract as ensureMonoCapacity but for the planar per-channel
36
+ * scratch. Returns the number of frames that fit in the available capacity.
37
+ */
38
+ private ensureInterleavedCapacity;
39
+ }
40
+ export declare function registerSonareRealtimeVoiceChangerWorkletProcessor(name?: string): void;
41
+ //# sourceMappingURL=voice-changer-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-changer-processor.d.ts","sourceRoot":"","sources":["../../src/worklet/voice-changer-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,KAAK,EACV,iCAAiC,EACjC,iDAAiD,EAElD,MAAM,YAAY,CAAC;AAEpB,qBAAa,0CAA0C;IACrD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAS;IAC1C,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAS;IACjD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAItC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,gBAAgB,CAAS;IAKjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,iDAAsD;IAoB3E;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI;IAahE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IAuE9D,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,gBAAgB;IAWxB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;CAgBlC;AAED,wBAAgB,kDAAkD,CAChE,IAAI,SAA4C,GAC/C,IAAI,CAqCN"}