@libraz/libsonare 1.2.1 → 1.2.3
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.
- package/README.md +56 -4
- package/dist/index.d.ts +820 -296
- package/dist/index.js +770 -128
- package/dist/index.js.map +1 -1
- package/dist/sonare-rt.wasm +0 -0
- package/dist/sonare.js +1 -1
- package/dist/sonare.wasm +0 -0
- package/dist/worklet.d.ts +101 -3
- package/dist/worklet.js +706 -69
- package/dist/worklet.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +1764 -287
- package/src/public_types.ts +128 -0
- package/src/sonare.js.d.ts +580 -79
- package/src/stream_types.ts +4 -1
- package/src/worklet.ts +796 -66
- package/src/wasm_types.ts +0 -1259
package/src/sonare.js.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Type declarations for the Emscripten-generated WASM module with embind
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
interface SonareModuleOptions {
|
|
5
|
+
export interface SonareModuleOptions {
|
|
6
6
|
locateFile?: (path: string, prefix: string) => string;
|
|
7
7
|
onRuntimeInitialized?: () => void;
|
|
8
8
|
print?: (text: string) => void;
|
|
@@ -10,7 +10,7 @@ interface SonareModuleOptions {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
// Result types
|
|
13
|
-
interface WasmKeyResult {
|
|
13
|
+
export interface WasmKeyResult {
|
|
14
14
|
root: number;
|
|
15
15
|
mode: number;
|
|
16
16
|
confidence: number;
|
|
@@ -18,17 +18,58 @@ interface WasmKeyResult {
|
|
|
18
18
|
shortName: string;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
interface WasmKeyCandidateResult {
|
|
21
|
+
export interface WasmKeyCandidateResult {
|
|
22
22
|
key: WasmKeyResult;
|
|
23
23
|
correlation: number;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
// Flat POD mirror of SonareRealtimeVoiceChangerConfig. Field names match the
|
|
27
|
+
// C ABI / Python POD exactly (snake_case).
|
|
28
|
+
export interface WasmRealtimeVoiceChangerPodConfig {
|
|
29
|
+
input_gain_db: number;
|
|
30
|
+
output_gain_db: number;
|
|
31
|
+
wet_mix: number;
|
|
32
|
+
retune_semitones: number;
|
|
33
|
+
retune_mix: number;
|
|
34
|
+
retune_grain_size: number;
|
|
35
|
+
formant_factor: number;
|
|
36
|
+
formant_amount: number;
|
|
37
|
+
formant_body: number;
|
|
38
|
+
formant_brightness: number;
|
|
39
|
+
formant_nasal: number;
|
|
40
|
+
eq_highpass_hz: number;
|
|
41
|
+
eq_body_db: number;
|
|
42
|
+
eq_presence_db: number;
|
|
43
|
+
eq_air_db: number;
|
|
44
|
+
gate_threshold_db: number;
|
|
45
|
+
gate_attack_ms: number;
|
|
46
|
+
gate_release_ms: number;
|
|
47
|
+
gate_range_db: number;
|
|
48
|
+
compressor_threshold_db: number;
|
|
49
|
+
compressor_ratio: number;
|
|
50
|
+
compressor_attack_ms: number;
|
|
51
|
+
compressor_release_ms: number;
|
|
52
|
+
compressor_makeup_gain_db: number;
|
|
53
|
+
deesser_frequency_hz: number;
|
|
54
|
+
deesser_threshold_db: number;
|
|
55
|
+
deesser_ratio: number;
|
|
56
|
+
deesser_range_db: number;
|
|
57
|
+
reverb_mix: number;
|
|
58
|
+
reverb_time_ms: number;
|
|
59
|
+
reverb_damping: number;
|
|
60
|
+
reverb_seed: number;
|
|
61
|
+
limiter_ceiling_db: number;
|
|
62
|
+
limiter_release_ms: number;
|
|
63
|
+
limiter_enable_isp_limiter: boolean;
|
|
64
|
+
limiter_isp_ceiling_dbtp: number;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface WasmBeatResult {
|
|
27
68
|
time: number;
|
|
28
69
|
strength: number;
|
|
29
70
|
}
|
|
30
71
|
|
|
31
|
-
interface WasmChordResult {
|
|
72
|
+
export interface WasmChordResult {
|
|
32
73
|
root: number;
|
|
33
74
|
bass: number;
|
|
34
75
|
quality: number;
|
|
@@ -38,7 +79,7 @@ interface WasmChordResult {
|
|
|
38
79
|
name: string;
|
|
39
80
|
}
|
|
40
81
|
|
|
41
|
-
interface WasmSectionResult {
|
|
82
|
+
export interface WasmSectionResult {
|
|
42
83
|
type: number;
|
|
43
84
|
start: number;
|
|
44
85
|
end: number;
|
|
@@ -47,7 +88,7 @@ interface WasmSectionResult {
|
|
|
47
88
|
name: string;
|
|
48
89
|
}
|
|
49
90
|
|
|
50
|
-
interface WasmTimbreResult {
|
|
91
|
+
export interface WasmTimbreResult {
|
|
51
92
|
brightness: number;
|
|
52
93
|
warmth: number;
|
|
53
94
|
density: number;
|
|
@@ -55,26 +96,26 @@ interface WasmTimbreResult {
|
|
|
55
96
|
complexity: number;
|
|
56
97
|
}
|
|
57
98
|
|
|
58
|
-
interface WasmDynamicsResult {
|
|
99
|
+
export interface WasmDynamicsResult {
|
|
59
100
|
dynamicRangeDb: number;
|
|
60
101
|
loudnessRangeDb: number;
|
|
61
102
|
crestFactor: number;
|
|
62
103
|
isCompressed: boolean;
|
|
63
104
|
}
|
|
64
105
|
|
|
65
|
-
interface WasmRhythmResult {
|
|
106
|
+
export interface WasmRhythmResult {
|
|
66
107
|
syncopation: number;
|
|
67
108
|
grooveType: string;
|
|
68
109
|
patternRegularity: number;
|
|
69
110
|
}
|
|
70
111
|
|
|
71
|
-
interface WasmTimeSignatureResult {
|
|
112
|
+
export interface WasmTimeSignatureResult {
|
|
72
113
|
numerator: number;
|
|
73
114
|
denominator: number;
|
|
74
115
|
confidence: number;
|
|
75
116
|
}
|
|
76
117
|
|
|
77
|
-
interface WasmAnalysisResult {
|
|
118
|
+
export interface WasmAnalysisResult {
|
|
78
119
|
bpm: number;
|
|
79
120
|
bpmConfidence: number;
|
|
80
121
|
key: WasmKeyResult;
|
|
@@ -88,11 +129,65 @@ interface WasmAnalysisResult {
|
|
|
88
129
|
form: string;
|
|
89
130
|
}
|
|
90
131
|
|
|
91
|
-
interface
|
|
132
|
+
export interface WasmBpmCandidate {
|
|
133
|
+
bpm: number;
|
|
134
|
+
confidence: number;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export interface WasmBpmAnalysisResult {
|
|
138
|
+
bpm: number;
|
|
139
|
+
confidence: number;
|
|
140
|
+
candidates: WasmBpmCandidate[];
|
|
141
|
+
autocorrelation: Float32Array;
|
|
142
|
+
tempogram: Float32Array;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface WasmRhythmAnalysisResult {
|
|
146
|
+
timeSignature: WasmTimeSignatureResult;
|
|
147
|
+
syncopation: number;
|
|
148
|
+
grooveType: string;
|
|
149
|
+
patternRegularity: number;
|
|
150
|
+
tempoStability: number;
|
|
151
|
+
bpm: number;
|
|
152
|
+
beatIntervals: Float32Array;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface WasmDynamicsAnalysisResult {
|
|
156
|
+
dynamicRangeDb: number;
|
|
157
|
+
peakDb: number;
|
|
158
|
+
rmsDb: number;
|
|
159
|
+
crestFactor: number;
|
|
160
|
+
loudnessRangeDb: number;
|
|
161
|
+
isCompressed: boolean;
|
|
162
|
+
loudnessTimes: Float32Array;
|
|
163
|
+
loudnessRmsDb: Float32Array;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export interface WasmTimbreFrameResult {
|
|
167
|
+
brightness: number;
|
|
168
|
+
warmth: number;
|
|
169
|
+
density: number;
|
|
170
|
+
roughness: number;
|
|
171
|
+
complexity: number;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface WasmTimbreAnalysisResult {
|
|
175
|
+
brightness: number;
|
|
176
|
+
warmth: number;
|
|
177
|
+
density: number;
|
|
178
|
+
roughness: number;
|
|
179
|
+
complexity: number;
|
|
180
|
+
spectralCentroid: Float32Array;
|
|
181
|
+
spectralFlatness: Float32Array;
|
|
182
|
+
spectralRolloff: Float32Array;
|
|
183
|
+
timbreOverTime: WasmTimbreFrameResult[];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export interface WasmChordAnalysisResult {
|
|
92
187
|
chords: WasmChordResult[];
|
|
93
188
|
}
|
|
94
189
|
|
|
95
|
-
interface WasmAcousticResult {
|
|
190
|
+
export interface WasmAcousticResult {
|
|
96
191
|
rt60: number;
|
|
97
192
|
edt: number;
|
|
98
193
|
c50: number;
|
|
@@ -106,13 +201,88 @@ interface WasmAcousticResult {
|
|
|
106
201
|
isBlind: boolean;
|
|
107
202
|
}
|
|
108
203
|
|
|
109
|
-
interface
|
|
204
|
+
export interface WasmRoomGeometryOptions {
|
|
205
|
+
lengthM?: number;
|
|
206
|
+
widthM?: number;
|
|
207
|
+
heightM?: number;
|
|
208
|
+
absorption?: number;
|
|
209
|
+
sourceX?: number;
|
|
210
|
+
sourceY?: number;
|
|
211
|
+
sourceZ?: number;
|
|
212
|
+
listenerX?: number;
|
|
213
|
+
listenerY?: number;
|
|
214
|
+
listenerZ?: number;
|
|
215
|
+
ismOrder?: number;
|
|
216
|
+
seed?: number;
|
|
217
|
+
maxSeconds?: number;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export interface WasmRirSynthOptions extends WasmRoomGeometryOptions {
|
|
221
|
+
sampleRate?: number;
|
|
222
|
+
preferEyring?: boolean;
|
|
223
|
+
mixingTimeMs?: number;
|
|
224
|
+
crossfadeMs?: number;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export interface WasmRirResult {
|
|
228
|
+
rir: Float32Array;
|
|
229
|
+
sampleRate: number;
|
|
230
|
+
hasError: boolean;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export interface WasmRoomEstimateOptions {
|
|
234
|
+
aspectHintLw?: number;
|
|
235
|
+
aspectHintLh?: number;
|
|
236
|
+
referenceAbsorption?: number;
|
|
237
|
+
preferEyring?: boolean;
|
|
238
|
+
nOctaveBands?: number;
|
|
239
|
+
mode?: number;
|
|
240
|
+
minDecayDb?: number;
|
|
241
|
+
noiseFloorMarginDb?: number;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export interface WasmRoomEstimateResult {
|
|
245
|
+
volume: number;
|
|
246
|
+
length: number;
|
|
247
|
+
width: number;
|
|
248
|
+
height: number;
|
|
249
|
+
drrDb: number;
|
|
250
|
+
confidence: number;
|
|
251
|
+
absorptionBands: Float32Array;
|
|
252
|
+
rt60Bands: Float32Array;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export interface WasmRoomMorphOptions extends WasmRoomGeometryOptions {
|
|
256
|
+
wet?: number;
|
|
257
|
+
sourceTailSuppression?: number;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export interface WasmHpssResult {
|
|
110
261
|
harmonic: Float32Array;
|
|
111
262
|
percussive: Float32Array;
|
|
112
263
|
sampleRate: number;
|
|
113
264
|
}
|
|
114
265
|
|
|
115
|
-
interface
|
|
266
|
+
export interface WasmHpssWithResidualResult {
|
|
267
|
+
harmonic: Float32Array;
|
|
268
|
+
percussive: Float32Array;
|
|
269
|
+
residual: Float32Array;
|
|
270
|
+
sampleRate: number;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/** Row-major 2-D matrix as a flat buffer plus its dimensions. */
|
|
274
|
+
export interface WasmMatrix2dResult {
|
|
275
|
+
data: Float32Array;
|
|
276
|
+
rows: number;
|
|
277
|
+
cols: number;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export interface WasmDecomposeResult {
|
|
281
|
+
w: Float32Array;
|
|
282
|
+
h: Float32Array;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export interface WasmStftResult {
|
|
116
286
|
nBins: number;
|
|
117
287
|
nFrames: number;
|
|
118
288
|
nFft: number;
|
|
@@ -122,13 +292,13 @@ interface WasmStftResult {
|
|
|
122
292
|
power: Float32Array;
|
|
123
293
|
}
|
|
124
294
|
|
|
125
|
-
interface WasmStftDbResult {
|
|
295
|
+
export interface WasmStftDbResult {
|
|
126
296
|
nBins: number;
|
|
127
297
|
nFrames: number;
|
|
128
298
|
db: Float32Array;
|
|
129
299
|
}
|
|
130
300
|
|
|
131
|
-
interface WasmMelResult {
|
|
301
|
+
export interface WasmMelResult {
|
|
132
302
|
nMels: number;
|
|
133
303
|
nFrames: number;
|
|
134
304
|
sampleRate: number;
|
|
@@ -137,25 +307,25 @@ interface WasmMelResult {
|
|
|
137
307
|
db: Float32Array;
|
|
138
308
|
}
|
|
139
309
|
|
|
140
|
-
interface WasmMfccResult {
|
|
310
|
+
export interface WasmMfccResult {
|
|
141
311
|
nMfcc: number;
|
|
142
312
|
nFrames: number;
|
|
143
313
|
coefficients: Float32Array;
|
|
144
314
|
}
|
|
145
315
|
|
|
146
|
-
interface WasmStftPowerResult {
|
|
316
|
+
export interface WasmStftPowerResult {
|
|
147
317
|
nBins: number;
|
|
148
318
|
nFrames: number;
|
|
149
319
|
power: Float32Array;
|
|
150
320
|
}
|
|
151
321
|
|
|
152
|
-
interface WasmMelPowerResult {
|
|
322
|
+
export interface WasmMelPowerResult {
|
|
153
323
|
nMels: number;
|
|
154
324
|
nFrames: number;
|
|
155
325
|
power: Float32Array;
|
|
156
326
|
}
|
|
157
327
|
|
|
158
|
-
interface WasmChromaResult {
|
|
328
|
+
export interface WasmChromaResult {
|
|
159
329
|
nChroma: number;
|
|
160
330
|
nFrames: number;
|
|
161
331
|
sampleRate: number;
|
|
@@ -164,7 +334,7 @@ interface WasmChromaResult {
|
|
|
164
334
|
meanEnergy: number[];
|
|
165
335
|
}
|
|
166
336
|
|
|
167
|
-
interface WasmPitchResult {
|
|
337
|
+
export interface WasmPitchResult {
|
|
168
338
|
f0: Float32Array;
|
|
169
339
|
voicedProb: Float32Array;
|
|
170
340
|
voicedFlag: boolean[];
|
|
@@ -173,48 +343,48 @@ interface WasmPitchResult {
|
|
|
173
343
|
meanF0: number;
|
|
174
344
|
}
|
|
175
345
|
|
|
176
|
-
interface WasmTrimResult {
|
|
346
|
+
export interface WasmTrimResult {
|
|
177
347
|
audio: Float32Array;
|
|
178
348
|
startSample: number;
|
|
179
349
|
endSample: number;
|
|
180
350
|
}
|
|
181
351
|
|
|
182
|
-
interface WasmFrameResult {
|
|
352
|
+
export interface WasmFrameResult {
|
|
183
353
|
nFrames: number;
|
|
184
354
|
frames: Float32Array;
|
|
185
355
|
}
|
|
186
356
|
|
|
187
|
-
interface WasmTempogramResult {
|
|
357
|
+
export interface WasmTempogramResult {
|
|
188
358
|
nFrames: number;
|
|
189
359
|
winLength: number;
|
|
190
360
|
data: Float32Array;
|
|
191
361
|
}
|
|
192
362
|
|
|
193
|
-
interface WasmCyclicTempogramResult {
|
|
363
|
+
export interface WasmCyclicTempogramResult {
|
|
194
364
|
nFrames: number;
|
|
195
365
|
nBins: number;
|
|
196
366
|
data: Float32Array;
|
|
197
367
|
}
|
|
198
368
|
|
|
199
|
-
interface WasmFourierTempogramResult {
|
|
369
|
+
export interface WasmFourierTempogramResult {
|
|
200
370
|
nBins: number;
|
|
201
371
|
nFrames: number;
|
|
202
372
|
data: Float32Array;
|
|
203
373
|
}
|
|
204
374
|
|
|
205
|
-
interface WasmNnlsChromaResult {
|
|
375
|
+
export interface WasmNnlsChromaResult {
|
|
206
376
|
nChroma: number;
|
|
207
377
|
nFrames: number;
|
|
208
378
|
data: Float32Array;
|
|
209
379
|
}
|
|
210
380
|
|
|
211
|
-
interface WasmMelodyPoint {
|
|
381
|
+
export interface WasmMelodyPoint {
|
|
212
382
|
time: number;
|
|
213
383
|
frequency: number;
|
|
214
384
|
confidence: number;
|
|
215
385
|
}
|
|
216
386
|
|
|
217
|
-
interface WasmMelodyResult {
|
|
387
|
+
export interface WasmMelodyResult {
|
|
218
388
|
points: WasmMelodyPoint[];
|
|
219
389
|
pitchRangeOctaves: number;
|
|
220
390
|
pitchStability: number;
|
|
@@ -222,7 +392,7 @@ interface WasmMelodyResult {
|
|
|
222
392
|
vibratoRate: number;
|
|
223
393
|
}
|
|
224
394
|
|
|
225
|
-
interface WasmCqtResult {
|
|
395
|
+
export interface WasmCqtResult {
|
|
226
396
|
nBins: number;
|
|
227
397
|
nFrames: number;
|
|
228
398
|
hopLength: number;
|
|
@@ -231,14 +401,14 @@ interface WasmCqtResult {
|
|
|
231
401
|
frequencies: Float32Array;
|
|
232
402
|
}
|
|
233
403
|
|
|
234
|
-
interface WasmLufsResult {
|
|
404
|
+
export interface WasmLufsResult {
|
|
235
405
|
integratedLufs: number;
|
|
236
406
|
momentaryLufs: number;
|
|
237
407
|
shortTermLufs: number;
|
|
238
408
|
loudnessRange: number;
|
|
239
409
|
}
|
|
240
410
|
|
|
241
|
-
interface WasmMasteringResult {
|
|
411
|
+
export interface WasmMasteringResult {
|
|
242
412
|
samples: Float32Array;
|
|
243
413
|
sampleRate: number;
|
|
244
414
|
inputLufs: number;
|
|
@@ -247,11 +417,11 @@ interface WasmMasteringResult {
|
|
|
247
417
|
latencySamples?: number;
|
|
248
418
|
}
|
|
249
419
|
|
|
250
|
-
interface WasmMasteringChainResult extends WasmMasteringResult {
|
|
420
|
+
export interface WasmMasteringChainResult extends WasmMasteringResult {
|
|
251
421
|
stages: string[];
|
|
252
422
|
}
|
|
253
423
|
|
|
254
|
-
interface WasmMasteringStereoChainResult {
|
|
424
|
+
export interface WasmMasteringStereoChainResult {
|
|
255
425
|
left: Float32Array;
|
|
256
426
|
right: Float32Array;
|
|
257
427
|
sampleRate: number;
|
|
@@ -261,7 +431,7 @@ interface WasmMasteringStereoChainResult {
|
|
|
261
431
|
stages: string[];
|
|
262
432
|
}
|
|
263
433
|
|
|
264
|
-
interface WasmMasteringStereoResult {
|
|
434
|
+
export interface WasmMasteringStereoResult {
|
|
265
435
|
left: Float32Array;
|
|
266
436
|
right: Float32Array;
|
|
267
437
|
sampleRate: number;
|
|
@@ -271,7 +441,7 @@ interface WasmMasteringStereoResult {
|
|
|
271
441
|
latencySamples: number;
|
|
272
442
|
}
|
|
273
443
|
|
|
274
|
-
interface WasmMixMeterSnapshot {
|
|
444
|
+
export interface WasmMixMeterSnapshot {
|
|
275
445
|
peakDbL: number;
|
|
276
446
|
peakDbR: number;
|
|
277
447
|
rmsDbL: number;
|
|
@@ -291,14 +461,14 @@ interface WasmMixMeterSnapshot {
|
|
|
291
461
|
seq: number;
|
|
292
462
|
}
|
|
293
463
|
|
|
294
|
-
interface WasmMixResult {
|
|
464
|
+
export interface WasmMixResult {
|
|
295
465
|
left: Float32Array;
|
|
296
466
|
right: Float32Array;
|
|
297
467
|
sampleRate: number;
|
|
298
468
|
meters: WasmMixMeterSnapshot[];
|
|
299
469
|
}
|
|
300
470
|
|
|
301
|
-
interface WasmEngineClip {
|
|
471
|
+
export interface WasmEngineClip {
|
|
302
472
|
id?: number;
|
|
303
473
|
channels: Float32Array[];
|
|
304
474
|
startPpq: number;
|
|
@@ -310,7 +480,7 @@ interface WasmEngineClip {
|
|
|
310
480
|
fadeOutSamples?: number;
|
|
311
481
|
}
|
|
312
482
|
|
|
313
|
-
interface WasmEngineParameterInfo {
|
|
483
|
+
export interface WasmEngineParameterInfo {
|
|
314
484
|
id: number;
|
|
315
485
|
name: string;
|
|
316
486
|
unit: string;
|
|
@@ -321,33 +491,35 @@ interface WasmEngineParameterInfo {
|
|
|
321
491
|
defaultCurve: number;
|
|
322
492
|
}
|
|
323
493
|
|
|
324
|
-
interface WasmEngineAutomationPoint {
|
|
494
|
+
export interface WasmEngineAutomationPoint {
|
|
325
495
|
ppq: number;
|
|
326
496
|
value: number;
|
|
327
497
|
curveToNext?: number;
|
|
328
498
|
}
|
|
329
499
|
|
|
330
|
-
interface WasmEngineMarker {
|
|
500
|
+
export interface WasmEngineMarker {
|
|
331
501
|
id: number;
|
|
332
502
|
ppq: number;
|
|
333
503
|
name?: string;
|
|
334
504
|
}
|
|
335
505
|
|
|
336
|
-
interface WasmEngineMetronomeConfig {
|
|
506
|
+
export interface WasmEngineMetronomeConfig {
|
|
337
507
|
enabled: boolean;
|
|
338
508
|
beatGain?: number;
|
|
339
509
|
accentGain?: number;
|
|
340
510
|
clickSamples?: number;
|
|
511
|
+
/** Optional click length in seconds; > 0 overrides the engine 2 ms default. */
|
|
512
|
+
clickSeconds?: number;
|
|
341
513
|
}
|
|
342
514
|
|
|
343
|
-
interface WasmEngineGraphNode {
|
|
515
|
+
export interface WasmEngineGraphNode {
|
|
344
516
|
id: string;
|
|
345
517
|
type?: number;
|
|
346
518
|
gainDb?: number;
|
|
347
519
|
numPorts?: number;
|
|
348
520
|
}
|
|
349
521
|
|
|
350
|
-
interface WasmEngineGraphConnection {
|
|
522
|
+
export interface WasmEngineGraphConnection {
|
|
351
523
|
sourceNode: string;
|
|
352
524
|
sourcePort: number;
|
|
353
525
|
destNode: string;
|
|
@@ -355,12 +527,12 @@ interface WasmEngineGraphConnection {
|
|
|
355
527
|
mix?: number;
|
|
356
528
|
}
|
|
357
529
|
|
|
358
|
-
interface WasmEngineGraphParameterBinding {
|
|
530
|
+
export interface WasmEngineGraphParameterBinding {
|
|
359
531
|
paramId: number;
|
|
360
532
|
nodeId: string;
|
|
361
533
|
}
|
|
362
534
|
|
|
363
|
-
interface WasmEngineGraphSpec {
|
|
535
|
+
export interface WasmEngineGraphSpec {
|
|
364
536
|
nodes: WasmEngineGraphNode[];
|
|
365
537
|
connections: WasmEngineGraphConnection[];
|
|
366
538
|
inputNode: string;
|
|
@@ -369,7 +541,7 @@ interface WasmEngineGraphSpec {
|
|
|
369
541
|
parameterBindings?: WasmEngineGraphParameterBinding[];
|
|
370
542
|
}
|
|
371
543
|
|
|
372
|
-
interface WasmEngineTelemetry {
|
|
544
|
+
export interface WasmEngineTelemetry {
|
|
373
545
|
type: number;
|
|
374
546
|
error: number;
|
|
375
547
|
renderFrame: number;
|
|
@@ -379,7 +551,7 @@ interface WasmEngineTelemetry {
|
|
|
379
551
|
value: number;
|
|
380
552
|
}
|
|
381
553
|
|
|
382
|
-
interface WasmEngineMeterTelemetry {
|
|
554
|
+
export interface WasmEngineMeterTelemetry {
|
|
383
555
|
targetId: number;
|
|
384
556
|
renderFrame: number;
|
|
385
557
|
seq: number;
|
|
@@ -399,14 +571,14 @@ interface WasmEngineMeterTelemetry {
|
|
|
399
571
|
droppedRecords: number;
|
|
400
572
|
}
|
|
401
573
|
|
|
402
|
-
interface WasmEngineCaptureStatus {
|
|
574
|
+
export interface WasmEngineCaptureStatus {
|
|
403
575
|
capturedFrames: number;
|
|
404
576
|
overflowCount: number;
|
|
405
577
|
armed: boolean;
|
|
406
578
|
punchEnabled: boolean;
|
|
407
579
|
}
|
|
408
580
|
|
|
409
|
-
interface WasmEngineTransportState {
|
|
581
|
+
export interface WasmEngineTransportState {
|
|
410
582
|
playing: boolean;
|
|
411
583
|
looping: boolean;
|
|
412
584
|
renderFrame: number;
|
|
@@ -416,9 +588,15 @@ interface WasmEngineTransportState {
|
|
|
416
588
|
loopStartPpq: number;
|
|
417
589
|
loopEndPpq: number;
|
|
418
590
|
sampleRate: number;
|
|
591
|
+
/** PPQ of the current bar's downbeat (derived from the tempo map). */
|
|
592
|
+
barStartPpq: number;
|
|
593
|
+
/** Zero-based index of the current bar. */
|
|
594
|
+
barCount: number;
|
|
595
|
+
/** Time signature in effect at the current PPQ. */
|
|
596
|
+
timeSignature: { numerator: number; denominator: number; confidence: number };
|
|
419
597
|
}
|
|
420
598
|
|
|
421
|
-
interface WasmEngineBounceOptions {
|
|
599
|
+
export interface WasmEngineBounceOptions {
|
|
422
600
|
totalFrames: number;
|
|
423
601
|
blockSize?: number;
|
|
424
602
|
numChannels?: number;
|
|
@@ -431,7 +609,7 @@ interface WasmEngineBounceOptions {
|
|
|
431
609
|
ditherSeed?: number;
|
|
432
610
|
}
|
|
433
611
|
|
|
434
|
-
interface WasmEngineBounceResult {
|
|
612
|
+
export interface WasmEngineBounceResult {
|
|
435
613
|
interleaved: Float32Array;
|
|
436
614
|
frames: number;
|
|
437
615
|
numChannels: number;
|
|
@@ -439,7 +617,7 @@ interface WasmEngineBounceResult {
|
|
|
439
617
|
integratedLufs: number;
|
|
440
618
|
}
|
|
441
619
|
|
|
442
|
-
interface WasmEngineFreezeOptions {
|
|
620
|
+
export interface WasmEngineFreezeOptions {
|
|
443
621
|
totalFrames: number;
|
|
444
622
|
blockSize?: number;
|
|
445
623
|
numChannels?: number;
|
|
@@ -448,18 +626,18 @@ interface WasmEngineFreezeOptions {
|
|
|
448
626
|
gain?: number;
|
|
449
627
|
}
|
|
450
628
|
|
|
451
|
-
interface WasmEngineFreezeResult {
|
|
629
|
+
export interface WasmEngineFreezeResult {
|
|
452
630
|
clipId: number;
|
|
453
631
|
frames: number;
|
|
454
632
|
numChannels: number;
|
|
455
633
|
}
|
|
456
634
|
|
|
457
|
-
interface WasmEngineProcessWithMonitorResult {
|
|
635
|
+
export interface WasmEngineProcessWithMonitorResult {
|
|
458
636
|
output: Float32Array[];
|
|
459
637
|
monitor: Float32Array[];
|
|
460
638
|
}
|
|
461
639
|
|
|
462
|
-
interface WasmRealtimeEngine {
|
|
640
|
+
export interface WasmRealtimeEngine {
|
|
463
641
|
prepare: (
|
|
464
642
|
sampleRate: number,
|
|
465
643
|
maxBlockSize: number,
|
|
@@ -503,6 +681,9 @@ interface WasmRealtimeEngine {
|
|
|
503
681
|
captureStatus: () => WasmEngineCaptureStatus;
|
|
504
682
|
capturedAudio: () => Float32Array[];
|
|
505
683
|
process: (channels: Float32Array[]) => Float32Array[];
|
|
684
|
+
prepareChannels: (numChannels: number, maxFrames: number) => void;
|
|
685
|
+
getChannelBuffer: (channel: number, numFrames: number) => Float32Array;
|
|
686
|
+
processPrepared: (numFrames: number) => void;
|
|
506
687
|
processWithMonitor: (channels: Float32Array[]) => WasmEngineProcessWithMonitorResult;
|
|
507
688
|
renderOffline: (channels: Float32Array[], blockSize: number) => Float32Array[];
|
|
508
689
|
bounceOffline: (options: WasmEngineBounceOptions) => WasmEngineBounceResult;
|
|
@@ -512,10 +693,10 @@ interface WasmRealtimeEngine {
|
|
|
512
693
|
delete: () => void;
|
|
513
694
|
}
|
|
514
695
|
|
|
515
|
-
type ProgressCallback = (progress: number, stage: string) => void;
|
|
516
|
-
type TempogramMode = 'autocorrelation' | 'auto' | 'ac' | 'cosine' | 0 | 1;
|
|
696
|
+
export type ProgressCallback = (progress: number, stage: string) => void;
|
|
697
|
+
export type TempogramMode = 'autocorrelation' | 'auto' | 'ac' | 'cosine' | 0 | 1;
|
|
517
698
|
|
|
518
|
-
interface SonareModule {
|
|
699
|
+
export interface SonareModule {
|
|
519
700
|
// Quick API (high-level)
|
|
520
701
|
detectBpm: (samples: Float32Array, sampleRate: number) => number;
|
|
521
702
|
detectKey: (samples: Float32Array, sampleRate: number) => WasmKeyResult;
|
|
@@ -578,13 +759,157 @@ interface SonareModule {
|
|
|
578
759
|
minDecayDb: number,
|
|
579
760
|
noiseFloorMarginDb: number,
|
|
580
761
|
) => WasmAcousticResult;
|
|
762
|
+
// Acoustic-simulation entry points are present only in builds compiled with
|
|
763
|
+
// SONARE_WITH_ACOUSTIC_SIM; absent otherwise (the wrappers throw a clear error).
|
|
764
|
+
synthesizeRir?: (options: WasmRirSynthOptions) => WasmRirResult;
|
|
765
|
+
estimateRoom?: (
|
|
766
|
+
samples: Float32Array,
|
|
767
|
+
sampleRate: number,
|
|
768
|
+
options: WasmRoomEstimateOptions,
|
|
769
|
+
) => WasmRoomEstimateResult;
|
|
770
|
+
roomMorph?: (
|
|
771
|
+
samples: Float32Array,
|
|
772
|
+
sampleRate: number,
|
|
773
|
+
options: WasmRoomMorphOptions,
|
|
774
|
+
) => Float32Array;
|
|
581
775
|
analyzeWithProgress: (
|
|
582
776
|
samples: Float32Array,
|
|
583
777
|
sampleRate: number,
|
|
584
778
|
progressCallback: ProgressCallback | null,
|
|
585
779
|
) => WasmAnalysisResult;
|
|
780
|
+
analyzeBpm: (
|
|
781
|
+
samples: Float32Array,
|
|
782
|
+
sampleRate: number,
|
|
783
|
+
bpmMin: number,
|
|
784
|
+
bpmMax: number,
|
|
785
|
+
startBpm: number,
|
|
786
|
+
nFft: number,
|
|
787
|
+
hopLength: number,
|
|
788
|
+
maxCandidates: number,
|
|
789
|
+
) => WasmBpmAnalysisResult;
|
|
790
|
+
analyzeRhythm: (
|
|
791
|
+
samples: Float32Array,
|
|
792
|
+
sampleRate: number,
|
|
793
|
+
bpmMin: number,
|
|
794
|
+
bpmMax: number,
|
|
795
|
+
startBpm: number,
|
|
796
|
+
nFft: number,
|
|
797
|
+
hopLength: number,
|
|
798
|
+
) => WasmRhythmAnalysisResult;
|
|
799
|
+
analyzeDynamics: (
|
|
800
|
+
samples: Float32Array,
|
|
801
|
+
sampleRate: number,
|
|
802
|
+
windowSec: number,
|
|
803
|
+
hopLength: number,
|
|
804
|
+
compressionThreshold: number,
|
|
805
|
+
) => WasmDynamicsAnalysisResult;
|
|
806
|
+
analyzeTimbre: (
|
|
807
|
+
samples: Float32Array,
|
|
808
|
+
sampleRate: number,
|
|
809
|
+
nFft: number,
|
|
810
|
+
hopLength: number,
|
|
811
|
+
nMels: number,
|
|
812
|
+
nMfcc: number,
|
|
813
|
+
windowSec: number,
|
|
814
|
+
) => WasmTimbreAnalysisResult;
|
|
815
|
+
detectKeyCandidates: (samples: Float32Array, sampleRate: number) => WasmKeyCandidateResult[];
|
|
816
|
+
hasFfmpegSupport: () => boolean;
|
|
586
817
|
version: () => string;
|
|
587
818
|
engineAbiVersion: () => number;
|
|
819
|
+
voiceChangerAbiVersion: () => number;
|
|
820
|
+
voiceCharacterPresetId: (preset: number) => string | null;
|
|
821
|
+
realtimeVoiceChangerPresetConfig: (preset: number) => WasmRealtimeVoiceChangerPodConfig | null;
|
|
822
|
+
|
|
823
|
+
meteringPeakDb: (samples: Float32Array, sampleRate: number) => number;
|
|
824
|
+
meteringRmsDb: (samples: Float32Array, sampleRate: number) => number;
|
|
825
|
+
meteringCrestFactorDb: (samples: Float32Array, sampleRate: number) => number;
|
|
826
|
+
meteringDcOffset: (samples: Float32Array, sampleRate: number) => number;
|
|
827
|
+
meteringTruePeakDb: (
|
|
828
|
+
samples: Float32Array,
|
|
829
|
+
sampleRate: number,
|
|
830
|
+
oversampleFactor: number,
|
|
831
|
+
) => number;
|
|
832
|
+
meteringDetectClipping: (
|
|
833
|
+
samples: Float32Array,
|
|
834
|
+
sampleRate: number,
|
|
835
|
+
threshold: number,
|
|
836
|
+
minRegionSamples: number,
|
|
837
|
+
) => {
|
|
838
|
+
clippedSamples: number;
|
|
839
|
+
clippingRatio: number;
|
|
840
|
+
maxClippedPeak: number;
|
|
841
|
+
regions: Array<{ startSample: number; endSample: number; length: number; peak: number }>;
|
|
842
|
+
};
|
|
843
|
+
meteringDynamicRange: (
|
|
844
|
+
samples: Float32Array,
|
|
845
|
+
sampleRate: number,
|
|
846
|
+
windowSec: number,
|
|
847
|
+
hopSec: number,
|
|
848
|
+
lowPercentile: number,
|
|
849
|
+
highPercentile: number,
|
|
850
|
+
) => {
|
|
851
|
+
dynamicRangeDb: number;
|
|
852
|
+
lowPercentileDb: number;
|
|
853
|
+
highPercentileDb: number;
|
|
854
|
+
windowRmsDb: Float32Array;
|
|
855
|
+
};
|
|
856
|
+
|
|
857
|
+
meteringStereoCorrelation: (
|
|
858
|
+
left: Float32Array,
|
|
859
|
+
right: Float32Array,
|
|
860
|
+
sampleRate: number,
|
|
861
|
+
) => number;
|
|
862
|
+
meteringStereoWidth: (left: Float32Array, right: Float32Array, sampleRate: number) => number;
|
|
863
|
+
meteringVectorscope: (
|
|
864
|
+
left: Float32Array,
|
|
865
|
+
right: Float32Array,
|
|
866
|
+
sampleRate: number,
|
|
867
|
+
) => { mid: Float32Array; side: Float32Array };
|
|
868
|
+
meteringPhaseScope: (
|
|
869
|
+
left: Float32Array,
|
|
870
|
+
right: Float32Array,
|
|
871
|
+
sampleRate: number,
|
|
872
|
+
) => {
|
|
873
|
+
mid: Float32Array;
|
|
874
|
+
side: Float32Array;
|
|
875
|
+
radius: Float32Array;
|
|
876
|
+
angleRad: Float32Array;
|
|
877
|
+
correlation: number;
|
|
878
|
+
averageAbsAngleRad: number;
|
|
879
|
+
maxRadius: number;
|
|
880
|
+
};
|
|
881
|
+
meteringSpectrum: (
|
|
882
|
+
samples: Float32Array,
|
|
883
|
+
sampleRate: number,
|
|
884
|
+
options: {
|
|
885
|
+
nFft?: number;
|
|
886
|
+
applyOctaveSmoothing?: boolean;
|
|
887
|
+
octaveFraction?: number;
|
|
888
|
+
dbRef?: number;
|
|
889
|
+
dbAmin?: number;
|
|
890
|
+
},
|
|
891
|
+
) => {
|
|
892
|
+
frequencies: Float32Array;
|
|
893
|
+
magnitude: Float32Array;
|
|
894
|
+
power: Float32Array;
|
|
895
|
+
db: Float32Array;
|
|
896
|
+
nFft: number;
|
|
897
|
+
sampleRate: number;
|
|
898
|
+
};
|
|
899
|
+
|
|
900
|
+
scaleQuantizeMidi: (
|
|
901
|
+
root: number,
|
|
902
|
+
modeMask: number,
|
|
903
|
+
midi: number,
|
|
904
|
+
referenceMidi: number,
|
|
905
|
+
) => number;
|
|
906
|
+
scaleCorrectionSemitones: (
|
|
907
|
+
root: number,
|
|
908
|
+
modeMask: number,
|
|
909
|
+
midi: number,
|
|
910
|
+
referenceMidi: number,
|
|
911
|
+
) => number;
|
|
912
|
+
scalePitchClassEnabled: (root: number, modeMask: number, pitchClass: number) => boolean;
|
|
588
913
|
|
|
589
914
|
// Effects
|
|
590
915
|
hpss: (
|
|
@@ -593,6 +918,41 @@ interface SonareModule {
|
|
|
593
918
|
kernelHarmonic: number,
|
|
594
919
|
kernelPercussive: number,
|
|
595
920
|
) => WasmHpssResult;
|
|
921
|
+
hpssWithResidual: (
|
|
922
|
+
samples: Float32Array,
|
|
923
|
+
sampleRate: number,
|
|
924
|
+
kernelHarmonic: number,
|
|
925
|
+
kernelPercussive: number,
|
|
926
|
+
) => WasmHpssWithResidualResult;
|
|
927
|
+
decompose: (
|
|
928
|
+
s: Float32Array,
|
|
929
|
+
nFeatures: number,
|
|
930
|
+
nFrames: number,
|
|
931
|
+
nComponents: number,
|
|
932
|
+
nIter: number,
|
|
933
|
+
beta: number,
|
|
934
|
+
) => WasmDecomposeResult;
|
|
935
|
+
nnFilter: (
|
|
936
|
+
s: Float32Array,
|
|
937
|
+
nFeatures: number,
|
|
938
|
+
nFrames: number,
|
|
939
|
+
aggregate: string,
|
|
940
|
+
k: number,
|
|
941
|
+
width: number,
|
|
942
|
+
) => WasmMatrix2dResult;
|
|
943
|
+
remix: (
|
|
944
|
+
samples: Float32Array,
|
|
945
|
+
intervals: Int32Array,
|
|
946
|
+
sampleRate: number,
|
|
947
|
+
alignZeros: boolean,
|
|
948
|
+
) => Float32Array;
|
|
949
|
+
phaseVocoder: (
|
|
950
|
+
samples: Float32Array,
|
|
951
|
+
sampleRate: number,
|
|
952
|
+
rate: number,
|
|
953
|
+
nFft: number,
|
|
954
|
+
hopLength: number,
|
|
955
|
+
) => Float32Array;
|
|
596
956
|
harmonic: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
597
957
|
percussive: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
598
958
|
timeStretch: (samples: Float32Array, sampleRate: number, rate: number) => Float32Array;
|
|
@@ -677,6 +1037,56 @@ interface SonareModule {
|
|
|
677
1037
|
sampleRate: number,
|
|
678
1038
|
platforms: Array<{ name: string; targetLufs: number; ceilingDb: number }>,
|
|
679
1039
|
) => string;
|
|
1040
|
+
masteringRepairDeclick: (
|
|
1041
|
+
samples: Float32Array,
|
|
1042
|
+
sampleRate: number,
|
|
1043
|
+
options: object,
|
|
1044
|
+
) => Float32Array;
|
|
1045
|
+
masteringRepairDenoiseClassical: (
|
|
1046
|
+
samples: Float32Array,
|
|
1047
|
+
sampleRate: number,
|
|
1048
|
+
options: object,
|
|
1049
|
+
) => Float32Array;
|
|
1050
|
+
masteringRepairDeclip: (
|
|
1051
|
+
samples: Float32Array,
|
|
1052
|
+
sampleRate: number,
|
|
1053
|
+
options: object,
|
|
1054
|
+
) => Float32Array;
|
|
1055
|
+
masteringRepairDecrackle: (
|
|
1056
|
+
samples: Float32Array,
|
|
1057
|
+
sampleRate: number,
|
|
1058
|
+
options: object,
|
|
1059
|
+
) => Float32Array;
|
|
1060
|
+
masteringRepairDehum: (
|
|
1061
|
+
samples: Float32Array,
|
|
1062
|
+
sampleRate: number,
|
|
1063
|
+
options: object,
|
|
1064
|
+
) => Float32Array;
|
|
1065
|
+
masteringRepairDereverbClassical: (
|
|
1066
|
+
samples: Float32Array,
|
|
1067
|
+
sampleRate: number,
|
|
1068
|
+
options: object,
|
|
1069
|
+
) => Float32Array;
|
|
1070
|
+
masteringRepairTrimSilence: (
|
|
1071
|
+
samples: Float32Array,
|
|
1072
|
+
sampleRate: number,
|
|
1073
|
+
options: object,
|
|
1074
|
+
) => Float32Array;
|
|
1075
|
+
masteringDynamicsCompressor: (
|
|
1076
|
+
samples: Float32Array,
|
|
1077
|
+
sampleRate: number,
|
|
1078
|
+
options: object,
|
|
1079
|
+
) => { samples: Float32Array; latencySamples: number };
|
|
1080
|
+
masteringDynamicsGate: (
|
|
1081
|
+
samples: Float32Array,
|
|
1082
|
+
sampleRate: number,
|
|
1083
|
+
options: object,
|
|
1084
|
+
) => { samples: Float32Array; latencySamples: number };
|
|
1085
|
+
masteringDynamicsTransientShaper: (
|
|
1086
|
+
samples: Float32Array,
|
|
1087
|
+
sampleRate: number,
|
|
1088
|
+
options: object,
|
|
1089
|
+
) => { samples: Float32Array; latencySamples: number };
|
|
680
1090
|
masteringChain: (
|
|
681
1091
|
samples: Float32Array,
|
|
682
1092
|
sampleRate: number,
|
|
@@ -715,6 +1125,21 @@ interface SonareModule {
|
|
|
715
1125
|
sampleRate: number,
|
|
716
1126
|
overrides: Record<string, number | boolean> | null,
|
|
717
1127
|
) => WasmMasteringStereoChainResult;
|
|
1128
|
+
masterAudioWithProgress: (
|
|
1129
|
+
presetName: string,
|
|
1130
|
+
samples: Float32Array,
|
|
1131
|
+
sampleRate: number,
|
|
1132
|
+
overrides: Record<string, number | boolean> | null,
|
|
1133
|
+
progressCallback: ProgressCallback | null,
|
|
1134
|
+
) => WasmMasteringChainResult;
|
|
1135
|
+
masterAudioStereoWithProgress: (
|
|
1136
|
+
presetName: string,
|
|
1137
|
+
left: Float32Array,
|
|
1138
|
+
right: Float32Array,
|
|
1139
|
+
sampleRate: number,
|
|
1140
|
+
overrides: Record<string, number | boolean> | null,
|
|
1141
|
+
progressCallback: ProgressCallback | null,
|
|
1142
|
+
) => WasmMasteringStereoChainResult;
|
|
718
1143
|
mixingScenePresetNames: () => string[];
|
|
719
1144
|
mixingScenePresetJson: (presetName: string) => string;
|
|
720
1145
|
mixStereo: (
|
|
@@ -763,7 +1188,6 @@ interface SonareModule {
|
|
|
763
1188
|
nFrames: number,
|
|
764
1189
|
sampleRate: number,
|
|
765
1190
|
nFft: number,
|
|
766
|
-
hopLength: number,
|
|
767
1191
|
fmin: number,
|
|
768
1192
|
fmax: number,
|
|
769
1193
|
) => WasmStftPowerResult;
|
|
@@ -774,9 +1198,9 @@ interface SonareModule {
|
|
|
774
1198
|
sampleRate: number,
|
|
775
1199
|
nFft: number,
|
|
776
1200
|
hopLength: number,
|
|
777
|
-
nIter: number,
|
|
778
1201
|
fmin: number,
|
|
779
1202
|
fmax: number,
|
|
1203
|
+
nIter: number,
|
|
780
1204
|
) => Float32Array;
|
|
781
1205
|
mfccToMel: (
|
|
782
1206
|
mfcc: Float32Array,
|
|
@@ -792,9 +1216,9 @@ interface SonareModule {
|
|
|
792
1216
|
sampleRate: number,
|
|
793
1217
|
nFft: number,
|
|
794
1218
|
hopLength: number,
|
|
795
|
-
nIter: number,
|
|
796
1219
|
fmin: number,
|
|
797
1220
|
fmax: number,
|
|
1221
|
+
nIter: number,
|
|
798
1222
|
) => Float32Array;
|
|
799
1223
|
|
|
800
1224
|
// Features - Chroma
|
|
@@ -843,6 +1267,38 @@ interface SonareModule {
|
|
|
843
1267
|
frameLength: number,
|
|
844
1268
|
hopLength: number,
|
|
845
1269
|
) => Float32Array;
|
|
1270
|
+
spectralContrast: (
|
|
1271
|
+
samples: Float32Array,
|
|
1272
|
+
sampleRate: number,
|
|
1273
|
+
nFft: number,
|
|
1274
|
+
hopLength: number,
|
|
1275
|
+
nBands: number,
|
|
1276
|
+
fmin: number,
|
|
1277
|
+
quantile: number,
|
|
1278
|
+
) => WasmMatrix2dResult;
|
|
1279
|
+
polyFeatures: (
|
|
1280
|
+
samples: Float32Array,
|
|
1281
|
+
sampleRate: number,
|
|
1282
|
+
nFft: number,
|
|
1283
|
+
hopLength: number,
|
|
1284
|
+
order: number,
|
|
1285
|
+
) => WasmMatrix2dResult;
|
|
1286
|
+
zeroCrossings: (
|
|
1287
|
+
samples: Float32Array,
|
|
1288
|
+
threshold: number,
|
|
1289
|
+
refMagnitude: boolean,
|
|
1290
|
+
pad: boolean,
|
|
1291
|
+
zeroPos: boolean,
|
|
1292
|
+
) => Int32Array;
|
|
1293
|
+
pitchTuning: (frequencies: Float32Array, resolution: number, binsPerOctave: number) => number;
|
|
1294
|
+
estimateTuning: (
|
|
1295
|
+
samples: Float32Array,
|
|
1296
|
+
sampleRate: number,
|
|
1297
|
+
nFft: number,
|
|
1298
|
+
hopLength: number,
|
|
1299
|
+
resolution: number,
|
|
1300
|
+
binsPerOctave: number,
|
|
1301
|
+
) => number;
|
|
846
1302
|
|
|
847
1303
|
// Features - Pitch
|
|
848
1304
|
pitchYin: (
|
|
@@ -853,6 +1309,7 @@ interface SonareModule {
|
|
|
853
1309
|
fmin: number,
|
|
854
1310
|
fmax: number,
|
|
855
1311
|
threshold: number,
|
|
1312
|
+
fillNa: boolean,
|
|
856
1313
|
) => WasmPitchResult;
|
|
857
1314
|
pitchPyin: (
|
|
858
1315
|
samples: Float32Array,
|
|
@@ -862,6 +1319,7 @@ interface SonareModule {
|
|
|
862
1319
|
fmin: number,
|
|
863
1320
|
fmax: number,
|
|
864
1321
|
threshold: number,
|
|
1322
|
+
fillNa: boolean,
|
|
865
1323
|
) => WasmPitchResult;
|
|
866
1324
|
|
|
867
1325
|
// Core - Conversion
|
|
@@ -993,6 +1451,8 @@ interface SonareModule {
|
|
|
993
1451
|
lufs: (samples: Float32Array, sampleRate: number) => WasmLufsResult;
|
|
994
1452
|
momentaryLufs: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
995
1453
|
shortTermLufs: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
1454
|
+
lufsInterleaved: (samples: Float32Array, channels: number, sampleRate: number) => WasmLufsResult;
|
|
1455
|
+
ebur128LoudnessRange: (samples: Float32Array, sampleRate: number) => number;
|
|
996
1456
|
|
|
997
1457
|
// Core - Resample
|
|
998
1458
|
resample: (samples: Float32Array, srcSr: number, targetSr: number) => Float32Array;
|
|
@@ -1083,13 +1543,22 @@ interface SonareModule {
|
|
|
1083
1543
|
|
|
1084
1544
|
// Streaming - StreamingRetune
|
|
1085
1545
|
createStreamingRetune: (config: Record<string, unknown>) => WasmStreamingRetune;
|
|
1546
|
+
createRealtimeVoiceChanger: (
|
|
1547
|
+
config: Record<string, unknown> | string,
|
|
1548
|
+
) => WasmRealtimeVoiceChanger;
|
|
1549
|
+
realtimeVoiceChangerPresetNames: () => string[];
|
|
1550
|
+
realtimeVoiceChangerPresetJson: (id: string) => string;
|
|
1551
|
+
validateRealtimeVoiceChangerPresetJson: (json: string) => {
|
|
1552
|
+
ok: boolean;
|
|
1553
|
+
normalizedJson?: string;
|
|
1554
|
+
error?: string;
|
|
1555
|
+
};
|
|
1086
1556
|
|
|
1087
1557
|
// Mixing - scene-based Mixer
|
|
1088
1558
|
createMixerFromSceneJson: (json: string, sampleRate: number, blockSize: number) => WasmMixer;
|
|
1089
|
-
mixerPresetJson: (presetName: string) => string;
|
|
1090
1559
|
}
|
|
1091
1560
|
|
|
1092
|
-
interface WasmStreamingMasteringChain {
|
|
1561
|
+
export interface WasmStreamingMasteringChain {
|
|
1093
1562
|
prepare: (sampleRate: number, maxBlockSize: number, numChannels: number) => void;
|
|
1094
1563
|
processMono: (samples: Float32Array) => Float32Array;
|
|
1095
1564
|
processStereo: (
|
|
@@ -1102,7 +1571,7 @@ interface WasmStreamingMasteringChain {
|
|
|
1102
1571
|
delete: () => void;
|
|
1103
1572
|
}
|
|
1104
1573
|
|
|
1105
|
-
interface WasmEqSpectrumSnapshot {
|
|
1574
|
+
export interface WasmEqSpectrumSnapshot {
|
|
1106
1575
|
preLeft: Float32Array;
|
|
1107
1576
|
preRight: Float32Array;
|
|
1108
1577
|
postLeft: Float32Array;
|
|
@@ -1113,7 +1582,7 @@ interface WasmEqSpectrumSnapshot {
|
|
|
1113
1582
|
seq: number;
|
|
1114
1583
|
}
|
|
1115
1584
|
|
|
1116
|
-
interface WasmStreamingEqualizer {
|
|
1585
|
+
export interface WasmStreamingEqualizer {
|
|
1117
1586
|
setBand: (index: number, band: Record<string, unknown>) => void;
|
|
1118
1587
|
clear: () => void;
|
|
1119
1588
|
setPhaseMode: (mode: number) => void;
|
|
@@ -1136,7 +1605,7 @@ interface WasmStreamingEqualizer {
|
|
|
1136
1605
|
delete: () => void;
|
|
1137
1606
|
}
|
|
1138
1607
|
|
|
1139
|
-
interface WasmStreamingRetune {
|
|
1608
|
+
export interface WasmStreamingRetune {
|
|
1140
1609
|
prepare: (sampleRate: number, maxBlockSize: number) => void;
|
|
1141
1610
|
reset: () => void;
|
|
1142
1611
|
setConfig: (config: Record<string, unknown>) => void;
|
|
@@ -1146,7 +1615,32 @@ interface WasmStreamingRetune {
|
|
|
1146
1615
|
delete: () => void;
|
|
1147
1616
|
}
|
|
1148
1617
|
|
|
1149
|
-
interface
|
|
1618
|
+
export interface WasmRealtimeVoiceChanger {
|
|
1619
|
+
prepare: (sampleRate: number, maxBlockSize: number, channels: number) => void;
|
|
1620
|
+
reset: () => void;
|
|
1621
|
+
setConfig: (config: Record<string, unknown> | string) => void;
|
|
1622
|
+
configJson: () => string;
|
|
1623
|
+
latencySamples: () => number;
|
|
1624
|
+
processMono: (samples: Float32Array) => Float32Array;
|
|
1625
|
+
processMonoInto: (samples: Float32Array, output: Float32Array) => void;
|
|
1626
|
+
processInterleaved: (samples: Float32Array, channels: number) => Float32Array;
|
|
1627
|
+
processInterleavedInto: (samples: Float32Array, channels: number, output: Float32Array) => void;
|
|
1628
|
+
// Zero-copy "prepared" path. The returned Float32Array is a typed_memory_view
|
|
1629
|
+
// backed by the WASM heap; it is only valid until the next call to a method
|
|
1630
|
+
// that may grow the underlying scratch buffer (i.e. another get*Buffer with a
|
|
1631
|
+
// larger length) or until delete().
|
|
1632
|
+
getMonoInputBuffer: (numSamples: number) => Float32Array;
|
|
1633
|
+
getMonoOutputBuffer: (numSamples: number) => Float32Array;
|
|
1634
|
+
processPreparedMono: (numSamples: number) => void;
|
|
1635
|
+
getInterleavedInputBuffer: (numFrames: number, numChannels: number) => Float32Array;
|
|
1636
|
+
getInterleavedOutputBuffer: (numFrames: number, numChannels: number) => Float32Array;
|
|
1637
|
+
processPreparedInterleaved: (numFrames: number, numChannels: number) => void;
|
|
1638
|
+
getPlanarChannelBuffer: (channel: number, numFrames: number) => Float32Array;
|
|
1639
|
+
processPreparedPlanar: (numFrames: number) => void;
|
|
1640
|
+
delete: () => void;
|
|
1641
|
+
}
|
|
1642
|
+
|
|
1643
|
+
export interface WasmMixer {
|
|
1150
1644
|
compile: () => void;
|
|
1151
1645
|
processStereo: (
|
|
1152
1646
|
leftChannels: Float32Array[],
|
|
@@ -1173,6 +1667,11 @@ interface WasmMixer {
|
|
|
1173
1667
|
curve: number,
|
|
1174
1668
|
) => void;
|
|
1175
1669
|
stripById: (id: string) => number;
|
|
1670
|
+
setInputTrimDb: (stripIndex: number, db: number) => void;
|
|
1671
|
+
setFaderDb: (stripIndex: number, db: number) => void;
|
|
1672
|
+
setPan: (stripIndex: number, pan: number, panMode: number) => void;
|
|
1673
|
+
setWidth: (stripIndex: number, width: number) => void;
|
|
1674
|
+
setMuted: (stripIndex: number, muted: boolean) => void;
|
|
1176
1675
|
setSoloed: (stripIndex: number, soloed: boolean) => void;
|
|
1177
1676
|
setSoloSafe: (stripIndex: number, soloSafe: boolean) => void;
|
|
1178
1677
|
setPolarityInvert: (stripIndex: number, invertLeft: boolean, invertRight: boolean) => void;
|
|
@@ -1226,20 +1725,20 @@ interface WasmMixer {
|
|
|
1226
1725
|
delete: () => void;
|
|
1227
1726
|
}
|
|
1228
1727
|
|
|
1229
|
-
interface WasmGoniometerPoint {
|
|
1728
|
+
export interface WasmGoniometerPoint {
|
|
1230
1729
|
left: number;
|
|
1231
1730
|
right: number;
|
|
1232
1731
|
}
|
|
1233
1732
|
|
|
1234
1733
|
// Streaming types for StreamAnalyzer
|
|
1235
|
-
interface WasmChordChange {
|
|
1734
|
+
export interface WasmChordChange {
|
|
1236
1735
|
root: number;
|
|
1237
1736
|
quality: number;
|
|
1238
1737
|
startTime: number;
|
|
1239
1738
|
confidence: number;
|
|
1240
1739
|
}
|
|
1241
1740
|
|
|
1242
|
-
interface WasmBarChord {
|
|
1741
|
+
export interface WasmBarChord {
|
|
1243
1742
|
barIndex: number;
|
|
1244
1743
|
root: number;
|
|
1245
1744
|
quality: number;
|
|
@@ -1247,12 +1746,12 @@ interface WasmBarChord {
|
|
|
1247
1746
|
confidence: number;
|
|
1248
1747
|
}
|
|
1249
1748
|
|
|
1250
|
-
interface WasmPatternScore {
|
|
1749
|
+
export interface WasmPatternScore {
|
|
1251
1750
|
name: string;
|
|
1252
1751
|
score: number;
|
|
1253
1752
|
}
|
|
1254
1753
|
|
|
1255
|
-
interface WasmProgressiveEstimate {
|
|
1754
|
+
export interface WasmProgressiveEstimate {
|
|
1256
1755
|
bpm: number;
|
|
1257
1756
|
bpmConfidence: number;
|
|
1258
1757
|
bpmCandidateCount: number;
|
|
@@ -1277,15 +1776,17 @@ interface WasmProgressiveEstimate {
|
|
|
1277
1776
|
updated: boolean;
|
|
1278
1777
|
}
|
|
1279
1778
|
|
|
1280
|
-
interface WasmAnalyzerStats {
|
|
1779
|
+
export interface WasmAnalyzerStats {
|
|
1281
1780
|
totalFrames: number;
|
|
1282
1781
|
totalSamples: number;
|
|
1283
1782
|
durationSeconds: number;
|
|
1284
1783
|
estimate: WasmProgressiveEstimate;
|
|
1285
1784
|
}
|
|
1286
1785
|
|
|
1287
|
-
interface WasmFrameBuffer {
|
|
1786
|
+
export interface WasmFrameBuffer {
|
|
1288
1787
|
nFrames: number;
|
|
1788
|
+
/** Number of mel bands; flat `mel` is `[nFrames * nMels]` row-major. */
|
|
1789
|
+
nMels: number;
|
|
1289
1790
|
timestamps: Float32Array;
|
|
1290
1791
|
mel: Float32Array;
|
|
1291
1792
|
chroma: Float32Array;
|
|
@@ -1298,7 +1799,7 @@ interface WasmFrameBuffer {
|
|
|
1298
1799
|
chordConfidence: Float32Array;
|
|
1299
1800
|
}
|
|
1300
1801
|
|
|
1301
|
-
interface WasmStreamFramesU8 {
|
|
1802
|
+
export interface WasmStreamFramesU8 {
|
|
1302
1803
|
nFrames: number;
|
|
1303
1804
|
nMels: number;
|
|
1304
1805
|
timestamps: Float32Array;
|
|
@@ -1310,7 +1811,7 @@ interface WasmStreamFramesU8 {
|
|
|
1310
1811
|
spectralFlatness: Uint8Array;
|
|
1311
1812
|
}
|
|
1312
1813
|
|
|
1313
|
-
interface WasmStreamFramesI16 {
|
|
1814
|
+
export interface WasmStreamFramesI16 {
|
|
1314
1815
|
nFrames: number;
|
|
1315
1816
|
nMels: number;
|
|
1316
1817
|
timestamps: Float32Array;
|
|
@@ -1322,7 +1823,7 @@ interface WasmStreamFramesI16 {
|
|
|
1322
1823
|
spectralFlatness: Int16Array;
|
|
1323
1824
|
}
|
|
1324
1825
|
|
|
1325
|
-
interface WasmStreamAnalyzer {
|
|
1826
|
+
export interface WasmStreamAnalyzer {
|
|
1326
1827
|
process: (samples: Float32Array) => void;
|
|
1327
1828
|
processWithOffset: (samples: Float32Array, sampleOffset: number) => void;
|
|
1328
1829
|
availableFrames: () => number;
|