@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,81 @@
1
+ import type { EngineCaptureStatus, EngineMarker, EngineTrackLane, RealtimeEngine } from '../index';
2
+ import type { SonareEngineSyncCaptureMessage, SonareEngineTransportFacade } from './messages';
3
+ /** Capture configuration options accepted by the engine's `configureCapture`. */
4
+ export interface CaptureOptions {
5
+ bufferFrames: number;
6
+ channels?: number;
7
+ source?: EngineCaptureStatus['source'];
8
+ recordOffsetSamples?: number;
9
+ inputMonitor?: {
10
+ enabled: boolean;
11
+ gain?: number;
12
+ };
13
+ }
14
+ /**
15
+ * Normalizes capture options into the resolved config carried by the
16
+ * `syncCapture` message, applying defaults and refusing a non-integer count.
17
+ *
18
+ * @param options Raw capture options.
19
+ * @param defaultChannels Channel count to use when `options.channels` is unset.
20
+ * @throws RangeError if a frame count, channel count or offset is not an integer.
21
+ */
22
+ export declare function buildCaptureConfig(options: CaptureOptions, defaultChannels: number): Omit<SonareEngineSyncCaptureMessage, 'type'>;
23
+ /**
24
+ * Collaborator surface the transport facade needs from the owning engine: the
25
+ * realtime node (sample-accurate command transport), the offline engine it
26
+ * mirrors, and the tempo/loop setters plus playing-state bookkeeping.
27
+ */
28
+ export interface EngineTransportContext {
29
+ readonly sampleRate: number;
30
+ realtimeNode: {
31
+ play(sampleTime?: number): boolean;
32
+ stop(sampleTime?: number): boolean;
33
+ seekPpq(ppq: number, sampleTime?: number): boolean;
34
+ seekSample(timelineSample: number, sampleTime?: number): boolean;
35
+ };
36
+ offlineEngine: RealtimeEngine;
37
+ flushOfflineMirror(): void;
38
+ setTransportPlaying(playing: boolean): void;
39
+ flushPendingInstrumentSync(): void;
40
+ setTempo(bpm: number): void;
41
+ setTempoSegments(segments: readonly {
42
+ startPpq: number;
43
+ bpm: number;
44
+ }[]): void;
45
+ setLoop(startPpq: number, endPpq: number, enabled?: boolean): boolean;
46
+ }
47
+ /** Builds the public transport facade that fans control to both engines. */
48
+ export declare function buildTransportFacade(ctx: EngineTransportContext): SonareEngineTransportFacade;
49
+ /**
50
+ * Validates and normalizes an append-only mixer-lane declaration.
51
+ *
52
+ * Lane indices are append-only: the new list must start with the already
53
+ * declared lane ids in their current order and may only append new track ids.
54
+ * Returns the normalized lane entries (numbers coerced to descriptors) and the
55
+ * resulting ordered id list.
56
+ *
57
+ * @throws if any track id is invalid, ids are duplicated, or the existing lane
58
+ * order is not preserved.
59
+ */
60
+ export declare function normalizeTrackLanes(existing: readonly number[], lanes: ReadonlyArray<number | EngineTrackLane>): {
61
+ entries: EngineTrackLane[];
62
+ ids: number[];
63
+ };
64
+ /**
65
+ * Resolves a marker set, assigning fresh ids to entries without one and
66
+ * validating explicit ids (positive, unique).
67
+ *
68
+ * @param markers The marker list to resolve.
69
+ * @param nextMarkerId The id counter to draw fresh ids from.
70
+ * @returns The resolved markers and the advanced id counter.
71
+ * @throws on a non-finite ppq, an invalid id, or a duplicate id.
72
+ */
73
+ export declare function resolveMarkerSet(markers: ReadonlyArray<{
74
+ ppq: number;
75
+ name?: string;
76
+ id?: number;
77
+ }>, nextMarkerId: number): {
78
+ resolved: EngineMarker[];
79
+ nextMarkerId: number;
80
+ };
81
+ //# sourceMappingURL=engine-offline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-offline.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-offline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEnG,OAAO,KAAK,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9F,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,MAAM,GACtB,IAAI,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAY9C;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE;QACZ,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACnD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KAClE,CAAC;IACF,aAAa,EAAE,cAAc,CAAC;IAC9B,kBAAkB,IAAI,IAAI,CAAC;IAC3B,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,0BAA0B,IAAI,IAAI,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAC/E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACvE;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,sBAAsB,GAAG,2BAA2B,CAkC7F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,GAC7C;IAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAoB/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACnE,YAAY,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA2BpD"}
@@ -0,0 +1,12 @@
1
+ import type { RealtimeEngine } from '../index';
2
+ import type { SonareRealtimeEngineNodeOptions } from './messages';
3
+ export interface SonareEngineOptions extends SonareRealtimeEngineNodeOptions {
4
+ offlineEngine?: RealtimeEngine;
5
+ offlineBlockSize?: number;
6
+ offlineChannelCount?: number;
7
+ }
8
+ export type SuspendableAudioContext = BaseAudioContext & {
9
+ suspend?: () => Promise<void>;
10
+ resume?: () => Promise<void>;
11
+ };
12
+ //# sourceMappingURL=engine-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-options.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,mBAAoB,SAAQ,+BAA+B;IAC1E,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG;IACvD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,106 @@
1
+ import type { EngineAutomationPoint, EngineParameterInfo, EngineTrackMonitorMode, RealtimeEngine } from '../index';
2
+ import type { SonareEngineSyncMessage } from './messages';
3
+ import { SonareEngineCommandType } from './protocol';
4
+ /**
5
+ * Collaborator surface the parameter / automation-id resolution helpers need
6
+ * from the owning {@link SonareEngine}: the offline engine they mirror into and
7
+ * query, the realtime node they command, the lane/bus declaration helpers, and
8
+ * the declared track-lane id store used to resolve insert-automation ids.
9
+ */
10
+ export interface EngineParameterContext {
11
+ readonly offlineEngine: RealtimeEngine;
12
+ sendCommand(command: {
13
+ type: SonareEngineCommandType;
14
+ targetId?: number;
15
+ sampleTime?: number;
16
+ argFloat?: number;
17
+ argInt?: number;
18
+ }): boolean;
19
+ postSync(message: SonareEngineSyncMessage): void;
20
+ readonly automationLanes: Map<number, EngineAutomationPoint[]>;
21
+ readonly trackLaneIds: number[];
22
+ resolveParamId(nodeId: string, param: string | number): number;
23
+ ensureTrackLane(target: string | number): number;
24
+ ensureBus(busId: number): number;
25
+ }
26
+ export declare function setParam(ctx: EngineParameterContext, nodeId: string, param: string | number, value: number): boolean;
27
+ export declare function setSoloMute(ctx: EngineParameterContext, target: string | number, solo: boolean, mute: boolean): boolean;
28
+ export declare function setTrackMonitorMode(ctx: EngineParameterContext, target: string | number, mode: EngineTrackMonitorMode, renderFrame?: number): boolean;
29
+ /**
30
+ * Returns the automation target id for a mixer strip parameter.
31
+ *
32
+ * The id addresses the engine's reserved mixer namespace, so it can be fed
33
+ * straight to setAutomationLane to automate a fader or pan without
34
+ * registering a parameter.
35
+ *
36
+ * @param target Track id (declares a mixer lane on first use) or 'master'.
37
+ * @param kind Strip parameter to address.
38
+ * @returns Reserved engine parameter id for the strip parameter.
39
+ */
40
+ export declare function automationParamId(ctx: EngineParameterContext, target: string | number, kind: 'faderDb' | 'pan'): number;
41
+ /**
42
+ * Returns the automation target id for a bus fader.
43
+ *
44
+ * @param busId Bus id (declares the mixer bus on first use).
45
+ * @returns Reserved engine parameter id for the bus fader gain (dB).
46
+ */
47
+ export declare function busAutomationParamId(ctx: EngineParameterContext, busId: number): number;
48
+ /**
49
+ * Resolves a track-lane insert parameter (JSON-key name) to the reserved
50
+ * insert-automation id fed straight to setAutomationLane. Declares the track's
51
+ * mixer lane first (like automationParamId) so the offline engine resolves the
52
+ * same strip selector the realtime engine uses.
53
+ *
54
+ * @param target Track id (declares a mixer lane on first use).
55
+ * @param insertIndex Index into the strip's combined insert sequence.
56
+ * @param paramName Processor JSON-key parameter name.
57
+ * @returns Reserved insert-automation id, or -1 when strip/insert/key unknown.
58
+ */
59
+ export declare function resolveTrackInsertAutomationId(ctx: EngineParameterContext, target: string | number, insertIndex: number, paramName: string): number;
60
+ /**
61
+ * Resolves a master-strip insert parameter to its reserved insert-automation
62
+ * id.
63
+ *
64
+ * @param insertIndex Index into the master strip's insert sequence.
65
+ * @param paramName Processor JSON-key parameter name.
66
+ * @returns Reserved insert-automation id, or -1 when insert/key unknown.
67
+ */
68
+ export declare function resolveMasterInsertAutomationId(ctx: EngineParameterContext, insertIndex: number, paramName: string): number;
69
+ /**
70
+ * Resolves a bus-strip insert parameter to its reserved insert-automation id.
71
+ * Declares the mixer bus first so the offline engine resolves the same bus
72
+ * selector.
73
+ *
74
+ * @param busId Bus id (declares the mixer bus on first use).
75
+ * @param insertIndex Index into the bus strip's insert sequence.
76
+ * @param paramName Processor JSON-key parameter name.
77
+ * @returns Reserved insert-automation id, or -1 when bus/insert/key unknown.
78
+ */
79
+ export declare function resolveBusInsertAutomationId(ctx: EngineParameterContext, busId: number, insertIndex: number, paramName: string): number;
80
+ /**
81
+ * Resolves a hosted instrument's continuous parameter to its reserved
82
+ * instrument-automation id, so an instrument parameter is driven from a
83
+ * breakpoint lane at audio-block precision like a strip insert.
84
+ *
85
+ * The instrument must already be bound on the offline engine for the
86
+ * destination (the worklet mirrors every instrument sync onto it), otherwise
87
+ * the resolve returns -1.
88
+ *
89
+ * @param destinationId MIDI destination the instrument is bound to.
90
+ * @param paramName Instrument JSON-key parameter name (e.g. `cutoffHz`).
91
+ * @returns Reserved instrument-automation id, or -1 when destination/key unknown.
92
+ */
93
+ export declare function resolveInstrumentAutomationId(ctx: EngineParameterContext, destinationId: number, paramName: string): number;
94
+ /**
95
+ * Returns the number of automation lanes installed on the engine, including
96
+ * lanes whose breakpoint list is currently empty.
97
+ *
98
+ * @returns Engine-side automation lane count.
99
+ */
100
+ export declare function automationLaneCount(ctx: EngineParameterContext): number;
101
+ export declare function listParameters(ctx: EngineParameterContext): EngineParameterInfo[];
102
+ /** Registers a parameter on both the offline mirror and live worklet engine. */
103
+ export declare function addParameter(ctx: EngineParameterContext, info: EngineParameterInfo): void;
104
+ /** Clears registered parameters and their automation lanes on both engines. */
105
+ export declare function clearParameters(ctx: EngineParameterContext): void;
106
+ //# sourceMappingURL=engine-parameter-facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-parameter-facade.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-parameter-facade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { type WorkletInput, type WorkletOutput } from './audio_types';
2
+ import { type SonareEngineCaptureRequestMessage, type SonareEngineSyncMessage, type SonareEngineTransportRequestMessage, type SonareRealtimeEngineWorkletProcessorOptions, type WorkletTransport } from './messages';
3
+ import { type SonareEngineCommandRecord } from './protocol';
4
+ /**
5
+ * AudioWorklet-style bridge for the DAW realtime engine facade.
6
+ *
7
+ * Backed by the `sonare.wasm` embind facade.
8
+ */
9
+ export declare class SonareRealtimeEngineWorkletProcessor {
10
+ private static warnedChannelScratchOverflow;
11
+ readonly sampleRate: number;
12
+ readonly blockSize: number;
13
+ readonly channelCount: number;
14
+ private engine;
15
+ private closed;
16
+ private commandRing?;
17
+ private telemetryRing?;
18
+ private meterRing?;
19
+ private scopeRing?;
20
+ private clipPageRequestRing?;
21
+ private externalMidiRing?;
22
+ private transport?;
23
+ private meterIntervalFrames;
24
+ private lastMeterFrame;
25
+ private metronomeConfig;
26
+ private channelBuffers;
27
+ private monitorBuffers;
28
+ private readonly cueOutput;
29
+ private readonly liveClips;
30
+ private readonly pagedClipProviders;
31
+ private readonly pagedClipPageFrames;
32
+ private readonly pendingPagedClips;
33
+ private readonly clipPageRequestClipIds;
34
+ private readonly clipPageRequestPageIndices;
35
+ private clipPageRequestOverflowReported;
36
+ constructor(options?: SonareRealtimeEngineWorkletProcessorOptions, transport?: WorkletTransport);
37
+ process(inputs: WorkletInput, outputs: WorkletOutput): boolean;
38
+ private reacquireChannelBuffers;
39
+ private reacquireMonitorBuffers;
40
+ receiveCommand(command: SonareEngineCommandRecord): void;
41
+ receiveSync(message: SonareEngineSyncMessage): void;
42
+ private applySync;
43
+ receiveCaptureRequest(message: SonareEngineCaptureRequestMessage): void;
44
+ receiveTransportRequest(message: SonareEngineTransportRequestMessage): void;
45
+ destroy(): void;
46
+ private drainCommands;
47
+ private safeApplyCommand;
48
+ private applyCommand;
49
+ private publishTelemetry;
50
+ private writeTelemetryScratch;
51
+ private publishTelemetryRecord;
52
+ private publishMeters;
53
+ private writeMeterScratch;
54
+ private publishScope;
55
+ private writeScopeScratch;
56
+ private publishExternalMidi;
57
+ /**
58
+ * Forward a bounded batch of native page misses to the main thread. This
59
+ * deliberately runs after audio rendering: a cache miss is silence for this
60
+ * block, and OPFS I/O must never delay `process()`.
61
+ */
62
+ private publishClipPageRequests;
63
+ private removePagedClipProvider;
64
+ private clearPagedClipProviders;
65
+ private commandRingFromSharedBuffer;
66
+ private telemetryRingFromSharedBuffer;
67
+ }
68
+ //# sourceMappingURL=engine-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-processor.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAG1F,OAAO,EAIL,KAAK,iCAAiC,EAEtC,KAAK,uBAAuB,EAC5B,KAAK,mCAAmC,EAExC,KAAK,2CAA2C,EAChD,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAmBL,KAAK,yBAAyB,EAW/B,MAAM,YAAY,CAAC;AAkBpB;;;;GAIG;AACH,qBAAa,oCAAoC;IAC/C,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAS;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAC,CAAgC;IACpD,OAAO,CAAC,aAAa,CAAC,CAAkC;IACxD,OAAO,CAAC,SAAS,CAAC,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAwB;IAC1C,OAAO,CAAC,mBAAmB,CAAC,CAAkC;IAC9D,OAAO,CAAC,gBAAgB,CAAC,CAA+B;IACxD,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAA4B;IAGlD,OAAO,CAAC,eAAe,CAA4D;IAQnF,OAAO,CAAC,cAAc,CAAiB;IAIvC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;IAKnE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwB;IAC/D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAwB;IACnE,OAAO,CAAC,+BAA+B,CAAK;gBAG1C,OAAO,GAAE,2CAAgD,EACzD,SAAS,CAAC,EAAE,gBAAgB;IAoF9B,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IAqF9D,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,uBAAuB;IAM/B,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAUxD,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAenD,OAAO,CAAC,SAAS;IA+gBjB,qBAAqB,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI;IAuDvE,uBAAuB,CAAC,OAAO,EAAE,mCAAmC,GAAG,IAAI;IAqB3E,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,YAAY;IA4GpB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,mBAAmB;IA4B3B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA+F/B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,6BAA6B;CAWtC"}
@@ -0,0 +1,2 @@
1
+ export declare function registerSonareRealtimeEngineWorkletProcessor(name?: string): void;
2
+ //# sourceMappingURL=engine-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-register.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-register.ts"],"names":[],"mappings":"AAaA,wBAAgB,4CAA4C,CAC1D,IAAI,SAAqC,GACxC,IAAI,CA8IN"}
@@ -0,0 +1,73 @@
1
+ import type { EqBand, PanLawInput, PanMode, RealtimeEngine } from '../index';
2
+ import type { InsertParamOverrideMap } from './engine-mixer-facade';
3
+ import { type StripJsonTarget } from './engine-mixer-facade';
4
+ import type { SonareEngineInstrumentSyncMessage, SonareEngineSyncMessage } from './messages';
5
+ /**
6
+ * Collaborator surface the strip/pan/EQ/insert/instrument/MIDI setters need from
7
+ * the owning {@link SonareEngine}: the offline engine they mirror writes into,
8
+ * the out-of-band sync posters, and the lane-resolution helpers.
9
+ */
10
+ export interface EngineStripContext {
11
+ readonly offlineEngine: RealtimeEngine;
12
+ readonly trackLaneIds: number[];
13
+ postSync(message: SonareEngineSyncMessage): void;
14
+ postInstrumentSync(message: SonareEngineInstrumentSyncMessage): void;
15
+ ensureTrackLane(target: string | number): number;
16
+ resolveTargetId(target: string | number): number;
17
+ readStripJson(target: StripJsonTarget): string | undefined;
18
+ writeStripJson(target: StripJsonTarget, sceneJson: string): void;
19
+ readonly insertParamOverrides: InsertParamOverrideMap;
20
+ }
21
+ export declare function setTrackStripJson(ctx: EngineStripContext, trackId: number, sceneJson: string, trackStripJson: Map<number, string>): {
22
+ resetInserts: boolean;
23
+ };
24
+ export declare function setTrackStripEqBand(ctx: EngineStripContext, target: string | number, bandIndex: number, band: EqBand | string): void;
25
+ export declare function setTrackStripInsertBypassed(ctx: EngineStripContext, target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass: boolean): void;
26
+ export declare function setTrackStripInsertParamByName(ctx: EngineStripContext, target: string | number, insertIndex: number, paramName: string, value: number): void;
27
+ export declare function setTrackStripPan(ctx: EngineStripContext, target: string | number, pan: number): void;
28
+ export declare function setTrackStripPanLaw(ctx: EngineStripContext, target: string | number, panLaw: PanLawInput): void;
29
+ export declare function setTrackStripPanMode(ctx: EngineStripContext, target: string | number, panMode: PanMode | number): void;
30
+ export declare function setTrackStripDualPan(ctx: EngineStripContext, target: string | number, leftPan: number, rightPan: number): void;
31
+ export declare function setTrackStripChannelDelaySamples(ctx: EngineStripContext, target: string | number, delaySamples: number): void;
32
+ /**
33
+ * Records a master fader or pan value the parameter path applied, so a master
34
+ * strip re-post does not reset it; a track lane keeps these outside its strip.
35
+ */
36
+ export declare function cacheMasterStripScalar(ctx: EngineStripContext, field: 'faderDb' | 'pan', value: number): void;
37
+ export declare function setMasterStripEqBand(ctx: EngineStripContext, bandIndex: number, band: EqBand | string): void;
38
+ export declare function setMasterStripInsertBypassed(ctx: EngineStripContext, insertIndex: number, bypassed: boolean, resetOnBypass: boolean): void;
39
+ export declare function setMasterStripInsertParamByName(ctx: EngineStripContext, insertIndex: number, paramName: string, value: number): void;
40
+ export declare function setBusStripInsertParamByName(ctx: EngineStripContext, busId: number, insertIndex: number, paramName: string, value: number): void;
41
+ export declare function setBusStripInsertBypassed(ctx: EngineStripContext, busId: number, insertIndex: number, bypassed: boolean, resetOnBypass: boolean): void;
42
+ export declare function setBusStripEqBand(ctx: EngineStripContext, busId: number, bandIndex: number, band: EqBand | string): void;
43
+ export declare function setBusStripPan(ctx: EngineStripContext, busId: number, pan: number): void;
44
+ export declare function setBusStripPanLaw(ctx: EngineStripContext, busId: number, panLaw: PanLawInput): void;
45
+ export declare function setBusStripPanMode(ctx: EngineStripContext, busId: number, panMode: PanMode | number): void;
46
+ export declare function setBusStripDualPan(ctx: EngineStripContext, busId: number, leftPan: number, rightPan: number): void;
47
+ export declare function pushMidiNoteOn(ctx: EngineStripContext, trackId: string | number, group: number, channel: number, note: number, velocity: number, renderFrame: number): void;
48
+ export declare function pushMidiNoteOff(ctx: EngineStripContext, trackId: string | number, group: number, channel: number, note: number, velocity: number, renderFrame: number): void;
49
+ export declare function pushMidiCc(ctx: EngineStripContext, trackId: string | number, group: number, channel: number, controller: number, value: number, renderFrame: number): void;
50
+ export declare function pushMidiPitchBend(ctx: EngineStripContext, trackId: string | number, group: number, channel: number, bend14: number, renderFrame: number): void;
51
+ export declare function pushMidiChannelPressure(ctx: EngineStripContext, trackId: string | number, group: number, channel: number, pressure: number, renderFrame: number): void;
52
+ export declare function pushMidiPolyPressure(ctx: EngineStripContext, trackId: string | number, group: number, channel: number, note: number, pressure: number, renderFrame: number): void;
53
+ export declare function pushMidiUmp(ctx: EngineStripContext, trackId: string | number, word0: number, renderFrame: number): void;
54
+ export declare function setBuiltinInstrument(ctx: EngineStripContext, trackId: string | number, config: {
55
+ destinationId?: number;
56
+ } & Record<string, unknown>): void;
57
+ export declare function setSynthInstrument(ctx: EngineStripContext, trackId: string | number, patch: Record<string, unknown> | string): void;
58
+ export declare function loadSoundFont(ctx: EngineStripContext, data: Uint8Array): void;
59
+ export declare function setSf2Instrument(ctx: EngineStripContext, trackId: string | number, config: {
60
+ destinationId?: number;
61
+ gain?: number;
62
+ polyphony?: number;
63
+ preferModelForModeledFamilies?: boolean;
64
+ clearBankRig?: boolean;
65
+ gsEfxRealization?: 'modern' | 'classic';
66
+ }): void;
67
+ export declare function setMidiDestinationExternal(ctx: EngineStripContext, trackId: string | number, external: boolean): void;
68
+ export declare function setExternalMidiClockEnabled(ctx: EngineStripContext, enabled: boolean): void;
69
+ export declare function setMidiFx(ctx: EngineStripContext, trackId: string | number, configJson: string): void;
70
+ export declare function clearMidiFx(ctx: EngineStripContext, trackId: string | number): void;
71
+ export declare function pushMidiSysex(ctx: EngineStripContext, trackId: string | number, data: Uint8Array, renderFrame: number): void;
72
+ export declare function pushMidiPanic(ctx: EngineStripContext, renderFrame: number): void;
73
+ //# sourceMappingURL=engine-strips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-strips.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-strips.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { EngineParameterInfo, EngineTempoSegment, EngineTimeSignatureSegment, EngineTrackLane, EngineTrackSend } from '../index';
2
+ import type { SonareEngineSyncTempoMessage } from './messages';
3
+ /**
4
+ * Builds the ordered mixer-lane descriptors for a sync message.
5
+ *
6
+ * Each declared track id is paired with its current send list and output bus
7
+ * (both omitted when absent), defensively copying the send entries.
8
+ *
9
+ * @param trackLaneIds Lane order (track ids) declared on the engine.
10
+ * @param trackSends Per-track send lists.
11
+ * @param trackOutputBus Per-track output bus routing.
12
+ * @returns Lane descriptors in lane order.
13
+ */
14
+ export declare function buildMixerLanes(trackLaneIds: readonly number[], trackSends: ReadonlyMap<number, EngineTrackSend[]>, trackOutputBus: ReadonlyMap<number, number>): EngineTrackLane[];
15
+ /**
16
+ * Builds the out-of-band tempo/time-signature sync message, deep-copying the
17
+ * tempo and time-signature segments so the consumer cannot alias engine state.
18
+ */
19
+ export declare function buildTempoSync(tempoBpm: number, timeSignature: {
20
+ numerator: number;
21
+ denominator: number;
22
+ }, tempoSegments: readonly EngineTempoSegment[], timeSignatureSegments: readonly EngineTimeSignatureSegment[]): SonareEngineSyncTempoMessage;
23
+ /**
24
+ * Resolves a target id given as a number, or as a string naming one.
25
+ *
26
+ * Both spellings reach one refusal. Reading the string with `Number.parseInt`
27
+ * stops at the first non-digit, so `"3.5"` resolves to `3` and `"5abc"` to `5`,
28
+ * and an unparseable name resolves to `0` -- all ids the caller never named.
29
+ * `0` is a legal destination, so the native check these feed cannot tell the
30
+ * substitution from a deliberate choice and never reports one.
31
+ */
32
+ export declare function resolveTargetId(target: string | number): number;
33
+ /** Resolves a registered parameter name or passes through a numeric id. */
34
+ export declare function resolveParamId(parameters: readonly EngineParameterInfo[], nodeId: string, param: string | number): number;
35
+ /** Encodes an automation curve descriptor to the engine's numeric curve code. */
36
+ export declare function curveCode(curve: number | 'linear' | 'exponential'): number;
37
+ //# sourceMappingURL=engine-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-sync.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAClD,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C,eAAe,EAAE,CAUnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACzD,aAAa,EAAE,SAAS,kBAAkB,EAAE,EAC5C,qBAAqB,EAAE,SAAS,0BAA0B,EAAE,GAC3D,4BAA4B,CAQ9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAS/D;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAC5B,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,MAAM,CASR;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAK1E"}
@@ -0,0 +1,48 @@
1
+ import type { EngineTempoSegment, EngineTimeSignatureSegment, EngineTransportState, RealtimeEngine } from '../index';
2
+ import type { SonareRealtimeEngineNode } from './engine-node';
3
+ import type { SonareEngineSyncMessage } from './messages';
4
+ import { SonareEngineCommandType } from './protocol';
5
+ interface TimeSignature {
6
+ numerator: number;
7
+ denominator: number;
8
+ }
9
+ /**
10
+ * Collaborator surface the tempo / time-signature / loop / transport helpers
11
+ * need from the owning {@link SonareEngine}: the offline engine they mirror
12
+ * into, the realtime node they command and query, the out-of-band sync poster,
13
+ * and getters/setters for the tempo-map and cached-transport state the engine
14
+ * holds (so the helpers mutate it by reference).
15
+ */
16
+ export interface EngineTempoContext {
17
+ readonly offlineEngine: RealtimeEngine;
18
+ readonly realtimeNode: SonareRealtimeEngineNode;
19
+ sendCommand(command: {
20
+ type: SonareEngineCommandType;
21
+ targetId?: number;
22
+ sampleTime?: number;
23
+ argFloat?: number;
24
+ argInt?: number;
25
+ }): boolean;
26
+ postSync(message: SonareEngineSyncMessage): void;
27
+ getTempoBpm(): number;
28
+ setTempoBpm(bpm: number): void;
29
+ getTimeSignature(): TimeSignature;
30
+ setTimeSignature(signature: TimeSignature): void;
31
+ getTempoSegments(): EngineTempoSegment[];
32
+ setTempoSegments(segments: EngineTempoSegment[]): void;
33
+ getTimeSignatureSegments(): EngineTimeSignatureSegment[];
34
+ setTimeSignatureSegments(segments: EngineTimeSignatureSegment[]): void;
35
+ setLatestTransportState(state: EngineTransportState): void;
36
+ getLatestTransportState(): EngineTransportState | undefined;
37
+ }
38
+ export declare function postTempoSync(ctx: EngineTempoContext): void;
39
+ export declare function setTempo(ctx: EngineTempoContext, bpm: number): void;
40
+ export declare function setTempoSegments(ctx: EngineTempoContext, segments: readonly EngineTempoSegment[]): void;
41
+ export declare function setTimeSignature(ctx: EngineTempoContext, numerator: number, denominator: number): void;
42
+ export declare function setTimeSignatureSegments(ctx: EngineTempoContext, segments: readonly EngineTimeSignatureSegment[]): void;
43
+ export declare function setLoop(ctx: EngineTempoContext, startPpq: number, endPpq: number, enabled?: boolean): boolean;
44
+ export declare function countInEndSample(ctx: EngineTempoContext, startSample: number, bars: number): number;
45
+ export declare function getTransportState(ctx: EngineTempoContext): Promise<EngineTransportState>;
46
+ export declare function cachedTransportState(ctx: EngineTempoContext): EngineTransportState | undefined;
47
+ export {};
48
+ //# sourceMappingURL=engine-tempo-facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-tempo-facade.d.ts","sourceRoot":"","sources":["../../src/worklet/engine-tempo-facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;IAChD,WAAW,CAAC,OAAO,EAAE;QACnB,IAAI,EAAE,uBAAuB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;IACZ,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjD,WAAW,IAAI,MAAM,CAAC;IACtB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,IAAI,aAAa,CAAC;IAClC,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IACjD,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;IACzC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACvD,wBAAwB,IAAI,0BAA0B,EAAE,CAAC;IACzD,wBAAwB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IACvE,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3D,uBAAuB,IAAI,oBAAoB,GAAG,SAAS,CAAC;CAC7D;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAS3D;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAKnE;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,IAAI,CAMN;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,EACvB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,IAAI,CAKN;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,SAAS,0BAA0B,EAAE,GAC9C,IAAI,CASN;AAED,wBAAgB,OAAO,CACrB,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,UAAO,GACb,OAAO,CAkBT;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAI9F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,SAAS,CAE9F"}