@libraz/libsonare 1.2.1 → 1.2.2
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 +691 -287
- package/dist/index.js +669 -122
- 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 +61 -2
- package/dist/worklet.js +371 -9
- package/dist/worklet.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +1605 -309
- package/src/public_types.ts +61 -0
- package/src/sonare.js.d.ts +496 -79
- package/src/worklet.ts +295 -9
- 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,56 @@ 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
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface WasmBeatResult {
|
|
27
66
|
time: number;
|
|
28
67
|
strength: number;
|
|
29
68
|
}
|
|
30
69
|
|
|
31
|
-
interface WasmChordResult {
|
|
70
|
+
export interface WasmChordResult {
|
|
32
71
|
root: number;
|
|
33
72
|
bass: number;
|
|
34
73
|
quality: number;
|
|
@@ -38,7 +77,7 @@ interface WasmChordResult {
|
|
|
38
77
|
name: string;
|
|
39
78
|
}
|
|
40
79
|
|
|
41
|
-
interface WasmSectionResult {
|
|
80
|
+
export interface WasmSectionResult {
|
|
42
81
|
type: number;
|
|
43
82
|
start: number;
|
|
44
83
|
end: number;
|
|
@@ -47,7 +86,7 @@ interface WasmSectionResult {
|
|
|
47
86
|
name: string;
|
|
48
87
|
}
|
|
49
88
|
|
|
50
|
-
interface WasmTimbreResult {
|
|
89
|
+
export interface WasmTimbreResult {
|
|
51
90
|
brightness: number;
|
|
52
91
|
warmth: number;
|
|
53
92
|
density: number;
|
|
@@ -55,26 +94,26 @@ interface WasmTimbreResult {
|
|
|
55
94
|
complexity: number;
|
|
56
95
|
}
|
|
57
96
|
|
|
58
|
-
interface WasmDynamicsResult {
|
|
97
|
+
export interface WasmDynamicsResult {
|
|
59
98
|
dynamicRangeDb: number;
|
|
60
99
|
loudnessRangeDb: number;
|
|
61
100
|
crestFactor: number;
|
|
62
101
|
isCompressed: boolean;
|
|
63
102
|
}
|
|
64
103
|
|
|
65
|
-
interface WasmRhythmResult {
|
|
104
|
+
export interface WasmRhythmResult {
|
|
66
105
|
syncopation: number;
|
|
67
106
|
grooveType: string;
|
|
68
107
|
patternRegularity: number;
|
|
69
108
|
}
|
|
70
109
|
|
|
71
|
-
interface WasmTimeSignatureResult {
|
|
110
|
+
export interface WasmTimeSignatureResult {
|
|
72
111
|
numerator: number;
|
|
73
112
|
denominator: number;
|
|
74
113
|
confidence: number;
|
|
75
114
|
}
|
|
76
115
|
|
|
77
|
-
interface WasmAnalysisResult {
|
|
116
|
+
export interface WasmAnalysisResult {
|
|
78
117
|
bpm: number;
|
|
79
118
|
bpmConfidence: number;
|
|
80
119
|
key: WasmKeyResult;
|
|
@@ -88,11 +127,65 @@ interface WasmAnalysisResult {
|
|
|
88
127
|
form: string;
|
|
89
128
|
}
|
|
90
129
|
|
|
91
|
-
interface
|
|
130
|
+
export interface WasmBpmCandidate {
|
|
131
|
+
bpm: number;
|
|
132
|
+
confidence: number;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface WasmBpmAnalysisResult {
|
|
136
|
+
bpm: number;
|
|
137
|
+
confidence: number;
|
|
138
|
+
candidates: WasmBpmCandidate[];
|
|
139
|
+
autocorrelation: Float32Array;
|
|
140
|
+
tempogram: Float32Array;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export interface WasmRhythmAnalysisResult {
|
|
144
|
+
timeSignature: WasmTimeSignatureResult;
|
|
145
|
+
syncopation: number;
|
|
146
|
+
grooveType: string;
|
|
147
|
+
patternRegularity: number;
|
|
148
|
+
tempoStability: number;
|
|
149
|
+
bpm: number;
|
|
150
|
+
beatIntervals: Float32Array;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface WasmDynamicsAnalysisResult {
|
|
154
|
+
dynamicRangeDb: number;
|
|
155
|
+
peakDb: number;
|
|
156
|
+
rmsDb: number;
|
|
157
|
+
crestFactor: number;
|
|
158
|
+
loudnessRangeDb: number;
|
|
159
|
+
isCompressed: boolean;
|
|
160
|
+
loudnessTimes: Float32Array;
|
|
161
|
+
loudnessRmsDb: Float32Array;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export interface WasmTimbreFrameResult {
|
|
165
|
+
brightness: number;
|
|
166
|
+
warmth: number;
|
|
167
|
+
density: number;
|
|
168
|
+
roughness: number;
|
|
169
|
+
complexity: number;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export interface WasmTimbreAnalysisResult {
|
|
173
|
+
brightness: number;
|
|
174
|
+
warmth: number;
|
|
175
|
+
density: number;
|
|
176
|
+
roughness: number;
|
|
177
|
+
complexity: number;
|
|
178
|
+
spectralCentroid: Float32Array;
|
|
179
|
+
spectralFlatness: Float32Array;
|
|
180
|
+
spectralRolloff: Float32Array;
|
|
181
|
+
timbreOverTime: WasmTimbreFrameResult[];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export interface WasmChordAnalysisResult {
|
|
92
185
|
chords: WasmChordResult[];
|
|
93
186
|
}
|
|
94
187
|
|
|
95
|
-
interface WasmAcousticResult {
|
|
188
|
+
export interface WasmAcousticResult {
|
|
96
189
|
rt60: number;
|
|
97
190
|
edt: number;
|
|
98
191
|
c50: number;
|
|
@@ -106,13 +199,32 @@ interface WasmAcousticResult {
|
|
|
106
199
|
isBlind: boolean;
|
|
107
200
|
}
|
|
108
201
|
|
|
109
|
-
interface WasmHpssResult {
|
|
202
|
+
export interface WasmHpssResult {
|
|
110
203
|
harmonic: Float32Array;
|
|
111
204
|
percussive: Float32Array;
|
|
112
205
|
sampleRate: number;
|
|
113
206
|
}
|
|
114
207
|
|
|
115
|
-
interface
|
|
208
|
+
export interface WasmHpssWithResidualResult {
|
|
209
|
+
harmonic: Float32Array;
|
|
210
|
+
percussive: Float32Array;
|
|
211
|
+
residual: Float32Array;
|
|
212
|
+
sampleRate: number;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/** Row-major 2-D matrix as a flat buffer plus its dimensions. */
|
|
216
|
+
export interface WasmMatrix2dResult {
|
|
217
|
+
data: Float32Array;
|
|
218
|
+
rows: number;
|
|
219
|
+
cols: number;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export interface WasmDecomposeResult {
|
|
223
|
+
w: Float32Array;
|
|
224
|
+
h: Float32Array;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export interface WasmStftResult {
|
|
116
228
|
nBins: number;
|
|
117
229
|
nFrames: number;
|
|
118
230
|
nFft: number;
|
|
@@ -122,13 +234,13 @@ interface WasmStftResult {
|
|
|
122
234
|
power: Float32Array;
|
|
123
235
|
}
|
|
124
236
|
|
|
125
|
-
interface WasmStftDbResult {
|
|
237
|
+
export interface WasmStftDbResult {
|
|
126
238
|
nBins: number;
|
|
127
239
|
nFrames: number;
|
|
128
240
|
db: Float32Array;
|
|
129
241
|
}
|
|
130
242
|
|
|
131
|
-
interface WasmMelResult {
|
|
243
|
+
export interface WasmMelResult {
|
|
132
244
|
nMels: number;
|
|
133
245
|
nFrames: number;
|
|
134
246
|
sampleRate: number;
|
|
@@ -137,25 +249,25 @@ interface WasmMelResult {
|
|
|
137
249
|
db: Float32Array;
|
|
138
250
|
}
|
|
139
251
|
|
|
140
|
-
interface WasmMfccResult {
|
|
252
|
+
export interface WasmMfccResult {
|
|
141
253
|
nMfcc: number;
|
|
142
254
|
nFrames: number;
|
|
143
255
|
coefficients: Float32Array;
|
|
144
256
|
}
|
|
145
257
|
|
|
146
|
-
interface WasmStftPowerResult {
|
|
258
|
+
export interface WasmStftPowerResult {
|
|
147
259
|
nBins: number;
|
|
148
260
|
nFrames: number;
|
|
149
261
|
power: Float32Array;
|
|
150
262
|
}
|
|
151
263
|
|
|
152
|
-
interface WasmMelPowerResult {
|
|
264
|
+
export interface WasmMelPowerResult {
|
|
153
265
|
nMels: number;
|
|
154
266
|
nFrames: number;
|
|
155
267
|
power: Float32Array;
|
|
156
268
|
}
|
|
157
269
|
|
|
158
|
-
interface WasmChromaResult {
|
|
270
|
+
export interface WasmChromaResult {
|
|
159
271
|
nChroma: number;
|
|
160
272
|
nFrames: number;
|
|
161
273
|
sampleRate: number;
|
|
@@ -164,7 +276,7 @@ interface WasmChromaResult {
|
|
|
164
276
|
meanEnergy: number[];
|
|
165
277
|
}
|
|
166
278
|
|
|
167
|
-
interface WasmPitchResult {
|
|
279
|
+
export interface WasmPitchResult {
|
|
168
280
|
f0: Float32Array;
|
|
169
281
|
voicedProb: Float32Array;
|
|
170
282
|
voicedFlag: boolean[];
|
|
@@ -173,48 +285,48 @@ interface WasmPitchResult {
|
|
|
173
285
|
meanF0: number;
|
|
174
286
|
}
|
|
175
287
|
|
|
176
|
-
interface WasmTrimResult {
|
|
288
|
+
export interface WasmTrimResult {
|
|
177
289
|
audio: Float32Array;
|
|
178
290
|
startSample: number;
|
|
179
291
|
endSample: number;
|
|
180
292
|
}
|
|
181
293
|
|
|
182
|
-
interface WasmFrameResult {
|
|
294
|
+
export interface WasmFrameResult {
|
|
183
295
|
nFrames: number;
|
|
184
296
|
frames: Float32Array;
|
|
185
297
|
}
|
|
186
298
|
|
|
187
|
-
interface WasmTempogramResult {
|
|
299
|
+
export interface WasmTempogramResult {
|
|
188
300
|
nFrames: number;
|
|
189
301
|
winLength: number;
|
|
190
302
|
data: Float32Array;
|
|
191
303
|
}
|
|
192
304
|
|
|
193
|
-
interface WasmCyclicTempogramResult {
|
|
305
|
+
export interface WasmCyclicTempogramResult {
|
|
194
306
|
nFrames: number;
|
|
195
307
|
nBins: number;
|
|
196
308
|
data: Float32Array;
|
|
197
309
|
}
|
|
198
310
|
|
|
199
|
-
interface WasmFourierTempogramResult {
|
|
311
|
+
export interface WasmFourierTempogramResult {
|
|
200
312
|
nBins: number;
|
|
201
313
|
nFrames: number;
|
|
202
314
|
data: Float32Array;
|
|
203
315
|
}
|
|
204
316
|
|
|
205
|
-
interface WasmNnlsChromaResult {
|
|
317
|
+
export interface WasmNnlsChromaResult {
|
|
206
318
|
nChroma: number;
|
|
207
319
|
nFrames: number;
|
|
208
320
|
data: Float32Array;
|
|
209
321
|
}
|
|
210
322
|
|
|
211
|
-
interface WasmMelodyPoint {
|
|
323
|
+
export interface WasmMelodyPoint {
|
|
212
324
|
time: number;
|
|
213
325
|
frequency: number;
|
|
214
326
|
confidence: number;
|
|
215
327
|
}
|
|
216
328
|
|
|
217
|
-
interface WasmMelodyResult {
|
|
329
|
+
export interface WasmMelodyResult {
|
|
218
330
|
points: WasmMelodyPoint[];
|
|
219
331
|
pitchRangeOctaves: number;
|
|
220
332
|
pitchStability: number;
|
|
@@ -222,7 +334,7 @@ interface WasmMelodyResult {
|
|
|
222
334
|
vibratoRate: number;
|
|
223
335
|
}
|
|
224
336
|
|
|
225
|
-
interface WasmCqtResult {
|
|
337
|
+
export interface WasmCqtResult {
|
|
226
338
|
nBins: number;
|
|
227
339
|
nFrames: number;
|
|
228
340
|
hopLength: number;
|
|
@@ -231,14 +343,14 @@ interface WasmCqtResult {
|
|
|
231
343
|
frequencies: Float32Array;
|
|
232
344
|
}
|
|
233
345
|
|
|
234
|
-
interface WasmLufsResult {
|
|
346
|
+
export interface WasmLufsResult {
|
|
235
347
|
integratedLufs: number;
|
|
236
348
|
momentaryLufs: number;
|
|
237
349
|
shortTermLufs: number;
|
|
238
350
|
loudnessRange: number;
|
|
239
351
|
}
|
|
240
352
|
|
|
241
|
-
interface WasmMasteringResult {
|
|
353
|
+
export interface WasmMasteringResult {
|
|
242
354
|
samples: Float32Array;
|
|
243
355
|
sampleRate: number;
|
|
244
356
|
inputLufs: number;
|
|
@@ -247,11 +359,11 @@ interface WasmMasteringResult {
|
|
|
247
359
|
latencySamples?: number;
|
|
248
360
|
}
|
|
249
361
|
|
|
250
|
-
interface WasmMasteringChainResult extends WasmMasteringResult {
|
|
362
|
+
export interface WasmMasteringChainResult extends WasmMasteringResult {
|
|
251
363
|
stages: string[];
|
|
252
364
|
}
|
|
253
365
|
|
|
254
|
-
interface WasmMasteringStereoChainResult {
|
|
366
|
+
export interface WasmMasteringStereoChainResult {
|
|
255
367
|
left: Float32Array;
|
|
256
368
|
right: Float32Array;
|
|
257
369
|
sampleRate: number;
|
|
@@ -261,7 +373,7 @@ interface WasmMasteringStereoChainResult {
|
|
|
261
373
|
stages: string[];
|
|
262
374
|
}
|
|
263
375
|
|
|
264
|
-
interface WasmMasteringStereoResult {
|
|
376
|
+
export interface WasmMasteringStereoResult {
|
|
265
377
|
left: Float32Array;
|
|
266
378
|
right: Float32Array;
|
|
267
379
|
sampleRate: number;
|
|
@@ -271,7 +383,7 @@ interface WasmMasteringStereoResult {
|
|
|
271
383
|
latencySamples: number;
|
|
272
384
|
}
|
|
273
385
|
|
|
274
|
-
interface WasmMixMeterSnapshot {
|
|
386
|
+
export interface WasmMixMeterSnapshot {
|
|
275
387
|
peakDbL: number;
|
|
276
388
|
peakDbR: number;
|
|
277
389
|
rmsDbL: number;
|
|
@@ -291,14 +403,14 @@ interface WasmMixMeterSnapshot {
|
|
|
291
403
|
seq: number;
|
|
292
404
|
}
|
|
293
405
|
|
|
294
|
-
interface WasmMixResult {
|
|
406
|
+
export interface WasmMixResult {
|
|
295
407
|
left: Float32Array;
|
|
296
408
|
right: Float32Array;
|
|
297
409
|
sampleRate: number;
|
|
298
410
|
meters: WasmMixMeterSnapshot[];
|
|
299
411
|
}
|
|
300
412
|
|
|
301
|
-
interface WasmEngineClip {
|
|
413
|
+
export interface WasmEngineClip {
|
|
302
414
|
id?: number;
|
|
303
415
|
channels: Float32Array[];
|
|
304
416
|
startPpq: number;
|
|
@@ -310,7 +422,7 @@ interface WasmEngineClip {
|
|
|
310
422
|
fadeOutSamples?: number;
|
|
311
423
|
}
|
|
312
424
|
|
|
313
|
-
interface WasmEngineParameterInfo {
|
|
425
|
+
export interface WasmEngineParameterInfo {
|
|
314
426
|
id: number;
|
|
315
427
|
name: string;
|
|
316
428
|
unit: string;
|
|
@@ -321,33 +433,33 @@ interface WasmEngineParameterInfo {
|
|
|
321
433
|
defaultCurve: number;
|
|
322
434
|
}
|
|
323
435
|
|
|
324
|
-
interface WasmEngineAutomationPoint {
|
|
436
|
+
export interface WasmEngineAutomationPoint {
|
|
325
437
|
ppq: number;
|
|
326
438
|
value: number;
|
|
327
439
|
curveToNext?: number;
|
|
328
440
|
}
|
|
329
441
|
|
|
330
|
-
interface WasmEngineMarker {
|
|
442
|
+
export interface WasmEngineMarker {
|
|
331
443
|
id: number;
|
|
332
444
|
ppq: number;
|
|
333
445
|
name?: string;
|
|
334
446
|
}
|
|
335
447
|
|
|
336
|
-
interface WasmEngineMetronomeConfig {
|
|
448
|
+
export interface WasmEngineMetronomeConfig {
|
|
337
449
|
enabled: boolean;
|
|
338
450
|
beatGain?: number;
|
|
339
451
|
accentGain?: number;
|
|
340
452
|
clickSamples?: number;
|
|
341
453
|
}
|
|
342
454
|
|
|
343
|
-
interface WasmEngineGraphNode {
|
|
455
|
+
export interface WasmEngineGraphNode {
|
|
344
456
|
id: string;
|
|
345
457
|
type?: number;
|
|
346
458
|
gainDb?: number;
|
|
347
459
|
numPorts?: number;
|
|
348
460
|
}
|
|
349
461
|
|
|
350
|
-
interface WasmEngineGraphConnection {
|
|
462
|
+
export interface WasmEngineGraphConnection {
|
|
351
463
|
sourceNode: string;
|
|
352
464
|
sourcePort: number;
|
|
353
465
|
destNode: string;
|
|
@@ -355,12 +467,12 @@ interface WasmEngineGraphConnection {
|
|
|
355
467
|
mix?: number;
|
|
356
468
|
}
|
|
357
469
|
|
|
358
|
-
interface WasmEngineGraphParameterBinding {
|
|
470
|
+
export interface WasmEngineGraphParameterBinding {
|
|
359
471
|
paramId: number;
|
|
360
472
|
nodeId: string;
|
|
361
473
|
}
|
|
362
474
|
|
|
363
|
-
interface WasmEngineGraphSpec {
|
|
475
|
+
export interface WasmEngineGraphSpec {
|
|
364
476
|
nodes: WasmEngineGraphNode[];
|
|
365
477
|
connections: WasmEngineGraphConnection[];
|
|
366
478
|
inputNode: string;
|
|
@@ -369,7 +481,7 @@ interface WasmEngineGraphSpec {
|
|
|
369
481
|
parameterBindings?: WasmEngineGraphParameterBinding[];
|
|
370
482
|
}
|
|
371
483
|
|
|
372
|
-
interface WasmEngineTelemetry {
|
|
484
|
+
export interface WasmEngineTelemetry {
|
|
373
485
|
type: number;
|
|
374
486
|
error: number;
|
|
375
487
|
renderFrame: number;
|
|
@@ -379,7 +491,7 @@ interface WasmEngineTelemetry {
|
|
|
379
491
|
value: number;
|
|
380
492
|
}
|
|
381
493
|
|
|
382
|
-
interface WasmEngineMeterTelemetry {
|
|
494
|
+
export interface WasmEngineMeterTelemetry {
|
|
383
495
|
targetId: number;
|
|
384
496
|
renderFrame: number;
|
|
385
497
|
seq: number;
|
|
@@ -399,14 +511,14 @@ interface WasmEngineMeterTelemetry {
|
|
|
399
511
|
droppedRecords: number;
|
|
400
512
|
}
|
|
401
513
|
|
|
402
|
-
interface WasmEngineCaptureStatus {
|
|
514
|
+
export interface WasmEngineCaptureStatus {
|
|
403
515
|
capturedFrames: number;
|
|
404
516
|
overflowCount: number;
|
|
405
517
|
armed: boolean;
|
|
406
518
|
punchEnabled: boolean;
|
|
407
519
|
}
|
|
408
520
|
|
|
409
|
-
interface WasmEngineTransportState {
|
|
521
|
+
export interface WasmEngineTransportState {
|
|
410
522
|
playing: boolean;
|
|
411
523
|
looping: boolean;
|
|
412
524
|
renderFrame: number;
|
|
@@ -418,7 +530,7 @@ interface WasmEngineTransportState {
|
|
|
418
530
|
sampleRate: number;
|
|
419
531
|
}
|
|
420
532
|
|
|
421
|
-
interface WasmEngineBounceOptions {
|
|
533
|
+
export interface WasmEngineBounceOptions {
|
|
422
534
|
totalFrames: number;
|
|
423
535
|
blockSize?: number;
|
|
424
536
|
numChannels?: number;
|
|
@@ -431,7 +543,7 @@ interface WasmEngineBounceOptions {
|
|
|
431
543
|
ditherSeed?: number;
|
|
432
544
|
}
|
|
433
545
|
|
|
434
|
-
interface WasmEngineBounceResult {
|
|
546
|
+
export interface WasmEngineBounceResult {
|
|
435
547
|
interleaved: Float32Array;
|
|
436
548
|
frames: number;
|
|
437
549
|
numChannels: number;
|
|
@@ -439,7 +551,7 @@ interface WasmEngineBounceResult {
|
|
|
439
551
|
integratedLufs: number;
|
|
440
552
|
}
|
|
441
553
|
|
|
442
|
-
interface WasmEngineFreezeOptions {
|
|
554
|
+
export interface WasmEngineFreezeOptions {
|
|
443
555
|
totalFrames: number;
|
|
444
556
|
blockSize?: number;
|
|
445
557
|
numChannels?: number;
|
|
@@ -448,18 +560,18 @@ interface WasmEngineFreezeOptions {
|
|
|
448
560
|
gain?: number;
|
|
449
561
|
}
|
|
450
562
|
|
|
451
|
-
interface WasmEngineFreezeResult {
|
|
563
|
+
export interface WasmEngineFreezeResult {
|
|
452
564
|
clipId: number;
|
|
453
565
|
frames: number;
|
|
454
566
|
numChannels: number;
|
|
455
567
|
}
|
|
456
568
|
|
|
457
|
-
interface WasmEngineProcessWithMonitorResult {
|
|
569
|
+
export interface WasmEngineProcessWithMonitorResult {
|
|
458
570
|
output: Float32Array[];
|
|
459
571
|
monitor: Float32Array[];
|
|
460
572
|
}
|
|
461
573
|
|
|
462
|
-
interface WasmRealtimeEngine {
|
|
574
|
+
export interface WasmRealtimeEngine {
|
|
463
575
|
prepare: (
|
|
464
576
|
sampleRate: number,
|
|
465
577
|
maxBlockSize: number,
|
|
@@ -512,10 +624,10 @@ interface WasmRealtimeEngine {
|
|
|
512
624
|
delete: () => void;
|
|
513
625
|
}
|
|
514
626
|
|
|
515
|
-
type ProgressCallback = (progress: number, stage: string) => void;
|
|
516
|
-
type TempogramMode = 'autocorrelation' | 'auto' | 'ac' | 'cosine' | 0 | 1;
|
|
627
|
+
export type ProgressCallback = (progress: number, stage: string) => void;
|
|
628
|
+
export type TempogramMode = 'autocorrelation' | 'auto' | 'ac' | 'cosine' | 0 | 1;
|
|
517
629
|
|
|
518
|
-
interface SonareModule {
|
|
630
|
+
export interface SonareModule {
|
|
519
631
|
// Quick API (high-level)
|
|
520
632
|
detectBpm: (samples: Float32Array, sampleRate: number) => number;
|
|
521
633
|
detectKey: (samples: Float32Array, sampleRate: number) => WasmKeyResult;
|
|
@@ -583,8 +695,139 @@ interface SonareModule {
|
|
|
583
695
|
sampleRate: number,
|
|
584
696
|
progressCallback: ProgressCallback | null,
|
|
585
697
|
) => WasmAnalysisResult;
|
|
698
|
+
analyzeBpm: (
|
|
699
|
+
samples: Float32Array,
|
|
700
|
+
sampleRate: number,
|
|
701
|
+
bpmMin: number,
|
|
702
|
+
bpmMax: number,
|
|
703
|
+
startBpm: number,
|
|
704
|
+
nFft: number,
|
|
705
|
+
hopLength: number,
|
|
706
|
+
maxCandidates: number,
|
|
707
|
+
) => WasmBpmAnalysisResult;
|
|
708
|
+
analyzeRhythm: (
|
|
709
|
+
samples: Float32Array,
|
|
710
|
+
sampleRate: number,
|
|
711
|
+
bpmMin: number,
|
|
712
|
+
bpmMax: number,
|
|
713
|
+
startBpm: number,
|
|
714
|
+
nFft: number,
|
|
715
|
+
hopLength: number,
|
|
716
|
+
) => WasmRhythmAnalysisResult;
|
|
717
|
+
analyzeDynamics: (
|
|
718
|
+
samples: Float32Array,
|
|
719
|
+
sampleRate: number,
|
|
720
|
+
windowSec: number,
|
|
721
|
+
hopLength: number,
|
|
722
|
+
compressionThreshold: number,
|
|
723
|
+
) => WasmDynamicsAnalysisResult;
|
|
724
|
+
analyzeTimbre: (
|
|
725
|
+
samples: Float32Array,
|
|
726
|
+
sampleRate: number,
|
|
727
|
+
nFft: number,
|
|
728
|
+
hopLength: number,
|
|
729
|
+
nMels: number,
|
|
730
|
+
nMfcc: number,
|
|
731
|
+
windowSec: number,
|
|
732
|
+
) => WasmTimbreAnalysisResult;
|
|
733
|
+
detectKeyCandidates: (samples: Float32Array, sampleRate: number) => WasmKeyCandidateResult[];
|
|
734
|
+
hasFfmpegSupport: () => boolean;
|
|
586
735
|
version: () => string;
|
|
587
736
|
engineAbiVersion: () => number;
|
|
737
|
+
voiceChangerAbiVersion: () => number;
|
|
738
|
+
voiceCharacterPresetId: (preset: number) => string | null;
|
|
739
|
+
realtimeVoiceChangerPresetConfig: (preset: number) => WasmRealtimeVoiceChangerPodConfig | null;
|
|
740
|
+
|
|
741
|
+
meteringPeakDb: (samples: Float32Array, sampleRate: number) => number;
|
|
742
|
+
meteringRmsDb: (samples: Float32Array, sampleRate: number) => number;
|
|
743
|
+
meteringCrestFactorDb: (samples: Float32Array, sampleRate: number) => number;
|
|
744
|
+
meteringDcOffset: (samples: Float32Array, sampleRate: number) => number;
|
|
745
|
+
meteringTruePeakDb: (
|
|
746
|
+
samples: Float32Array,
|
|
747
|
+
sampleRate: number,
|
|
748
|
+
oversampleFactor: number,
|
|
749
|
+
) => number;
|
|
750
|
+
meteringDetectClipping: (
|
|
751
|
+
samples: Float32Array,
|
|
752
|
+
sampleRate: number,
|
|
753
|
+
threshold: number,
|
|
754
|
+
minRegionSamples: number,
|
|
755
|
+
) => {
|
|
756
|
+
clippedSamples: number;
|
|
757
|
+
clippingRatio: number;
|
|
758
|
+
maxClippedPeak: number;
|
|
759
|
+
regions: Array<{ startSample: number; endSample: number; length: number; peak: number }>;
|
|
760
|
+
};
|
|
761
|
+
meteringDynamicRange: (
|
|
762
|
+
samples: Float32Array,
|
|
763
|
+
sampleRate: number,
|
|
764
|
+
windowSec: number,
|
|
765
|
+
hopSec: number,
|
|
766
|
+
lowPercentile: number,
|
|
767
|
+
highPercentile: number,
|
|
768
|
+
) => {
|
|
769
|
+
dynamicRangeDb: number;
|
|
770
|
+
lowPercentileDb: number;
|
|
771
|
+
highPercentileDb: number;
|
|
772
|
+
windowRmsDb: Float32Array;
|
|
773
|
+
};
|
|
774
|
+
|
|
775
|
+
meteringStereoCorrelation: (
|
|
776
|
+
left: Float32Array,
|
|
777
|
+
right: Float32Array,
|
|
778
|
+
sampleRate: number,
|
|
779
|
+
) => number;
|
|
780
|
+
meteringStereoWidth: (left: Float32Array, right: Float32Array, sampleRate: number) => number;
|
|
781
|
+
meteringVectorscope: (
|
|
782
|
+
left: Float32Array,
|
|
783
|
+
right: Float32Array,
|
|
784
|
+
sampleRate: number,
|
|
785
|
+
) => { mid: Float32Array; side: Float32Array };
|
|
786
|
+
meteringPhaseScope: (
|
|
787
|
+
left: Float32Array,
|
|
788
|
+
right: Float32Array,
|
|
789
|
+
sampleRate: number,
|
|
790
|
+
) => {
|
|
791
|
+
mid: Float32Array;
|
|
792
|
+
side: Float32Array;
|
|
793
|
+
radius: Float32Array;
|
|
794
|
+
angleRad: Float32Array;
|
|
795
|
+
correlation: number;
|
|
796
|
+
averageAbsAngleRad: number;
|
|
797
|
+
maxRadius: number;
|
|
798
|
+
};
|
|
799
|
+
meteringSpectrum: (
|
|
800
|
+
samples: Float32Array,
|
|
801
|
+
sampleRate: number,
|
|
802
|
+
options: {
|
|
803
|
+
nFft?: number;
|
|
804
|
+
applyOctaveSmoothing?: boolean;
|
|
805
|
+
octaveFraction?: number;
|
|
806
|
+
dbRef?: number;
|
|
807
|
+
dbAmin?: number;
|
|
808
|
+
},
|
|
809
|
+
) => {
|
|
810
|
+
frequencies: Float32Array;
|
|
811
|
+
magnitude: Float32Array;
|
|
812
|
+
power: Float32Array;
|
|
813
|
+
db: Float32Array;
|
|
814
|
+
nFft: number;
|
|
815
|
+
sampleRate: number;
|
|
816
|
+
};
|
|
817
|
+
|
|
818
|
+
scaleQuantizeMidi: (
|
|
819
|
+
root: number,
|
|
820
|
+
modeMask: number,
|
|
821
|
+
midi: number,
|
|
822
|
+
referenceMidi: number,
|
|
823
|
+
) => number;
|
|
824
|
+
scaleCorrectionSemitones: (
|
|
825
|
+
root: number,
|
|
826
|
+
modeMask: number,
|
|
827
|
+
midi: number,
|
|
828
|
+
referenceMidi: number,
|
|
829
|
+
) => number;
|
|
830
|
+
scalePitchClassEnabled: (root: number, modeMask: number, pitchClass: number) => boolean;
|
|
588
831
|
|
|
589
832
|
// Effects
|
|
590
833
|
hpss: (
|
|
@@ -593,6 +836,41 @@ interface SonareModule {
|
|
|
593
836
|
kernelHarmonic: number,
|
|
594
837
|
kernelPercussive: number,
|
|
595
838
|
) => WasmHpssResult;
|
|
839
|
+
hpssWithResidual: (
|
|
840
|
+
samples: Float32Array,
|
|
841
|
+
sampleRate: number,
|
|
842
|
+
kernelHarmonic: number,
|
|
843
|
+
kernelPercussive: number,
|
|
844
|
+
) => WasmHpssWithResidualResult;
|
|
845
|
+
decompose: (
|
|
846
|
+
s: Float32Array,
|
|
847
|
+
nFeatures: number,
|
|
848
|
+
nFrames: number,
|
|
849
|
+
nComponents: number,
|
|
850
|
+
nIter: number,
|
|
851
|
+
beta: number,
|
|
852
|
+
) => WasmDecomposeResult;
|
|
853
|
+
nnFilter: (
|
|
854
|
+
s: Float32Array,
|
|
855
|
+
nFeatures: number,
|
|
856
|
+
nFrames: number,
|
|
857
|
+
aggregate: string,
|
|
858
|
+
k: number,
|
|
859
|
+
width: number,
|
|
860
|
+
) => WasmMatrix2dResult;
|
|
861
|
+
remix: (
|
|
862
|
+
samples: Float32Array,
|
|
863
|
+
intervals: Int32Array,
|
|
864
|
+
sampleRate: number,
|
|
865
|
+
alignZeros: boolean,
|
|
866
|
+
) => Float32Array;
|
|
867
|
+
phaseVocoder: (
|
|
868
|
+
samples: Float32Array,
|
|
869
|
+
sampleRate: number,
|
|
870
|
+
rate: number,
|
|
871
|
+
nFft: number,
|
|
872
|
+
hopLength: number,
|
|
873
|
+
) => Float32Array;
|
|
596
874
|
harmonic: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
597
875
|
percussive: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
598
876
|
timeStretch: (samples: Float32Array, sampleRate: number, rate: number) => Float32Array;
|
|
@@ -677,6 +955,56 @@ interface SonareModule {
|
|
|
677
955
|
sampleRate: number,
|
|
678
956
|
platforms: Array<{ name: string; targetLufs: number; ceilingDb: number }>,
|
|
679
957
|
) => string;
|
|
958
|
+
masteringRepairDeclick: (
|
|
959
|
+
samples: Float32Array,
|
|
960
|
+
sampleRate: number,
|
|
961
|
+
options: object,
|
|
962
|
+
) => Float32Array;
|
|
963
|
+
masteringRepairDenoiseClassical: (
|
|
964
|
+
samples: Float32Array,
|
|
965
|
+
sampleRate: number,
|
|
966
|
+
options: object,
|
|
967
|
+
) => Float32Array;
|
|
968
|
+
masteringRepairDeclip: (
|
|
969
|
+
samples: Float32Array,
|
|
970
|
+
sampleRate: number,
|
|
971
|
+
options: object,
|
|
972
|
+
) => Float32Array;
|
|
973
|
+
masteringRepairDecrackle: (
|
|
974
|
+
samples: Float32Array,
|
|
975
|
+
sampleRate: number,
|
|
976
|
+
options: object,
|
|
977
|
+
) => Float32Array;
|
|
978
|
+
masteringRepairDehum: (
|
|
979
|
+
samples: Float32Array,
|
|
980
|
+
sampleRate: number,
|
|
981
|
+
options: object,
|
|
982
|
+
) => Float32Array;
|
|
983
|
+
masteringRepairDereverbClassical: (
|
|
984
|
+
samples: Float32Array,
|
|
985
|
+
sampleRate: number,
|
|
986
|
+
options: object,
|
|
987
|
+
) => Float32Array;
|
|
988
|
+
masteringRepairTrimSilence: (
|
|
989
|
+
samples: Float32Array,
|
|
990
|
+
sampleRate: number,
|
|
991
|
+
options: object,
|
|
992
|
+
) => Float32Array;
|
|
993
|
+
masteringDynamicsCompressor: (
|
|
994
|
+
samples: Float32Array,
|
|
995
|
+
sampleRate: number,
|
|
996
|
+
options: object,
|
|
997
|
+
) => { samples: Float32Array; latencySamples: number };
|
|
998
|
+
masteringDynamicsGate: (
|
|
999
|
+
samples: Float32Array,
|
|
1000
|
+
sampleRate: number,
|
|
1001
|
+
options: object,
|
|
1002
|
+
) => { samples: Float32Array; latencySamples: number };
|
|
1003
|
+
masteringDynamicsTransientShaper: (
|
|
1004
|
+
samples: Float32Array,
|
|
1005
|
+
sampleRate: number,
|
|
1006
|
+
options: object,
|
|
1007
|
+
) => { samples: Float32Array; latencySamples: number };
|
|
680
1008
|
masteringChain: (
|
|
681
1009
|
samples: Float32Array,
|
|
682
1010
|
sampleRate: number,
|
|
@@ -715,6 +1043,21 @@ interface SonareModule {
|
|
|
715
1043
|
sampleRate: number,
|
|
716
1044
|
overrides: Record<string, number | boolean> | null,
|
|
717
1045
|
) => WasmMasteringStereoChainResult;
|
|
1046
|
+
masterAudioWithProgress: (
|
|
1047
|
+
presetName: string,
|
|
1048
|
+
samples: Float32Array,
|
|
1049
|
+
sampleRate: number,
|
|
1050
|
+
overrides: Record<string, number | boolean> | null,
|
|
1051
|
+
progressCallback: ProgressCallback | null,
|
|
1052
|
+
) => WasmMasteringChainResult;
|
|
1053
|
+
masterAudioStereoWithProgress: (
|
|
1054
|
+
presetName: string,
|
|
1055
|
+
left: Float32Array,
|
|
1056
|
+
right: Float32Array,
|
|
1057
|
+
sampleRate: number,
|
|
1058
|
+
overrides: Record<string, number | boolean> | null,
|
|
1059
|
+
progressCallback: ProgressCallback | null,
|
|
1060
|
+
) => WasmMasteringStereoChainResult;
|
|
718
1061
|
mixingScenePresetNames: () => string[];
|
|
719
1062
|
mixingScenePresetJson: (presetName: string) => string;
|
|
720
1063
|
mixStereo: (
|
|
@@ -763,7 +1106,6 @@ interface SonareModule {
|
|
|
763
1106
|
nFrames: number,
|
|
764
1107
|
sampleRate: number,
|
|
765
1108
|
nFft: number,
|
|
766
|
-
hopLength: number,
|
|
767
1109
|
fmin: number,
|
|
768
1110
|
fmax: number,
|
|
769
1111
|
) => WasmStftPowerResult;
|
|
@@ -774,9 +1116,9 @@ interface SonareModule {
|
|
|
774
1116
|
sampleRate: number,
|
|
775
1117
|
nFft: number,
|
|
776
1118
|
hopLength: number,
|
|
777
|
-
nIter: number,
|
|
778
1119
|
fmin: number,
|
|
779
1120
|
fmax: number,
|
|
1121
|
+
nIter: number,
|
|
780
1122
|
) => Float32Array;
|
|
781
1123
|
mfccToMel: (
|
|
782
1124
|
mfcc: Float32Array,
|
|
@@ -792,9 +1134,9 @@ interface SonareModule {
|
|
|
792
1134
|
sampleRate: number,
|
|
793
1135
|
nFft: number,
|
|
794
1136
|
hopLength: number,
|
|
795
|
-
nIter: number,
|
|
796
1137
|
fmin: number,
|
|
797
1138
|
fmax: number,
|
|
1139
|
+
nIter: number,
|
|
798
1140
|
) => Float32Array;
|
|
799
1141
|
|
|
800
1142
|
// Features - Chroma
|
|
@@ -843,6 +1185,38 @@ interface SonareModule {
|
|
|
843
1185
|
frameLength: number,
|
|
844
1186
|
hopLength: number,
|
|
845
1187
|
) => Float32Array;
|
|
1188
|
+
spectralContrast: (
|
|
1189
|
+
samples: Float32Array,
|
|
1190
|
+
sampleRate: number,
|
|
1191
|
+
nFft: number,
|
|
1192
|
+
hopLength: number,
|
|
1193
|
+
nBands: number,
|
|
1194
|
+
fmin: number,
|
|
1195
|
+
quantile: number,
|
|
1196
|
+
) => WasmMatrix2dResult;
|
|
1197
|
+
polyFeatures: (
|
|
1198
|
+
samples: Float32Array,
|
|
1199
|
+
sampleRate: number,
|
|
1200
|
+
nFft: number,
|
|
1201
|
+
hopLength: number,
|
|
1202
|
+
order: number,
|
|
1203
|
+
) => WasmMatrix2dResult;
|
|
1204
|
+
zeroCrossings: (
|
|
1205
|
+
samples: Float32Array,
|
|
1206
|
+
threshold: number,
|
|
1207
|
+
refMagnitude: boolean,
|
|
1208
|
+
pad: boolean,
|
|
1209
|
+
zeroPos: boolean,
|
|
1210
|
+
) => Int32Array;
|
|
1211
|
+
pitchTuning: (frequencies: Float32Array, resolution: number, binsPerOctave: number) => number;
|
|
1212
|
+
estimateTuning: (
|
|
1213
|
+
samples: Float32Array,
|
|
1214
|
+
sampleRate: number,
|
|
1215
|
+
nFft: number,
|
|
1216
|
+
hopLength: number,
|
|
1217
|
+
resolution: number,
|
|
1218
|
+
binsPerOctave: number,
|
|
1219
|
+
) => number;
|
|
846
1220
|
|
|
847
1221
|
// Features - Pitch
|
|
848
1222
|
pitchYin: (
|
|
@@ -853,6 +1227,7 @@ interface SonareModule {
|
|
|
853
1227
|
fmin: number,
|
|
854
1228
|
fmax: number,
|
|
855
1229
|
threshold: number,
|
|
1230
|
+
fillNa: boolean,
|
|
856
1231
|
) => WasmPitchResult;
|
|
857
1232
|
pitchPyin: (
|
|
858
1233
|
samples: Float32Array,
|
|
@@ -862,6 +1237,7 @@ interface SonareModule {
|
|
|
862
1237
|
fmin: number,
|
|
863
1238
|
fmax: number,
|
|
864
1239
|
threshold: number,
|
|
1240
|
+
fillNa: boolean,
|
|
865
1241
|
) => WasmPitchResult;
|
|
866
1242
|
|
|
867
1243
|
// Core - Conversion
|
|
@@ -993,6 +1369,8 @@ interface SonareModule {
|
|
|
993
1369
|
lufs: (samples: Float32Array, sampleRate: number) => WasmLufsResult;
|
|
994
1370
|
momentaryLufs: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
995
1371
|
shortTermLufs: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
1372
|
+
lufsInterleaved: (samples: Float32Array, channels: number, sampleRate: number) => WasmLufsResult;
|
|
1373
|
+
ebur128LoudnessRange: (samples: Float32Array, sampleRate: number) => number;
|
|
996
1374
|
|
|
997
1375
|
// Core - Resample
|
|
998
1376
|
resample: (samples: Float32Array, srcSr: number, targetSr: number) => Float32Array;
|
|
@@ -1083,13 +1461,22 @@ interface SonareModule {
|
|
|
1083
1461
|
|
|
1084
1462
|
// Streaming - StreamingRetune
|
|
1085
1463
|
createStreamingRetune: (config: Record<string, unknown>) => WasmStreamingRetune;
|
|
1464
|
+
createRealtimeVoiceChanger: (
|
|
1465
|
+
config: Record<string, unknown> | string,
|
|
1466
|
+
) => WasmRealtimeVoiceChanger;
|
|
1467
|
+
realtimeVoiceChangerPresetNames: () => string[];
|
|
1468
|
+
realtimeVoiceChangerPresetJson: (id: string) => string;
|
|
1469
|
+
validateRealtimeVoiceChangerPresetJson: (json: string) => {
|
|
1470
|
+
ok: boolean;
|
|
1471
|
+
normalizedJson?: string;
|
|
1472
|
+
error?: string;
|
|
1473
|
+
};
|
|
1086
1474
|
|
|
1087
1475
|
// Mixing - scene-based Mixer
|
|
1088
1476
|
createMixerFromSceneJson: (json: string, sampleRate: number, blockSize: number) => WasmMixer;
|
|
1089
|
-
mixerPresetJson: (presetName: string) => string;
|
|
1090
1477
|
}
|
|
1091
1478
|
|
|
1092
|
-
interface WasmStreamingMasteringChain {
|
|
1479
|
+
export interface WasmStreamingMasteringChain {
|
|
1093
1480
|
prepare: (sampleRate: number, maxBlockSize: number, numChannels: number) => void;
|
|
1094
1481
|
processMono: (samples: Float32Array) => Float32Array;
|
|
1095
1482
|
processStereo: (
|
|
@@ -1102,7 +1489,7 @@ interface WasmStreamingMasteringChain {
|
|
|
1102
1489
|
delete: () => void;
|
|
1103
1490
|
}
|
|
1104
1491
|
|
|
1105
|
-
interface WasmEqSpectrumSnapshot {
|
|
1492
|
+
export interface WasmEqSpectrumSnapshot {
|
|
1106
1493
|
preLeft: Float32Array;
|
|
1107
1494
|
preRight: Float32Array;
|
|
1108
1495
|
postLeft: Float32Array;
|
|
@@ -1113,7 +1500,7 @@ interface WasmEqSpectrumSnapshot {
|
|
|
1113
1500
|
seq: number;
|
|
1114
1501
|
}
|
|
1115
1502
|
|
|
1116
|
-
interface WasmStreamingEqualizer {
|
|
1503
|
+
export interface WasmStreamingEqualizer {
|
|
1117
1504
|
setBand: (index: number, band: Record<string, unknown>) => void;
|
|
1118
1505
|
clear: () => void;
|
|
1119
1506
|
setPhaseMode: (mode: number) => void;
|
|
@@ -1136,7 +1523,7 @@ interface WasmStreamingEqualizer {
|
|
|
1136
1523
|
delete: () => void;
|
|
1137
1524
|
}
|
|
1138
1525
|
|
|
1139
|
-
interface WasmStreamingRetune {
|
|
1526
|
+
export interface WasmStreamingRetune {
|
|
1140
1527
|
prepare: (sampleRate: number, maxBlockSize: number) => void;
|
|
1141
1528
|
reset: () => void;
|
|
1142
1529
|
setConfig: (config: Record<string, unknown>) => void;
|
|
@@ -1146,7 +1533,32 @@ interface WasmStreamingRetune {
|
|
|
1146
1533
|
delete: () => void;
|
|
1147
1534
|
}
|
|
1148
1535
|
|
|
1149
|
-
interface
|
|
1536
|
+
export interface WasmRealtimeVoiceChanger {
|
|
1537
|
+
prepare: (sampleRate: number, maxBlockSize: number, channels: number) => void;
|
|
1538
|
+
reset: () => void;
|
|
1539
|
+
setConfig: (config: Record<string, unknown> | string) => void;
|
|
1540
|
+
configJson: () => string;
|
|
1541
|
+
latencySamples: () => number;
|
|
1542
|
+
processMono: (samples: Float32Array) => Float32Array;
|
|
1543
|
+
processMonoInto: (samples: Float32Array, output: Float32Array) => void;
|
|
1544
|
+
processInterleaved: (samples: Float32Array, channels: number) => Float32Array;
|
|
1545
|
+
processInterleavedInto: (samples: Float32Array, channels: number, output: Float32Array) => void;
|
|
1546
|
+
// Zero-copy "prepared" path. The returned Float32Array is a typed_memory_view
|
|
1547
|
+
// backed by the WASM heap; it is only valid until the next call to a method
|
|
1548
|
+
// that may grow the underlying scratch buffer (i.e. another get*Buffer with a
|
|
1549
|
+
// larger length) or until delete().
|
|
1550
|
+
getMonoInputBuffer: (numSamples: number) => Float32Array;
|
|
1551
|
+
getMonoOutputBuffer: (numSamples: number) => Float32Array;
|
|
1552
|
+
processPreparedMono: (numSamples: number) => void;
|
|
1553
|
+
getInterleavedInputBuffer: (numFrames: number, numChannels: number) => Float32Array;
|
|
1554
|
+
getInterleavedOutputBuffer: (numFrames: number, numChannels: number) => Float32Array;
|
|
1555
|
+
processPreparedInterleaved: (numFrames: number, numChannels: number) => void;
|
|
1556
|
+
getPlanarChannelBuffer: (channel: number, numFrames: number) => Float32Array;
|
|
1557
|
+
processPreparedPlanar: (numFrames: number) => void;
|
|
1558
|
+
delete: () => void;
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
export interface WasmMixer {
|
|
1150
1562
|
compile: () => void;
|
|
1151
1563
|
processStereo: (
|
|
1152
1564
|
leftChannels: Float32Array[],
|
|
@@ -1173,6 +1585,11 @@ interface WasmMixer {
|
|
|
1173
1585
|
curve: number,
|
|
1174
1586
|
) => void;
|
|
1175
1587
|
stripById: (id: string) => number;
|
|
1588
|
+
setInputTrimDb: (stripIndex: number, db: number) => void;
|
|
1589
|
+
setFaderDb: (stripIndex: number, db: number) => void;
|
|
1590
|
+
setPan: (stripIndex: number, pan: number, panMode: number) => void;
|
|
1591
|
+
setWidth: (stripIndex: number, width: number) => void;
|
|
1592
|
+
setMuted: (stripIndex: number, muted: boolean) => void;
|
|
1176
1593
|
setSoloed: (stripIndex: number, soloed: boolean) => void;
|
|
1177
1594
|
setSoloSafe: (stripIndex: number, soloSafe: boolean) => void;
|
|
1178
1595
|
setPolarityInvert: (stripIndex: number, invertLeft: boolean, invertRight: boolean) => void;
|
|
@@ -1226,20 +1643,20 @@ interface WasmMixer {
|
|
|
1226
1643
|
delete: () => void;
|
|
1227
1644
|
}
|
|
1228
1645
|
|
|
1229
|
-
interface WasmGoniometerPoint {
|
|
1646
|
+
export interface WasmGoniometerPoint {
|
|
1230
1647
|
left: number;
|
|
1231
1648
|
right: number;
|
|
1232
1649
|
}
|
|
1233
1650
|
|
|
1234
1651
|
// Streaming types for StreamAnalyzer
|
|
1235
|
-
interface WasmChordChange {
|
|
1652
|
+
export interface WasmChordChange {
|
|
1236
1653
|
root: number;
|
|
1237
1654
|
quality: number;
|
|
1238
1655
|
startTime: number;
|
|
1239
1656
|
confidence: number;
|
|
1240
1657
|
}
|
|
1241
1658
|
|
|
1242
|
-
interface WasmBarChord {
|
|
1659
|
+
export interface WasmBarChord {
|
|
1243
1660
|
barIndex: number;
|
|
1244
1661
|
root: number;
|
|
1245
1662
|
quality: number;
|
|
@@ -1247,12 +1664,12 @@ interface WasmBarChord {
|
|
|
1247
1664
|
confidence: number;
|
|
1248
1665
|
}
|
|
1249
1666
|
|
|
1250
|
-
interface WasmPatternScore {
|
|
1667
|
+
export interface WasmPatternScore {
|
|
1251
1668
|
name: string;
|
|
1252
1669
|
score: number;
|
|
1253
1670
|
}
|
|
1254
1671
|
|
|
1255
|
-
interface WasmProgressiveEstimate {
|
|
1672
|
+
export interface WasmProgressiveEstimate {
|
|
1256
1673
|
bpm: number;
|
|
1257
1674
|
bpmConfidence: number;
|
|
1258
1675
|
bpmCandidateCount: number;
|
|
@@ -1277,14 +1694,14 @@ interface WasmProgressiveEstimate {
|
|
|
1277
1694
|
updated: boolean;
|
|
1278
1695
|
}
|
|
1279
1696
|
|
|
1280
|
-
interface WasmAnalyzerStats {
|
|
1697
|
+
export interface WasmAnalyzerStats {
|
|
1281
1698
|
totalFrames: number;
|
|
1282
1699
|
totalSamples: number;
|
|
1283
1700
|
durationSeconds: number;
|
|
1284
1701
|
estimate: WasmProgressiveEstimate;
|
|
1285
1702
|
}
|
|
1286
1703
|
|
|
1287
|
-
interface WasmFrameBuffer {
|
|
1704
|
+
export interface WasmFrameBuffer {
|
|
1288
1705
|
nFrames: number;
|
|
1289
1706
|
timestamps: Float32Array;
|
|
1290
1707
|
mel: Float32Array;
|
|
@@ -1298,7 +1715,7 @@ interface WasmFrameBuffer {
|
|
|
1298
1715
|
chordConfidence: Float32Array;
|
|
1299
1716
|
}
|
|
1300
1717
|
|
|
1301
|
-
interface WasmStreamFramesU8 {
|
|
1718
|
+
export interface WasmStreamFramesU8 {
|
|
1302
1719
|
nFrames: number;
|
|
1303
1720
|
nMels: number;
|
|
1304
1721
|
timestamps: Float32Array;
|
|
@@ -1310,7 +1727,7 @@ interface WasmStreamFramesU8 {
|
|
|
1310
1727
|
spectralFlatness: Uint8Array;
|
|
1311
1728
|
}
|
|
1312
1729
|
|
|
1313
|
-
interface WasmStreamFramesI16 {
|
|
1730
|
+
export interface WasmStreamFramesI16 {
|
|
1314
1731
|
nFrames: number;
|
|
1315
1732
|
nMels: number;
|
|
1316
1733
|
timestamps: Float32Array;
|
|
@@ -1322,7 +1739,7 @@ interface WasmStreamFramesI16 {
|
|
|
1322
1739
|
spectralFlatness: Int16Array;
|
|
1323
1740
|
}
|
|
1324
1741
|
|
|
1325
|
-
interface WasmStreamAnalyzer {
|
|
1742
|
+
export interface WasmStreamAnalyzer {
|
|
1326
1743
|
process: (samples: Float32Array) => void;
|
|
1327
1744
|
processWithOffset: (samples: Float32Array, sampleOffset: number) => void;
|
|
1328
1745
|
availableFrames: () => number;
|