@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,194 @@
1
+ import type { BuiltinSynthBinding, SampleDesc, SampleZoneDesc, Sf2InstrumentConfig, Sf2ProgramStatus, SynthEnumTables, SynthPatch } from './instrument_types';
2
+ import type { AlignTakeToReferenceRequest, AlignTakeToReferenceResult, ProjectAssistSidecar, ProjectAutomationLaneDesc, ProjectAutomationPoint, ProjectAutomationTargetKind, ProjectBounceOptions, ProjectChordSymbol, ProjectClip, ProjectClipCompSegment, ProjectClipDesc, ProjectClipFade, ProjectClipTake, ProjectCompileResult, ProjectKeySegment, ProjectLoopMode, ProjectLoopRecordingDesc, ProjectLoopRecordingResult, ProjectMarker, ProjectMidiCcBinding, ProjectMidiClipResult, ProjectMidiEvent, ProjectMidiRouteConfig, ProjectMidiRouteResult, ProjectNotePairValidation, ProjectSource, ProjectTempoCandidate, ProjectTempoOptions, ProjectTempoSegment, ProjectTimeSignatureSegment, ProjectTrack, ProjectTrackKind, ProjectWarpMapDesc, ProjectWarpMode, TranscribeOptions, TranscribeResult } from './project_types';
3
+ /**
4
+ * A synth binding as the embind layer takes it: the public `sampleBank` handle
5
+ * has already been resolved to the id the native registry looks the bank up by,
6
+ * because an embind class instance cannot travel inside a plain JS object the
7
+ * C++ side reads field by field.
8
+ */
9
+ export type NativeSynthBinding = Omit<SynthPatch, 'sampleBank'> & {
10
+ sampleBankId?: number;
11
+ };
12
+ export interface WasmSampleBank {
13
+ readonly id: number;
14
+ addSample: (data: Float32Array, desc: SampleDesc) => number;
15
+ addZone: (setIndex: number, zone: Omit<SampleZoneDesc, 'setIndex'>) => void;
16
+ sampleCount: () => number;
17
+ setCount: () => number;
18
+ delete: () => void;
19
+ }
20
+ /**
21
+ * Swaps a facade {@link SampleBank} in a synth patch descriptor for the id the
22
+ * embind layer looks the native bank up by, leaving every other field alone.
23
+ *
24
+ * Shared by the offline bounce and the realtime engine so `sampleBank` means
25
+ * the same thing on both. It lives in this internal module rather than beside
26
+ * the class because it hands out an internal identity that no caller has a use
27
+ * for, and the entry point must not re-export it: a facade symbol with no C
28
+ * counterpart is an active parity finding.
29
+ *
30
+ * The cast is the only one of its kind: `released` is private, and TypeScript's
31
+ * private is a compile-time rule, so reading it once here beats widening the
32
+ * class with a method the parity tool would then read as a facade op.
33
+ */
34
+ export declare function normalizeSynthInstrument(patch: unknown): NativeSynthBinding | string;
35
+ export interface WasmProject {
36
+ toJson: () => string;
37
+ setSampleRate: (sampleRate: number) => void;
38
+ addTrack: (desc: {
39
+ kind?: number | string;
40
+ name?: string;
41
+ }) => number;
42
+ addClip: (desc: ProjectClipDesc) => number;
43
+ importExternalStems: (request: unknown) => {
44
+ trackIds: number[];
45
+ clipIds: number[];
46
+ };
47
+ addLoopRecordingTakes: (desc: ProjectLoopRecordingDesc) => ProjectLoopRecordingResult;
48
+ addMidiClip: (startPpq: number, lengthPpq: number) => ProjectMidiClipResult;
49
+ splitClip: (clipId: number, splitPpq: number) => number;
50
+ trimClip: (clipId: number, newStartPpq: number, newLengthPpq: number) => void;
51
+ moveClip: (clipId: number, newStartPpq: number, newTrackId: number) => void;
52
+ setTrackKind: (trackId: number, kind: number) => void;
53
+ setClipWarpRef: (clipId: number, warpRefId: number) => void;
54
+ setClipWarpMode: (clipId: number, mode: number) => void;
55
+ setWarpMap: (map: ProjectWarpMapDesc) => void;
56
+ removeWarpMap: (warpRefId: number) => void;
57
+ setTrackMidiDestination: (trackId: number, destinationId: number) => void;
58
+ setTrackGain: (trackId: number, gain: number) => void;
59
+ setTrackMute: (trackId: number, mute: boolean) => void;
60
+ setTrackSolo: (trackId: number, solo: boolean) => void;
61
+ setTrackPan: (trackId: number, pan: number) => void;
62
+ undo: () => void;
63
+ redo: () => void;
64
+ clearHistory: () => void;
65
+ setMaxUndoDepth: (depth: number) => void;
66
+ setMaxHistoryBytes: (bytes: number) => void;
67
+ setMidiEvents: (clipId: number, events: ReadonlyArray<ProjectMidiEvent | readonly [number, number, number]>) => void;
68
+ importSmf: (data: Uint8Array) => number;
69
+ exportSmf: () => Uint8Array<ArrayBuffer>;
70
+ importClipFile: (data: Uint8Array) => number;
71
+ exportClipFile: () => Uint8Array<ArrayBuffer>;
72
+ setProgram: (clipId: number, program: number, bank: number) => void;
73
+ setProgramOnChannel: (clipId: number, group: number, channel: number, program: number, bank: number) => void;
74
+ bakeMidiFx: (clipId: number, configJson: string) => void;
75
+ bakeMidiFxWithSourceIndex: (clipId: number, configJson: string) => Int32Array;
76
+ previewMidiFxCount: (clipId: number, configJson: string) => number;
77
+ setMidiFx: (clipId: number, configJson: string) => void;
78
+ validateMidiNotes: (clipId: number) => ProjectNotePairValidation;
79
+ transcribeToClip: (clipId: number, samples: Float32Array, sampleRate: number, config: TranscribeOptions) => number;
80
+ analyzeTempo: (audio: Float32Array, sampleRate: number, options: ProjectTempoOptions | undefined) => ProjectTempoCandidate[];
81
+ autoTempo: (audio: Float32Array, sampleRate: number, candidateIndex: number, applyTimeSignatures: boolean, options: ProjectTempoOptions | undefined) => number;
82
+ snapToGrid: (ppq: number, strength: number, division: number) => number;
83
+ compile: () => ProjectCompileResult;
84
+ bounce: (options: ProjectBounceOptions) => Float32Array;
85
+ bounceWithBuiltinInstrument: (bindings: BuiltinSynthBinding | ReadonlyArray<BuiltinSynthBinding> | undefined, options: ProjectBounceOptions) => Float32Array;
86
+ bounceWithSynthInstrument: (bindings: NativeSynthBinding | string | ReadonlyArray<NativeSynthBinding | string> | undefined, options: ProjectBounceOptions) => Float32Array;
87
+ loadSoundFont: (data: Uint8Array) => void;
88
+ clearSoundFont: () => void;
89
+ soundFontPresetCount: () => number;
90
+ soundFontManifest: () => Sf2ProgramStatus[];
91
+ bounceWithSf2Instrument: (bindings: Sf2InstrumentConfig | ReadonlyArray<Sf2InstrumentConfig> | undefined, options: ProjectBounceOptions) => Float32Array;
92
+ removeClip: (clipId: number) => void;
93
+ setClipGain: (clipId: number, gain: number) => void;
94
+ setClipFade: (clipId: number, fadeIn: ProjectClipFade, fadeOut: ProjectClipFade) => void;
95
+ unresolvedAudioSourceIds: () => number[];
96
+ setSourceAudio: (sourceId: number, audio: Float32Array, channels: number, sampleRate: number) => void;
97
+ setAudioSourceMetadata: (sourceId: number, contentHash: string, externalStemRole: string) => void;
98
+ setClipTakes: (clipId: number, takes: ReadonlyArray<ProjectClipTake>, activeTakeId: number) => void;
99
+ setClipCompSegments: (clipId: number, segments: ReadonlyArray<ProjectClipCompSegment>) => void;
100
+ setClipLoop: (clipId: number, loopMode: number, loopLengthPpq: number, loopCrossfadePpq: number) => void;
101
+ setClipSource: (clipId: number, sourceId: number) => void;
102
+ duplicateClip: (clipId: number, newStartPpq: number) => number;
103
+ removeTrack: (trackId: number) => void;
104
+ renameTrack: (trackId: number, name: string) => void;
105
+ setTrackRoute: (trackId: number, channelStripRef: string, outputTarget: string) => void;
106
+ addAutomationLane: (trackId: number, desc: ProjectAutomationLaneDesc) => number;
107
+ editAutomationLane: (trackId: number, targetParamId: number, desc: ProjectAutomationLaneDesc) => void;
108
+ removeAutomationLane: (trackId: number, targetParamId: number) => void;
109
+ annotateKeys: (keys: ReadonlyArray<ProjectKeySegment>) => void;
110
+ annotateChords: (chords: ReadonlyArray<ProjectChordSymbol>) => void;
111
+ setAssistSidecar: (moduleId: string, schemaVersion: number, targetTrackId: number, regionStartPpq: number, regionEndPpq: number, payload: Uint8Array) => void;
112
+ assistSidecarCount: () => number;
113
+ getAssistSidecar: (index: number) => ProjectAssistSidecar;
114
+ setOverlapPolicy: (policy: number) => void;
115
+ getOverlapPolicy: () => number;
116
+ getSampleRate: () => number;
117
+ setMixerSceneJson: (sceneJson: string) => void;
118
+ setMarker: (markerId: number, ppq: number, name: string) => number;
119
+ setMarkerEx: (marker: ProjectMarker) => number;
120
+ markerByIndex: (index: number) => ProjectMarker;
121
+ trackByIndex: (index: number) => ProjectTrack;
122
+ clipByIndex: (index: number) => ProjectClip;
123
+ sourceByIndex: (index: number) => ProjectSource;
124
+ markerCount: () => number;
125
+ trackCount: () => number;
126
+ clipCount: () => number;
127
+ sourceCount: () => number;
128
+ tempoSegmentCount: () => number;
129
+ tempoSegmentByIndex: (index: number) => ProjectTempoSegment;
130
+ timeSignatureByIndex: (index: number) => ProjectTimeSignatureSegment;
131
+ timeSignatureCount: () => number;
132
+ setTempoSegments: (segments: ReadonlyArray<ProjectTempoSegment>) => void;
133
+ setTimeSignatures: (segments: ReadonlyArray<ProjectTimeSignatureSegment>) => void;
134
+ lastBounceCompileResult: () => ProjectCompileResult;
135
+ delete: () => void;
136
+ }
137
+ export interface ProjectModule {
138
+ Project: {
139
+ new (): WasmProject;
140
+ fromJson: (json: string) => WasmProject;
141
+ fromJsonWithDiagnostics: (json: string) => {
142
+ project: WasmProject;
143
+ diagnostics: string;
144
+ };
145
+ };
146
+ SampleBank: {
147
+ new (): WasmSampleBank;
148
+ };
149
+ projectAbiVersion: () => number;
150
+ synthPresetNames: () => string[];
151
+ synthPresetPatch: (name: string) => SynthPatch;
152
+ synthGsDrumKitName: (program: number) => string | null;
153
+ synthGsDrumKitIsVoicedApart: (program: number) => number;
154
+ synthGsVariationIsVoicedApart: (bank: number, program: number) => number;
155
+ controllerProfileNames: () => string[];
156
+ _synthEnumTables: () => SynthEnumTables;
157
+ _synthPatchRoundTrip: (patch: SynthPatch) => SynthPatch;
158
+ midiGmInstrumentName: (program: number) => string | null;
159
+ midiGmProgramForName: (name: string) => number;
160
+ midiGmFamilyName: (family: number) => string | null;
161
+ midiGmFamilyFirstProgram: (family: number) => number;
162
+ midiGm2InstrumentName: (bankLsb: number, program: number) => string | null;
163
+ midiGmDrumName: (note: number) => string | null;
164
+ midiGmDrumNoteForName: (name: string) => number;
165
+ midiGm2DrumSetName: (bankLsb: number) => string | null;
166
+ midiGm2DrumName: (bankLsb: number, note: number) => string | null;
167
+ midiCcName: (controller: number) => string | null;
168
+ midiCcIndexForName: (name: string) => number;
169
+ midiPerNoteControllerName: (index: number) => string | null;
170
+ midiBankProgram: (ppq: number, group: number, channel: number, bankMsb: number, bankLsb: number, program: number) => ProjectMidiEvent[];
171
+ midiRouteEvents: (events: ReadonlyArray<ProjectMidiEvent>, config: ProjectMidiRouteConfig) => ProjectMidiRouteResult;
172
+ midiCcLearn: (events: ReadonlyArray<ProjectMidiEvent>, paramId: number, minValue: number, maxValue: number, minMovement: number) => ProjectMidiCcBinding | null;
173
+ midiCcToBreakpoint: (bindings: ReadonlyArray<ProjectMidiCcBinding>, event: ProjectMidiEvent) => ProjectAutomationPoint | null;
174
+ midiParamToCc: (bindings: ReadonlyArray<ProjectMidiCcBinding>, paramId: number, unitValue: number, group: number, ppq: number) => ProjectMidiEvent | null;
175
+ transcribe: (samples: Float32Array, sampleRate: number, tempoBpm: number | undefined, config: TranscribeOptions) => TranscribeResult;
176
+ alignTakeToReference: (reference: Float32Array, take: Float32Array, sampleRate: number, config: AlignTakeToReferenceRequest) => AlignTakeToReferenceResult;
177
+ }
178
+ export declare function projectModule(): ProjectModule;
179
+ export declare function projectMidi1Event(fnName: string, ppq: number, group: number, status: number, channel: number, data1: number, data2?: number): ProjectMidiEvent;
180
+ export declare function assertProjectMidiEvents(fnName: string, events: ReadonlyArray<ProjectMidiEvent | readonly [number, number, number]>): void;
181
+ export declare function projectTrackKindValue(kind: ProjectTrackKind | undefined): number;
182
+ /**
183
+ * Resolve a breakpoint's curve spelling to its ordinal before it crosses into
184
+ * embind, and fold the `curveToNext` alias onto `curve`.
185
+ *
186
+ * Mirrors the Node facade's `projectAutomationPointValue`: resolving here means
187
+ * an unknown spelling is a `RangeError` from the same table both packages
188
+ * declare, rather than a curve one binding renders and the other rejects.
189
+ */
190
+ export declare function projectAutomationPointValue(point: ProjectAutomationPoint): ProjectAutomationPoint;
191
+ export declare function projectAutomationTargetKindValue(kind: ProjectAutomationTargetKind): number;
192
+ export declare function projectWarpModeValue(mode: ProjectWarpMode | undefined): number;
193
+ export declare function projectLoopModeValue(mode: ProjectLoopMode | undefined): number;
194
+ //# sourceMappingURL=project_internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_internal.d.ts","sourceRoot":"","sources":["../src/project_internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { SynthEnumTables, SynthPatch } from './instrument_types';
2
+ /**
3
+ * Runtime ABI version of the flat project POD layout exposed by this WASM
4
+ * build. Equals {@link EXPECTED_PROJECT_ABI_VERSION} when the arrangement
5
+ * subsystem is compiled in. Mirrors the C-ABI `sonare_project_abi_version`.
6
+ */
7
+ export declare function projectAbiVersion(): number;
8
+ /**
9
+ * NativeSynth preset catalog names (`'sine'`, `'saw-lead'`, `'e-piano'`,
10
+ * `'drum-kit'`, ...). Use these to discover valid {@link SynthPatch} preset
11
+ * names instead of hardcoding magic strings.
12
+ */
13
+ export declare function synthPresetNames(): string[];
14
+ /**
15
+ * GS rhythm-set name a rhythm part's `program` selects (`'Standard'`,
16
+ * `'Room'`, `'Jazz'`, ...), or `null` when the module's own tone map defines
17
+ * no set there.
18
+ *
19
+ * @remarks
20
+ * The answer is the module's own map, which is the newest one and reaches
21
+ * every set this build voices; a file selecting an older map reaches fewer.
22
+ */
23
+ export declare function synthGsDrumKitName(program: number): string | null;
24
+ /**
25
+ * Whether the GS rhythm set at `program` is voiced apart from Standard: `true`
26
+ * when at least one drum note differs, `false` when the set renders exactly as
27
+ * Standard, `null` when no set sits at `program`.
28
+ *
29
+ * @remarks
30
+ * Derived by applying the set to every note's resolved patch and comparing, so
31
+ * the answer follows the voicing rather than a list that has to be kept in step
32
+ * with it. Four sets GS fills with one-shots share the Standard voicing
33
+ * deliberately, so a picker built from the set list alone offers four choices
34
+ * that change nothing — annotate or disable them with this.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const kits = Array.from({ length: 128 }, (_, program) => ({ program, name: synthGsDrumKitName(program) }))
39
+ * .filter((kit): kit is { program: number; name: string } => kit.name !== null)
40
+ * .map((kit) => ({ ...kit, placeholder: synthGsDrumKitIsVoicedApart(kit.program) === false }));
41
+ * ```
42
+ */
43
+ export declare function synthGsDrumKitIsVoicedApart(program: number): boolean | null;
44
+ /**
45
+ * Whether melodic Bank Select `bank` on `program` is voiced apart from the
46
+ * capital tone: `true` when the bank has a patch of its own, `false` when it
47
+ * resolves to the capital, `null` when either argument is outside `[0, 127]` —
48
+ * both are seven-bit MIDI values, so `128` is out of range rather than the drum
49
+ * bank here.
50
+ *
51
+ * @remarks
52
+ * Resolving an unvoiced variation to its capital is what GS specifies, so a
53
+ * `false` is correct behaviour rather than a gap — but only this query
54
+ * separates it from a bank that is voiced, which otherwise takes rendering both
55
+ * and comparing. Accepts the GS Bank Select MSB and the GM2 LSB alike, since
56
+ * both address the same variation.
57
+ */
58
+ export declare function synthGsVariationIsVoicedApart(bank: number, program: number): boolean | null;
59
+ /**
60
+ * Controller-profile preset names (`'gm'`, `'breath'`, `'breath-aftertouch'`,
61
+ * `'mpe'`). These are the names {@link RealtimeEngine.setControllerProfile}
62
+ * accepts; an unknown one throws rather than resolving to a default.
63
+ */
64
+ export declare function controllerProfileNames(): string[];
65
+ /**
66
+ * Fetch a named catalog preset as a {@link SynthPatch} (the preset name plus
67
+ * the wrapper-section values), so hosts can inspect a preset and tweak fields
68
+ * before binding it. A `"va:"` routing prefix is accepted; unknown names
69
+ * throw.
70
+ */
71
+ export declare function synthPresetPatch(name: string): SynthPatch;
72
+ export declare function synthEnumTables(): SynthEnumTables;
73
+ export declare function synthPatchRoundTripForTest(patch: SynthPatch): SynthPatch;
74
+ //# sourceMappingURL=project_synth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_synth.d.ts","sourceRoot":"","sources":["../src/project_synth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGtE;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAG3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAG3E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAGjD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAMzD;AAED,wBAAgB,eAAe,IAAI,eAAe,CAEjD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAExE"}