@libraz/libsonare 1.7.2 → 1.8.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 (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 +7 -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 +874 -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 +502 -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 +134 -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 +4173 -1621
  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 +483 -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 +654 -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 +528 -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 +165 -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 +893 -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 +3945 -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 +340 -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 +164 -0
  179. package/dist/worklet/engine-mixer-facade.d.ts.map +1 -0
  180. package/dist/worklet/engine-node.d.ts +83 -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 +72 -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 +75 -0
  193. package/dist/worklet/engine-strips.d.ts.map +1 -0
  194. package/dist/worklet/engine-sync.d.ts +39 -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 +418 -0
  199. package/dist/worklet/engine.d.ts.map +1 -0
  200. package/dist/worklet/guards.d.ts +53 -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 +331 -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 +3200 -541
  215. package/dist/worklet.js.map +1 -1
  216. package/package.json +23 -12
  217. package/src/_effects_common.ts +47 -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 +101 -22
  226. package/src/effects_note_ops.ts +683 -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 +388 -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 +288 -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 +441 -32
  246. package/src/mastering_dynamics.ts +22 -11
  247. package/src/metering.ts +67 -24
  248. package/src/mixer.ts +251 -22
  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 +271 -271
  259. package/src/public_types.ts +122 -3
  260. package/src/public_types_acoustic.ts +112 -3
  261. package/src/public_types_mastering.ts +275 -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 +196 -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 +491 -5
  268. package/src/quick_analysis.ts +203 -26
  269. package/src/realtime_engine.ts +773 -34
  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 +1158 -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 +202 -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 +800 -32
  287. package/src/worklet/engine-node.ts +99 -29
  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 +332 -93
  291. package/src/worklet/engine-register.ts +32 -18
  292. package/src/worklet/engine-strips.ts +275 -9
  293. package/src/worklet/engine-sync.ts +20 -7
  294. package/src/worklet/engine.ts +394 -48
  295. package/src/worklet/guards.ts +195 -44
  296. package/src/worklet/messages.ts +229 -2
  297. package/src/worklet/mixer-processor.ts +117 -48
  298. package/src/worklet/playback-processor.ts +300 -0
  299. package/src/worklet/protocol.ts +82 -11
  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,418 @@
1
+ import { type OpfsClipStreamOptions } from '../clip_page_streamer';
2
+ import type { EngineAutomationPoint, EngineBus, EngineCaptureStatus, EngineClip, EngineMarker, EngineMetronomeConfig, EngineMidiClipSchedule, EngineParameterInfo, EngineTempoSegment, EngineTimeSignatureSegment, EngineTrackLane, EngineTrackMonitorMode, EngineTrackSend, EngineTransportState, EqBand, MidiCcBindOptions, PanLaw, PanMode, SidechainSourceKind } from '../index';
3
+ import { type OpfsClipPageProviderBinding } from '../opfs_clip_pages';
4
+ import type { ClipPageProvider } from '../realtime_engine';
5
+ import { type CaptureOptions } from './engine-offline';
6
+ import type { SonareEngineOptions } from './engine-options';
7
+ import type { SonareEngineTransportFacade, SonareRealtimeEngineNodeCapabilities, SonareWorkletExternalMidiEvent } from './messages';
8
+ import { type SonareEngineTelemetryRecord, type SonareWorkletMeterSnapshot, type SonareWorkletScopeSnapshot } from './protocol';
9
+ export declare class SonareEngine {
10
+ readonly node: AudioWorkletNode;
11
+ readonly capabilities: SonareRealtimeEngineNodeCapabilities;
12
+ readonly transport: SonareEngineTransportFacade;
13
+ private readonly realtimeNode;
14
+ private readonly offlineEngine;
15
+ private readonly context;
16
+ private readonly sampleRate;
17
+ private readonly offlineBlockSize;
18
+ private readonly offlineChannelCount;
19
+ private readonly automationLanes;
20
+ private readonly insertAutomationIdsByTarget;
21
+ private readonly clips;
22
+ private readonly midiClips;
23
+ private readonly markers;
24
+ private readonly trackLaneIds;
25
+ private readonly trackSends;
26
+ private readonly trackOutputBus;
27
+ private readonly trackSourceChannelLayout;
28
+ private readonly laneSidechains;
29
+ private readonly busSidechains;
30
+ private readonly masterSidechains;
31
+ private readonly buses;
32
+ private readonly trackStripJson;
33
+ private readonly busStripJson;
34
+ private readonly insertParamOverrides;
35
+ private masterStripJson;
36
+ private captureConfig;
37
+ private tempoBpm;
38
+ private timeSignature;
39
+ private tempoSegments;
40
+ private timeSignatureSegments;
41
+ private latestTransportState;
42
+ private nextClipId;
43
+ private nextMarkerId;
44
+ private transportPlaying;
45
+ private readonly pendingInstrumentSync;
46
+ private readonly workletClipPageRequests;
47
+ private readonly workletPageProviderClipIds;
48
+ private workletClipStreamer;
49
+ private workletClipPump;
50
+ private workletClipPagePollTimer;
51
+ private unsubscribeWorkletClipRequests;
52
+ private destroyed;
53
+ private constructor();
54
+ static create(context: BaseAudioContext, options?: SonareEngineOptions): Promise<SonareEngine>;
55
+ suspend(): Promise<void>;
56
+ resume(): Promise<void>;
57
+ setTempo(bpm: number): void;
58
+ setTempoSegments(segments: readonly EngineTempoSegment[]): void;
59
+ setTimeSignature(numerator: number, denominator: number): void;
60
+ setTimeSignatureSegments(segments: readonly EngineTimeSignatureSegment[]): void;
61
+ /**
62
+ * A loop wrap, seek or stop sends note-offs plus CC64=0, CC121, CC123 and a
63
+ * centred pitch bend on every channel played since the last reset, so
64
+ * controller values set before a loop region are not restored at the wrap.
65
+ */
66
+ setLoop(startPpq: number, endPpq: number, enabled?: boolean): boolean;
67
+ countInEndSample(startSample: number, bars: number): number;
68
+ getTransportState(): Promise<EngineTransportState>;
69
+ cachedTransportState(): EngineTransportState | undefined;
70
+ setParam(nodeId: string, param: string | number, value: number): boolean;
71
+ scheduleParam(nodeId: string, param: string | number, ppq: number, value: number, curve?: number | 'linear' | 'exponential'): void;
72
+ addAutomationPoint(laneId: string | number, ppq: number, value: number, curve?: number | 'linear' | 'exponential'): void;
73
+ /**
74
+ * Replaces the automation lane for `paramId` with the given breakpoints. An
75
+ * empty array clears the lane; the points are defensively copied and sorted
76
+ * by ppq before mirroring to the offline and live worklet engines.
77
+ */
78
+ setAutomationLane(paramId: number, points: ReadonlyArray<EngineAutomationPoint>): void;
79
+ /**
80
+ * Returns the automation target id for a mixer strip parameter.
81
+ *
82
+ * The id addresses the engine's reserved mixer namespace, so it can be fed
83
+ * straight to setAutomationLane to automate a fader or pan without
84
+ * registering a parameter.
85
+ *
86
+ * @param target Track id (declares a mixer lane on first use) or 'master'.
87
+ * @param kind Strip parameter to address.
88
+ * @returns Reserved engine parameter id for the strip parameter.
89
+ */
90
+ automationParamId(target: string | number, kind: 'faderDb' | 'pan'): number;
91
+ /**
92
+ * Returns the automation target id for a bus fader.
93
+ *
94
+ * @param busId Bus id (declares the mixer bus on first use).
95
+ * @returns Reserved engine parameter id for the bus fader gain (dB).
96
+ */
97
+ busAutomationParamId(busId: number): number;
98
+ /**
99
+ * Resolves a track-lane insert parameter (JSON-key name) to the reserved
100
+ * insert-automation id fed straight to setAutomationLane. Declares the track's
101
+ * mixer lane first (like automationParamId) so the offline engine resolves the
102
+ * same strip selector the realtime engine uses.
103
+ *
104
+ * The returned id uses the track's current positional lane selector. When
105
+ * setTrackLanes successfully changes lane order or membership, the engine
106
+ * remaps already queued and published track automation by track id, but it
107
+ * cannot update a numeric id retained by the caller. Re-resolve every track
108
+ * insert id after such a topology change before passing it to
109
+ * setAutomationLane. Use setTrackStripInsertParamByName when the operation
110
+ * needs a stable track identity. Master and bus insert ids are separate and
111
+ * are not invalidated by track-lane changes.
112
+ *
113
+ * @param target Track id (declares a mixer lane on first use).
114
+ * @param insertIndex Index into the strip's combined insert sequence.
115
+ * @param paramName Processor JSON-key parameter name.
116
+ * @returns Reserved insert-automation id, or -1 when strip/insert/key unknown.
117
+ */
118
+ resolveTrackInsertAutomationId(target: string | number, insertIndex: number, paramName: string): number;
119
+ /**
120
+ * Resolves a master-strip insert parameter to its reserved insert-automation
121
+ * id.
122
+ *
123
+ * @param insertIndex Index into the master strip's insert sequence.
124
+ * @param paramName Processor JSON-key parameter name.
125
+ * @returns Reserved insert-automation id, or -1 when insert/key unknown.
126
+ */
127
+ resolveMasterInsertAutomationId(insertIndex: number, paramName: string): number;
128
+ /**
129
+ * Resolves a bus-strip insert parameter to its reserved insert-automation id.
130
+ * Declares the mixer bus first so the offline engine resolves the same bus
131
+ * selector.
132
+ *
133
+ * @param busId Bus id (declares the mixer bus on first use).
134
+ * @param insertIndex Index into the bus strip's insert sequence.
135
+ * @param paramName Processor JSON-key parameter name.
136
+ * @returns Reserved insert-automation id, or -1 when bus/insert/key unknown.
137
+ */
138
+ resolveBusInsertAutomationId(busId: number, insertIndex: number, paramName: string): number;
139
+ /**
140
+ * Resolves a hosted instrument's continuous parameter to its reserved
141
+ * instrument-automation id, so an instrument parameter follows a breakpoint
142
+ * lane at audio-block precision like a strip insert. Bind the instrument
143
+ * (`setSynthInstrument`) before resolving.
144
+ *
145
+ * @param destinationId MIDI destination the instrument is bound to.
146
+ * @param paramName Instrument JSON-key parameter name (e.g. `cutoffHz`).
147
+ * @returns Reserved instrument-automation id, or -1 when destination/key unknown.
148
+ */
149
+ resolveInstrumentAutomationId(destinationId: number, paramName: string): number;
150
+ /**
151
+ * Returns the number of automation lanes installed on the engine, including
152
+ * lanes whose breakpoint list is currently empty.
153
+ *
154
+ * @returns Engine-side automation lane count.
155
+ */
156
+ automationLaneCount(): number;
157
+ listParameters(): EngineParameterInfo[];
158
+ /** Registers a custom parameter on the offline mirror and worklet engine. */
159
+ addParameter(info: EngineParameterInfo): void;
160
+ /** Clears custom parameters and their automation lanes on both engines. */
161
+ clearParameters(): void;
162
+ setSoloMute(target: string | number, solo: boolean, mute: boolean): boolean;
163
+ /** Queues a per-track PFL/AFL monitor tap mode change. */
164
+ setTrackMonitorMode(target: string | number, mode: EngineTrackMonitorMode, renderFrame?: number): boolean;
165
+ setStripGain(target: string | number, db: number): boolean;
166
+ setStripPan(target: string | number, pan: number): boolean;
167
+ /** Resets the master's integrated loudness accumulator in both engine mirrors. */
168
+ resetMasterLoudnessMeter(renderFrame?: number): boolean;
169
+ /**
170
+ * Declares the mixer track lanes in an explicit order.
171
+ *
172
+ * A successful call may reorder existing track ids, remove track ids, or add
173
+ * new ones. Existing queued and published track automation follows the track
174
+ * id, while numeric track-insert automation ids retained by the caller do
175
+ * not; re-resolve those ids after every topology change. Entries carrying
176
+ * `sends` replace that track's send list; entries without `sends` leave
177
+ * existing sends untouched.
178
+ *
179
+ * @param lanes Track ids or lane descriptors in the desired lane order.
180
+ */
181
+ setTrackLanes(lanes: ReadonlyArray<number | EngineTrackLane>): void;
182
+ /**
183
+ * Routes a track lane's post-fader output into a declared bus instead of
184
+ * the master mix (group/folder routing); busId 0 restores the master mix.
185
+ */
186
+ setTrackOutputBus(target: string | number, busId: number): void;
187
+ /**
188
+ * Keys one insert of a lane strip from another lane's post-strip pre-fader
189
+ * audio (ducking/sidechainRouter inserts). sourceTarget null removes the
190
+ * binding.
191
+ */
192
+ setLaneSidechain(target: string | number, insertIndex: number, sourceTarget: string | number | null): void;
193
+ setSends(target: string | number, sends: EngineTrackSend[]): void;
194
+ setTrackBuses(buses: EngineBus[]): void;
195
+ /**
196
+ * Keys one insert of a bus strip from a track lane or another bus
197
+ * (ducking/sidechainRouter inserts). `sourceId` 0 removes the binding.
198
+ */
199
+ setBusSidechain(busId: number, insertIndex: number, sourceKind: SidechainSourceKind | number, sourceId: number): void;
200
+ /**
201
+ * Keys one insert of the master strip from a track lane or a bus. Same
202
+ * source rules as {@link setBusSidechain}.
203
+ */
204
+ setMasterSidechain(insertIndex: number, sourceKind: SidechainSourceKind | number, sourceId: number): void;
205
+ setBusGain(busId: number, db: number): boolean;
206
+ setTrackStripJson(target: string | number, sceneJson: string): void;
207
+ setTrackStripEqBand(target: string | number, bandIndex: number, band: EqBand | string): void;
208
+ setTrackStripInsertBypassed(target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
209
+ setTrackStripInsertParamByName(target: string | number, insertIndex: number, paramName: string, value: number): void;
210
+ setTrackStripPan(target: string | number, pan: number): void;
211
+ setTrackStripPanLaw(target: string | number, panLaw: PanLaw | number): void;
212
+ setTrackStripPanMode(target: string | number, panMode: PanMode | number): void;
213
+ setTrackStripDualPan(target: string | number, leftPan: number, rightPan: number): void;
214
+ setTrackStripChannelDelaySamples(target: string | number, delaySamples: number): void;
215
+ setStripEq(target: string | number, bandIndex: number, band: EqBand | string): void;
216
+ setStripInsertBypassed(target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
217
+ setStripInserts(target: string | number, sceneJson: string): void;
218
+ setBusStripJson(busId: number, sceneJson: string): void;
219
+ setMasterStripJson(sceneJson: string): void;
220
+ setMasterStripEqBand(bandIndex: number, band: EqBand | string): void;
221
+ setMasterStripInsertBypassed(insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
222
+ setMasterStripInsertParamByName(insertIndex: number, paramName: string, value: number): void;
223
+ setBusStripInsertParamByName(busId: number, insertIndex: number, paramName: string, value: number): void;
224
+ /**
225
+ * Bus-strip counterpart of {@link setStripInsertBypassed}. A bus is addressed
226
+ * by its numeric id, which the `target` of the track/master form cannot
227
+ * express, so it is its own method exactly like
228
+ * {@link setBusStripInsertParamByName}. Bypassing keeps the insert's internal
229
+ * state (reverb tail, compressor envelope) unless `resetOnBypass` is set;
230
+ * re-posting the bus scene JSON, the only workaround before this existed,
231
+ * rebuilds the chain and loses it.
232
+ */
233
+ setBusStripInsertBypassed(busId: number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
234
+ /** Bus-strip counterpart of {@link setTrackStripEqBand}. */
235
+ setBusStripEqBand(busId: number, bandIndex: number, band: EqBand | string): void;
236
+ /** Bus-strip counterpart of {@link setTrackStripPan}; refused on a surround bus. */
237
+ setBusStripPan(busId: number, pan: number): void;
238
+ setBusStripPanLaw(busId: number, panLaw: PanLaw | number): void;
239
+ setBusStripPanMode(busId: number, panMode: PanMode | number): void;
240
+ setBusStripDualPan(busId: number, leftPan: number, rightPan: number): void;
241
+ setStripInsertParamByName(target: string | number, insertIndex: number, paramName: string, value: number): void;
242
+ setMasterChain(sceneJson: string): void;
243
+ /**
244
+ * Creates and primes an OPFS-backed page provider for this live worklet
245
+ * engine. Pass the returned `provider` to {@link addClip} in place of a
246
+ * `Float32Array[]`; the `clipId` in `options` must equal that clip's explicit
247
+ * `opts.id`. Subsequent cache misses are fetched on the main thread and
248
+ * supplied back to the worklet through its bounded pull protocol.
249
+ */
250
+ attachOpfsClipStream(options: OpfsClipStreamOptions): Promise<{
251
+ binding: OpfsClipPageProviderBinding;
252
+ provider: ClipPageProvider;
253
+ }>;
254
+ /**
255
+ * Sets the clip-page look-ahead window in timeline frames on both the worklet
256
+ * engine and this thread's offline engine.
257
+ *
258
+ * The audio thread reports the pages it is *about to* read that are not
259
+ * resident yet, so the sliding-window streamer can service them before the
260
+ * playhead reaches them. Without look-ahead a page miss is only reported
261
+ * after the read already produced silence, which costs one block of silence
262
+ * at every page boundary that was not primed.
263
+ *
264
+ * Defaults to half a second at the engine's sample rate. `0` disables it.
265
+ * Safe to call during playback.
266
+ */
267
+ setClipPagePrefetchFrames(frames: number): void;
268
+ /**
269
+ * Sets the number of concurrent time-stretch voices on both this thread's
270
+ * offline engine and the live worklet engine. `voices` must be an integer
271
+ * in `[0, 64]`; a non-integer, negative, or larger value throws and leaves
272
+ * the capacity unchanged on both engines. Default is 8. Capacity 0 disables
273
+ * time-stretch, so every warped clip plays resampled instead. A change
274
+ * applied while the engine is running restarts the splice state of any clip
275
+ * stretching through a voice at that moment.
276
+ */
277
+ setWarpVoiceCapacity(voices: number): void;
278
+ /** Reads the current time-stretch voice capacity (default 8). */
279
+ warpVoiceCapacity(): number;
280
+ addClip(trackId: string | number, buffer: Float32Array[] | ClipPageProvider, startPpq: number, opts?: Partial<Omit<EngineClip, 'channels' | 'pageProvider' | 'startPpq'>>): number;
281
+ removeClip(clipId: number): void;
282
+ setMidiClips(schedules: readonly EngineMidiClipSchedule[]): void;
283
+ setBuiltinInstrument(trackId: string | number, config?: {
284
+ destinationId?: number;
285
+ } & Record<string, unknown>): void;
286
+ setSynthInstrument(trackId: string | number, patch?: Record<string, unknown> | string): void;
287
+ loadSoundFont(data: Uint8Array): void;
288
+ setSf2Instrument(trackId: string | number, config?: {
289
+ destinationId?: number;
290
+ gain?: number;
291
+ polyphony?: number;
292
+ preferModelForModeledFamilies?: boolean;
293
+ clearBankRig?: boolean;
294
+ gsEfxRealization?: 'modern' | 'classic';
295
+ }): void;
296
+ /**
297
+ * Route a track's MIDI to the external output (drained via {@link onMidiOut})
298
+ * instead of an internal instrument, so the track plays an external device.
299
+ * Pass `external=false` to restore internal-synth playback. The change takes
300
+ * effect at the next processed block; switching a destination's route first
301
+ * releases its notes and resets its controllers through the old route, and
302
+ * drops its pending MIDI-FX events.
303
+ */
304
+ setMidiDestinationExternal(trackId: string | number, external: boolean): void;
305
+ /**
306
+ * Enable/disable forwarding MIDI clock + transport (start/continue/stop) to
307
+ * the external output so external gear tracks the transport tempo. The bytes
308
+ * arrive through {@link onMidiOut} tagged with the transport destination.
309
+ */
310
+ setExternalMidiClockEnabled(enabled: boolean): void;
311
+ /**
312
+ * Install or replace a live, non-destructive MIDI-FX insert for one
313
+ * destination. The insert transforms the destination's MIDI before
314
+ * synthesis (transpose, quantize, velocity shaping, humanize, harmonize,
315
+ * arpeggiate) without rewriting any stored notes, so it can be bypassed by
316
+ * {@link clearMidiFx}. The config JSON is the flat object the engine's
317
+ * MIDI-FX accepts (the same schema as the offline `Project.bakeMidiFx`).
318
+ */
319
+ setMidiFx(trackId: string | number, configJson: string): void;
320
+ /** Remove the live MIDI-FX insert from one destination (a no-op when none). */
321
+ clearMidiFx(trackId: string | number): void;
322
+ pushMidiNoteOn(trackId: string | number, group: number, channel: number, note: number, velocity: number, renderFrame?: number): void;
323
+ pushMidiNoteOff(trackId: string | number, group: number, channel: number, note: number, velocity?: number, renderFrame?: number): void;
324
+ pushMidiCc(trackId: string | number, group: number, channel: number, controller: number, value: number, renderFrame?: number): void;
325
+ pushMidiPitchBend(trackId: string | number, group: number, channel: number, bend14: number, renderFrame?: number): void;
326
+ pushMidiChannelPressure(trackId: string | number, group: number, channel: number, pressure: number, renderFrame?: number): void;
327
+ pushMidiPolyPressure(trackId: string | number, group: number, channel: number, note: number, pressure: number, renderFrame?: number): void;
328
+ pushMidiUmp(trackId: string | number, word0: number, renderFrame?: number): void;
329
+ pushMidiSysex(trackId: string | number, data: Uint8Array, renderFrame?: number): void;
330
+ bindMidiCc(channel: number, controller: number, paramId: number, options?: MidiCcBindOptions): void;
331
+ setMidiInputSource(destinationId?: number): void;
332
+ clearMidiInputSource(): void;
333
+ pushMidiInputNoteOn(group: number, channel: number, note: number, velocity: number, portTimeSamples?: number): void;
334
+ pushMidiInputNoteOff(group: number, channel: number, note: number, velocity?: number, portTimeSamples?: number): void;
335
+ pushMidiInputCc(group: number, channel: number, controller: number, value: number, portTimeSamples?: number): void;
336
+ pushMidiInputPitchBend(group: number, channel: number, bend14: number, portTimeSamples?: number): void;
337
+ pushMidiInputChannelPressure(group: number, channel: number, pressure: number, portTimeSamples?: number): void;
338
+ pushMidiInputPolyPressure(group: number, channel: number, note: number, pressure: number, portTimeSamples?: number): void;
339
+ pushMidiPanic(renderFrame?: number): void;
340
+ configureCapture(options: CaptureOptions): void;
341
+ /**
342
+ * Arms the engine-global capture path. `trackId` is retained for source
343
+ * compatibility and must be `0`; per-track capture is not implemented.
344
+ */
345
+ armRecord(trackId: string | number, enabled: boolean): boolean;
346
+ punch(inPpq: number, outPpq: number): boolean;
347
+ captureStatus(): Promise<EngineCaptureStatus>;
348
+ capturedAudio(): Promise<Float32Array[]>;
349
+ resetCapture(): Promise<void>;
350
+ setMetronome(opts: EngineMetronomeConfig): void;
351
+ addMarker(ppq: number, name?: string): number;
352
+ /**
353
+ * Replaces the whole marker set in one call. Entries without an `id` are
354
+ * assigned fresh ids; entries carrying an `id` keep it. Returns the resolved
355
+ * markers in the order given.
356
+ */
357
+ setMarkers(entries: ReadonlyArray<{
358
+ ppq: number;
359
+ name?: string;
360
+ id?: number;
361
+ }>): EngineMarker[];
362
+ markerCount(): number;
363
+ markerByIndex(index: number): EngineMarker;
364
+ marker(markerId: number): EngineMarker;
365
+ seekMarker(markerId: number): boolean;
366
+ setLoopFromMarkers(startMarkerId: number, endMarkerId: number): boolean;
367
+ renderOffline(totalFrames: number): Promise<Float32Array[]>;
368
+ /**
369
+ * Subscribe to external-MIDI batches (already lowered to MIDI 1.0 bytes) for
370
+ * delivery to Web MIDI output ports. Fires once per render block that
371
+ * produced events. Returns an unsubscribe function.
372
+ */
373
+ onMidiOut(callback: (events: SonareWorkletExternalMidiEvent[]) => void): () => void;
374
+ onMeter(callback: (meter: SonareWorkletMeterSnapshot) => void): () => void;
375
+ onScope(callback: (scope: SonareWorkletScopeSnapshot) => void): () => void;
376
+ onTelemetry(callback: (telemetry: SonareEngineTelemetryRecord) => void): () => void;
377
+ pollTelemetry(): SonareEngineTelemetryRecord[];
378
+ pollMeters(): SonareWorkletMeterSnapshot[];
379
+ pollScope(): SonareWorkletScopeSnapshot[];
380
+ destroy(): void;
381
+ private ensureWorkletClipStreamer;
382
+ /**
383
+ * SAB requests have no postMessage wake-up by design. Polling on the main
384
+ * thread is therefore intentionally outside the audio callback; 8 ms keeps
385
+ * the bounded OPFS prefetch frontier responsive without adding worklet GC.
386
+ */
387
+ private startWorkletClipPagePolling;
388
+ private pumpWorkletClipPages;
389
+ private enqueueWorkletClipPageRequest;
390
+ private popWorkletClipPageRequest;
391
+ private commitWorkletClipPageProvider;
392
+ private mixerLanes;
393
+ private syncMixer;
394
+ private insertAutomationTargetKey;
395
+ private rememberInsertAutomationId;
396
+ private clearInsertAutomationLanes;
397
+ private postInstrumentSync;
398
+ private flushPendingInstrumentSync;
399
+ private postSync;
400
+ private flushOfflineMirror;
401
+ private sendMirroredCommand;
402
+ private get mixerContext();
403
+ private get stripContext();
404
+ private get automationContext();
405
+ private get captureContext();
406
+ private get parameterContext();
407
+ private get tempoContext();
408
+ private get clipContext();
409
+ private get markerContext();
410
+ private stripParamId;
411
+ private sendSmoothedParam;
412
+ private resolveParamId;
413
+ private syncParameters;
414
+ private resolveTargetId;
415
+ private ensureTrackLane;
416
+ private ensureBus;
417
+ }
418
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/worklet/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { SonareEngineCaptureRequestMessage, SonareEngineCaptureResponseMessageInternal, SonareEngineClipPageRequestMessage, SonareEngineSyncMessage, SonareEngineTransportRequestMessage, SonareEngineTransportResponseMessage, SonarePlaybackMessage, SonareRealtimeVoiceChangerMessage, SonareWorkletExternalMidiMessage, SonareWorkletMessage } from './messages';
2
+ import { type SonareEngineCommandRecord, type SonareEngineTelemetryRecord, type SonareWorkletMeterSnapshot, type SonareWorkletScopeSnapshot } from './protocol';
3
+ export declare function isWorkletMessage(value: unknown): value is SonareWorkletMessage;
4
+ export declare function isEngineCommandRecord(value: unknown): value is SonareEngineCommandRecord;
5
+ /**
6
+ * Every discriminant the worklet accepts on the control plane, derived from the
7
+ * `SonareEngineSyncMessage` union rather than restated as literals.
8
+ *
9
+ * The `Record<SonareEngineSyncMessage['type'], true>` annotation rejects a
10
+ * missing key and the object literal's excess-property check rejects a stale
11
+ * one, so a union member that never reaches this table is a compile error
12
+ * instead of a message the port drops in silence.
13
+ */
14
+ export declare const ENGINE_SYNC_MESSAGE_TYPES: Record<SonareEngineSyncMessage['type'], true>;
15
+ export declare function isEngineSyncMessage(value: unknown): value is SonareEngineSyncMessage;
16
+ export declare function isEngineCaptureRequestMessage(value: unknown): value is SonareEngineCaptureRequestMessage;
17
+ /** Return a request ID even when the response payload itself is malformed. */
18
+ export declare function engineCaptureResponseRequestId(value: unknown): number | undefined;
19
+ export declare function isEngineCaptureResponseMessage(value: unknown): value is SonareEngineCaptureResponseMessageInternal;
20
+ /**
21
+ * Check that a strict success response belongs to the requested operation.
22
+ * Failure responses are operation-independent and are therefore valid for
23
+ * every pending request (the node rejects them after this check).
24
+ */
25
+ export declare function isEngineCaptureResponseForOperation(response: SonareEngineCaptureResponseMessageInternal, op: SonareEngineCaptureRequestMessage['op']): boolean;
26
+ export declare function isEngineTransportRequestMessage(value: unknown): value is SonareEngineTransportRequestMessage;
27
+ export declare function isEngineTransportResponseMessage(value: unknown): value is SonareEngineTransportResponseMessage;
28
+ export declare function isRealtimeVoiceChangerMessage(value: unknown): value is SonareRealtimeVoiceChangerMessage;
29
+ export declare function isPlaybackMessage(value: unknown): value is SonarePlaybackMessage;
30
+ export declare function isEngineTelemetryRecord(value: unknown): value is SonareEngineTelemetryRecord;
31
+ export declare function isExternalMidiBatchMessage(value: unknown): value is SonareWorkletExternalMidiMessage;
32
+ export declare function isClipPageRequestMessage(value: unknown): value is SonareEngineClipPageRequestMessage;
33
+ export declare function isMeterSnapshot(value: unknown): value is SonareWorkletMeterSnapshot;
34
+ export declare const SONARE_SCOPE_MAX_BANDS = 64;
35
+ export declare const SONARE_SCOPE_MAX_POINTS = 32;
36
+ /** Validates the bounded postMessage representation of a scope snapshot. */
37
+ export declare function isScopeSnapshot(value: unknown): value is SonareWorkletScopeSnapshot;
38
+ /**
39
+ * Resolves an integer option, refusing anything the field's own domain cannot
40
+ * hold instead of rounding it into range.
41
+ *
42
+ * Rounding hands the caller a working object configured with a value they never
43
+ * asked for, and nothing downstream can tell that apart from the value they
44
+ * meant. A ceiling, where one exists, stays with the layer that owns it.
45
+ */
46
+ export declare function requireIntegerOption(value: number | undefined, fallback: number, name: string, minimum: number): number;
47
+ /** Resolves scope bands and applies the native tap's fixed 64-band ceiling. */
48
+ export declare function resolveScopeBandCount(value: number | undefined, fallback?: number): number;
49
+ /** As {@link requireIntegerOption}, for a field whose domain admits either sign. */
50
+ export declare function requireInteger(value: number | undefined, fallback: number, name: string): number;
51
+ /** Resolves the channel count every worklet entry point accepts on its options. */
52
+ export declare function requireChannelCount(channelCount: number | undefined, fallback: number): number;
53
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/worklet/guards.ts"],"names":[],"mappings":"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"}