@libraz/libsonare 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -2
- package/dist/index.d.ts +1162 -18
- package/dist/index.js +1167 -14
- package/dist/index.js.map +1 -1
- package/dist/sonare-rt-module.js +2 -0
- package/dist/sonare-rt.js +2 -0
- package/dist/sonare-rt.wasm +0 -0
- package/dist/sonare.js +1 -1
- package/dist/sonare.wasm +0 -0
- package/dist/worklet.d.ts +447 -0
- package/dist/worklet.js +2078 -0
- package/dist/worklet.js.map +1 -0
- package/package.json +14 -4
- package/src/index.ts +1960 -63
- package/src/public_types.ts +461 -0
- package/src/sonare-rt.d.ts +93 -0
- package/src/sonare.js.d.ts +723 -2
- package/src/stream_types.ts +35 -0
- package/src/wasm_types.ts +706 -2
- package/src/worklet.ts +2140 -0
package/src/wasm_types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type ProgressCallback = (progress: number, stage: string) => void;
|
|
2
|
+
export type TempogramMode = 'autocorrelation' | 'auto' | 'ac' | 'cosine' | 0 | 1;
|
|
2
3
|
|
|
3
4
|
export interface WasmKeyResult {
|
|
4
5
|
root: number;
|
|
@@ -8,6 +9,11 @@ export interface WasmKeyResult {
|
|
|
8
9
|
shortName: string;
|
|
9
10
|
}
|
|
10
11
|
|
|
12
|
+
export interface WasmKeyCandidateResult {
|
|
13
|
+
key: WasmKeyResult;
|
|
14
|
+
correlation: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
11
17
|
export interface WasmBeatResult {
|
|
12
18
|
time: number;
|
|
13
19
|
strength: number;
|
|
@@ -15,6 +21,7 @@ export interface WasmBeatResult {
|
|
|
15
21
|
|
|
16
22
|
export interface WasmChordResult {
|
|
17
23
|
root: number;
|
|
24
|
+
bass: number;
|
|
18
25
|
quality: number;
|
|
19
26
|
start: number;
|
|
20
27
|
end: number;
|
|
@@ -72,6 +79,24 @@ export interface WasmAnalysisResult {
|
|
|
72
79
|
form: string;
|
|
73
80
|
}
|
|
74
81
|
|
|
82
|
+
export interface WasmChordAnalysisResult {
|
|
83
|
+
chords: WasmChordResult[];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface WasmAcousticResult {
|
|
87
|
+
rt60: number;
|
|
88
|
+
edt: number;
|
|
89
|
+
c50: number;
|
|
90
|
+
c80: number;
|
|
91
|
+
d50: number;
|
|
92
|
+
rt60Bands: Float32Array;
|
|
93
|
+
edtBands: Float32Array;
|
|
94
|
+
c50Bands: Float32Array;
|
|
95
|
+
c80Bands: Float32Array;
|
|
96
|
+
confidence: number;
|
|
97
|
+
isBlind: boolean;
|
|
98
|
+
}
|
|
99
|
+
|
|
75
100
|
export interface WasmHpssResult {
|
|
76
101
|
harmonic: Float32Array;
|
|
77
102
|
percussive: Float32Array;
|
|
@@ -111,6 +136,33 @@ export interface WasmMasteringStereoChainResult {
|
|
|
111
136
|
stages: string[];
|
|
112
137
|
}
|
|
113
138
|
|
|
139
|
+
export interface WasmMixMeterSnapshot {
|
|
140
|
+
peakDbL: number;
|
|
141
|
+
peakDbR: number;
|
|
142
|
+
rmsDbL: number;
|
|
143
|
+
rmsDbR: number;
|
|
144
|
+
correlation: number;
|
|
145
|
+
monoCompatWidth: number;
|
|
146
|
+
monoCompatPeak: number;
|
|
147
|
+
monoCompatSideRms: number;
|
|
148
|
+
likelyMonoCompatible: boolean;
|
|
149
|
+
momentaryLufs: number;
|
|
150
|
+
shortTermLufs: number;
|
|
151
|
+
integratedLufs: number;
|
|
152
|
+
gainReductionDb: number;
|
|
153
|
+
truePeakDbL: number;
|
|
154
|
+
truePeakDbR: number;
|
|
155
|
+
maxTruePeakDb: number;
|
|
156
|
+
seq: number;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface WasmMixResult {
|
|
160
|
+
left: Float32Array;
|
|
161
|
+
right: Float32Array;
|
|
162
|
+
sampleRate: number;
|
|
163
|
+
meters: WasmMixMeterSnapshot[];
|
|
164
|
+
}
|
|
165
|
+
|
|
114
166
|
export interface WasmStftResult {
|
|
115
167
|
nBins: number;
|
|
116
168
|
nFrames: number;
|
|
@@ -142,6 +194,18 @@ export interface WasmMfccResult {
|
|
|
142
194
|
coefficients: Float32Array;
|
|
143
195
|
}
|
|
144
196
|
|
|
197
|
+
export interface WasmStftPowerResult {
|
|
198
|
+
nBins: number;
|
|
199
|
+
nFrames: number;
|
|
200
|
+
power: Float32Array;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface WasmMelPowerResult {
|
|
204
|
+
nMels: number;
|
|
205
|
+
nFrames: number;
|
|
206
|
+
power: Float32Array;
|
|
207
|
+
}
|
|
208
|
+
|
|
145
209
|
export interface WasmChromaResult {
|
|
146
210
|
nChroma: number;
|
|
147
211
|
nFrames: number;
|
|
@@ -177,6 +241,54 @@ export interface WasmTempogramResult {
|
|
|
177
241
|
data: Float32Array;
|
|
178
242
|
}
|
|
179
243
|
|
|
244
|
+
export interface WasmCyclicTempogramResult {
|
|
245
|
+
nFrames: number;
|
|
246
|
+
nBins: number;
|
|
247
|
+
data: Float32Array;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export interface WasmFourierTempogramResult {
|
|
251
|
+
nBins: number;
|
|
252
|
+
nFrames: number;
|
|
253
|
+
data: Float32Array;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export interface WasmNnlsChromaResult {
|
|
257
|
+
nChroma: number;
|
|
258
|
+
nFrames: number;
|
|
259
|
+
data: Float32Array;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export interface WasmMelodyPoint {
|
|
263
|
+
time: number;
|
|
264
|
+
frequency: number;
|
|
265
|
+
confidence: number;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export interface WasmMelodyResult {
|
|
269
|
+
points: WasmMelodyPoint[];
|
|
270
|
+
pitchRangeOctaves: number;
|
|
271
|
+
pitchStability: number;
|
|
272
|
+
meanFrequency: number;
|
|
273
|
+
vibratoRate: number;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export interface WasmCqtResult {
|
|
277
|
+
nBins: number;
|
|
278
|
+
nFrames: number;
|
|
279
|
+
hopLength: number;
|
|
280
|
+
sampleRate: number;
|
|
281
|
+
magnitude: Float32Array;
|
|
282
|
+
frequencies: Float32Array;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export interface WasmLufsResult {
|
|
286
|
+
integratedLufs: number;
|
|
287
|
+
momentaryLufs: number;
|
|
288
|
+
shortTermLufs: number;
|
|
289
|
+
loudnessRange: number;
|
|
290
|
+
}
|
|
291
|
+
|
|
180
292
|
export interface WasmChordChange {
|
|
181
293
|
root: number;
|
|
182
294
|
quality: number;
|
|
@@ -207,6 +319,7 @@ export interface WasmProgressiveEstimate {
|
|
|
207
319
|
chordRoot: number;
|
|
208
320
|
chordQuality: number;
|
|
209
321
|
chordConfidence: number;
|
|
322
|
+
chordStartTime: number;
|
|
210
323
|
chordProgression: WasmChordChange[];
|
|
211
324
|
barChordProgression: WasmBarChord[];
|
|
212
325
|
currentBar: number;
|
|
@@ -242,6 +355,30 @@ export interface WasmFrameBuffer {
|
|
|
242
355
|
chordConfidence: Float32Array;
|
|
243
356
|
}
|
|
244
357
|
|
|
358
|
+
export interface WasmStreamFramesU8 {
|
|
359
|
+
nFrames: number;
|
|
360
|
+
nMels: number;
|
|
361
|
+
timestamps: Float32Array;
|
|
362
|
+
mel: Uint8Array;
|
|
363
|
+
chroma: Uint8Array;
|
|
364
|
+
onsetStrength: Uint8Array;
|
|
365
|
+
rmsEnergy: Uint8Array;
|
|
366
|
+
spectralCentroid: Uint8Array;
|
|
367
|
+
spectralFlatness: Uint8Array;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export interface WasmStreamFramesI16 {
|
|
371
|
+
nFrames: number;
|
|
372
|
+
nMels: number;
|
|
373
|
+
timestamps: Float32Array;
|
|
374
|
+
mel: Int16Array;
|
|
375
|
+
chroma: Int16Array;
|
|
376
|
+
onsetStrength: Int16Array;
|
|
377
|
+
rmsEnergy: Int16Array;
|
|
378
|
+
spectralCentroid: Int16Array;
|
|
379
|
+
spectralFlatness: Int16Array;
|
|
380
|
+
}
|
|
381
|
+
|
|
245
382
|
export interface WasmStreamingMasteringChain {
|
|
246
383
|
prepare: (sampleRate: number, maxBlockSize: number, numChannels: number) => void;
|
|
247
384
|
processMono: (samples: Float32Array) => Float32Array;
|
|
@@ -255,13 +392,356 @@ export interface WasmStreamingMasteringChain {
|
|
|
255
392
|
delete: () => void;
|
|
256
393
|
}
|
|
257
394
|
|
|
395
|
+
export interface WasmEqSpectrumSnapshot {
|
|
396
|
+
preLeft: Float32Array;
|
|
397
|
+
preRight: Float32Array;
|
|
398
|
+
postLeft: Float32Array;
|
|
399
|
+
postRight: Float32Array;
|
|
400
|
+
bandGainDb: Float32Array;
|
|
401
|
+
profileDb: Float32Array;
|
|
402
|
+
lastAutoGainDb: number;
|
|
403
|
+
seq: number;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export interface WasmStreamingEqualizer {
|
|
407
|
+
setBand: (index: number, band: Record<string, unknown>) => void;
|
|
408
|
+
clear: () => void;
|
|
409
|
+
setPhaseMode: (mode: number) => void;
|
|
410
|
+
setAutoGain: (enabled: boolean) => void;
|
|
411
|
+
setGainScale: (scale: number) => void;
|
|
412
|
+
setOutputGainDb: (gainDb: number) => void;
|
|
413
|
+
setOutputPan: (pan: number) => void;
|
|
414
|
+
setSidechainMono: (samples: Float32Array) => void;
|
|
415
|
+
setSidechainStereo: (left: Float32Array, right: Float32Array) => void;
|
|
416
|
+
clearSidechain: () => void;
|
|
417
|
+
lastAutoGainDb: () => number;
|
|
418
|
+
latencySamples: () => number;
|
|
419
|
+
processMono: (samples: Float32Array) => Float32Array;
|
|
420
|
+
processStereo: (
|
|
421
|
+
left: Float32Array,
|
|
422
|
+
right: Float32Array,
|
|
423
|
+
) => { left: Float32Array; right: Float32Array };
|
|
424
|
+
spectrum: () => WasmEqSpectrumSnapshot;
|
|
425
|
+
match: (source: Float32Array, reference: Float32Array, options: Record<string, unknown>) => void;
|
|
426
|
+
delete: () => void;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
export interface WasmStreamingRetune {
|
|
430
|
+
prepare: (sampleRate: number, maxBlockSize: number) => void;
|
|
431
|
+
reset: () => void;
|
|
432
|
+
setConfig: (config: Record<string, unknown>) => void;
|
|
433
|
+
config: () => { semitones: number; mix: number; grainSize: number };
|
|
434
|
+
grainSize: () => number;
|
|
435
|
+
processMono: (samples: Float32Array) => Float32Array;
|
|
436
|
+
delete: () => void;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
export interface WasmEngineClip {
|
|
440
|
+
id?: number;
|
|
441
|
+
channels: Float32Array[];
|
|
442
|
+
startPpq: number;
|
|
443
|
+
lengthSamples?: number;
|
|
444
|
+
clipOffsetSamples?: number;
|
|
445
|
+
loop?: boolean;
|
|
446
|
+
gain?: number;
|
|
447
|
+
fadeInSamples?: number;
|
|
448
|
+
fadeOutSamples?: number;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
export interface WasmEngineParameterInfo {
|
|
452
|
+
id: number;
|
|
453
|
+
name: string;
|
|
454
|
+
unit: string;
|
|
455
|
+
minValue: number;
|
|
456
|
+
maxValue: number;
|
|
457
|
+
defaultValue: number;
|
|
458
|
+
rtSafe: boolean;
|
|
459
|
+
defaultCurve: number;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
export interface WasmEngineAutomationPoint {
|
|
463
|
+
ppq: number;
|
|
464
|
+
value: number;
|
|
465
|
+
curveToNext?: number;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
export interface WasmEngineMarker {
|
|
469
|
+
id: number;
|
|
470
|
+
ppq: number;
|
|
471
|
+
name?: string;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
export interface WasmEngineMetronomeConfig {
|
|
475
|
+
enabled: boolean;
|
|
476
|
+
beatGain?: number;
|
|
477
|
+
accentGain?: number;
|
|
478
|
+
clickSamples?: number;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export interface WasmEngineGraphNode {
|
|
482
|
+
id: string;
|
|
483
|
+
type?: number;
|
|
484
|
+
gainDb?: number;
|
|
485
|
+
numPorts?: number;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
export interface WasmEngineGraphConnection {
|
|
489
|
+
sourceNode: string;
|
|
490
|
+
sourcePort: number;
|
|
491
|
+
destNode: string;
|
|
492
|
+
destPort: number;
|
|
493
|
+
mix?: number;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
export interface WasmEngineGraphParameterBinding {
|
|
497
|
+
paramId: number;
|
|
498
|
+
nodeId: string;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
export interface WasmEngineGraphSpec {
|
|
502
|
+
nodes: WasmEngineGraphNode[];
|
|
503
|
+
connections: WasmEngineGraphConnection[];
|
|
504
|
+
inputNode: string;
|
|
505
|
+
outputNode: string;
|
|
506
|
+
numChannels: number;
|
|
507
|
+
parameterBindings?: WasmEngineGraphParameterBinding[];
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
export interface WasmEngineTelemetry {
|
|
511
|
+
type: number;
|
|
512
|
+
error: number;
|
|
513
|
+
renderFrame: number;
|
|
514
|
+
timelineSample: number;
|
|
515
|
+
audibleTimelineSample: number;
|
|
516
|
+
graphLatencySamplesQ8: number;
|
|
517
|
+
value: number;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
export interface WasmEngineMeterTelemetry {
|
|
521
|
+
targetId: number;
|
|
522
|
+
renderFrame: number;
|
|
523
|
+
seq: number;
|
|
524
|
+
peakDbL: number;
|
|
525
|
+
peakDbR: number;
|
|
526
|
+
rmsDbL: number;
|
|
527
|
+
rmsDbR: number;
|
|
528
|
+
truePeakDbL: number;
|
|
529
|
+
truePeakDbR: number;
|
|
530
|
+
maxTruePeakDb: number;
|
|
531
|
+
correlation: number;
|
|
532
|
+
monoCompatWidth: number;
|
|
533
|
+
momentaryLufs: number;
|
|
534
|
+
shortTermLufs: number;
|
|
535
|
+
integratedLufs: number;
|
|
536
|
+
gainReductionDb: number;
|
|
537
|
+
droppedRecords: number;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
export interface WasmEngineCaptureStatus {
|
|
541
|
+
capturedFrames: number;
|
|
542
|
+
overflowCount: number;
|
|
543
|
+
armed: boolean;
|
|
544
|
+
punchEnabled: boolean;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
export interface WasmEngineTransportState {
|
|
548
|
+
playing: boolean;
|
|
549
|
+
looping: boolean;
|
|
550
|
+
renderFrame: number;
|
|
551
|
+
samplePosition: number;
|
|
552
|
+
ppq: number;
|
|
553
|
+
bpm: number;
|
|
554
|
+
loopStartPpq: number;
|
|
555
|
+
loopEndPpq: number;
|
|
556
|
+
sampleRate: number;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
export interface WasmEngineBounceOptions {
|
|
560
|
+
totalFrames: number;
|
|
561
|
+
blockSize?: number;
|
|
562
|
+
numChannels?: number;
|
|
563
|
+
targetSampleRate?: number;
|
|
564
|
+
sourceSampleRate?: number;
|
|
565
|
+
normalizeLufs?: boolean;
|
|
566
|
+
targetLufs?: number;
|
|
567
|
+
dither?: 0 | 1 | 2 | 3;
|
|
568
|
+
ditherBits?: number;
|
|
569
|
+
ditherSeed?: number;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
export interface WasmEngineBounceResult {
|
|
573
|
+
interleaved: Float32Array;
|
|
574
|
+
frames: number;
|
|
575
|
+
numChannels: number;
|
|
576
|
+
sampleRate: number;
|
|
577
|
+
integratedLufs: number;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
export interface WasmEngineFreezeOptions {
|
|
581
|
+
totalFrames: number;
|
|
582
|
+
blockSize?: number;
|
|
583
|
+
numChannels?: number;
|
|
584
|
+
clipId?: number;
|
|
585
|
+
startPpq?: number;
|
|
586
|
+
gain?: number;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
export interface WasmEngineFreezeResult {
|
|
590
|
+
clipId: number;
|
|
591
|
+
frames: number;
|
|
592
|
+
numChannels: number;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
export interface WasmEngineProcessWithMonitorResult {
|
|
596
|
+
output: Float32Array[];
|
|
597
|
+
monitor: Float32Array[];
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
export interface WasmRealtimeEngine {
|
|
601
|
+
prepare: (
|
|
602
|
+
sampleRate: number,
|
|
603
|
+
maxBlockSize: number,
|
|
604
|
+
commandCapacity: number,
|
|
605
|
+
telemetryCapacity: number,
|
|
606
|
+
) => void;
|
|
607
|
+
setParameter: (paramId: number, value: number, renderFrame: number) => void;
|
|
608
|
+
setParameterSmoothed: (paramId: number, value: number, renderFrame: number) => void;
|
|
609
|
+
getTransportState: () => WasmEngineTransportState;
|
|
610
|
+
play: (renderFrame: number) => void;
|
|
611
|
+
stop: (renderFrame: number) => void;
|
|
612
|
+
seekSample: (timelineSample: number, renderFrame: number) => void;
|
|
613
|
+
seekPpq: (ppq: number, renderFrame: number) => void;
|
|
614
|
+
setTempo: (bpm: number) => void;
|
|
615
|
+
setTimeSignature: (numerator: number, denominator: number) => void;
|
|
616
|
+
setLoop: (startPpq: number, endPpq: number, enabled: boolean) => void;
|
|
617
|
+
addParameter: (info: WasmEngineParameterInfo) => void;
|
|
618
|
+
parameterCount: () => number;
|
|
619
|
+
parameterInfoByIndex: (index: number) => WasmEngineParameterInfo;
|
|
620
|
+
parameterInfo: (id: number) => WasmEngineParameterInfo;
|
|
621
|
+
setAutomationLane: (paramId: number, points: WasmEngineAutomationPoint[]) => void;
|
|
622
|
+
automationLaneCount: () => number;
|
|
623
|
+
setMarkers: (markers: WasmEngineMarker[]) => void;
|
|
624
|
+
markerCount: () => number;
|
|
625
|
+
markerByIndex: (index: number) => WasmEngineMarker;
|
|
626
|
+
marker: (id: number) => WasmEngineMarker;
|
|
627
|
+
seekMarker: (id: number, renderFrame: number) => void;
|
|
628
|
+
setLoopFromMarkers: (startMarkerId: number, endMarkerId: number) => void;
|
|
629
|
+
setMetronome: (config: WasmEngineMetronomeConfig) => void;
|
|
630
|
+
metronome: () => Required<WasmEngineMetronomeConfig>;
|
|
631
|
+
countInEndSample: (startSample: number, bars: number) => number;
|
|
632
|
+
setGraph: (spec: WasmEngineGraphSpec) => void;
|
|
633
|
+
graphNodeCount: () => number;
|
|
634
|
+
graphConnectionCount: () => number;
|
|
635
|
+
setClips: (clips: WasmEngineClip[]) => void;
|
|
636
|
+
clipCount: () => number;
|
|
637
|
+
setCaptureBuffer: (numChannels: number, capacityFrames: number) => void;
|
|
638
|
+
armCapture: (armed: boolean) => void;
|
|
639
|
+
setCapturePunch: (startSample: number, endSample: number, enabled: boolean) => void;
|
|
640
|
+
resetCapture: () => void;
|
|
641
|
+
captureStatus: () => WasmEngineCaptureStatus;
|
|
642
|
+
capturedAudio: () => Float32Array[];
|
|
643
|
+
process: (channels: Float32Array[]) => Float32Array[];
|
|
644
|
+
processWithMonitor: (channels: Float32Array[]) => WasmEngineProcessWithMonitorResult;
|
|
645
|
+
renderOffline: (channels: Float32Array[], blockSize: number) => Float32Array[];
|
|
646
|
+
bounceOffline: (options: WasmEngineBounceOptions) => WasmEngineBounceResult;
|
|
647
|
+
freezeOffline: (options: WasmEngineFreezeOptions) => WasmEngineFreezeResult;
|
|
648
|
+
drainTelemetry: (maxRecords: number) => WasmEngineTelemetry[];
|
|
649
|
+
drainMeterTelemetry: (maxRecords: number) => WasmEngineMeterTelemetry[];
|
|
650
|
+
delete: () => void;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
export interface WasmMixer {
|
|
654
|
+
compile: () => void;
|
|
655
|
+
processStereo: (
|
|
656
|
+
leftChannels: Float32Array[],
|
|
657
|
+
rightChannels: Float32Array[],
|
|
658
|
+
) => { left: Float32Array; right: Float32Array; sampleRate: number };
|
|
659
|
+
processStereoInto: (
|
|
660
|
+
leftChannels: Float32Array[],
|
|
661
|
+
rightChannels: Float32Array[],
|
|
662
|
+
outLeft: Float32Array,
|
|
663
|
+
outRight: Float32Array,
|
|
664
|
+
) => void;
|
|
665
|
+
inputLeftView: (index: number) => Float32Array;
|
|
666
|
+
inputRightView: (index: number) => Float32Array;
|
|
667
|
+
outputLeftView: () => Float32Array;
|
|
668
|
+
outputRightView: () => Float32Array;
|
|
669
|
+
processPreparedStereo: (numSamples: number) => void;
|
|
670
|
+
stripCount: () => number;
|
|
671
|
+
scheduleInsertAutomation: (
|
|
672
|
+
stripIndex: number,
|
|
673
|
+
insertIndex: number,
|
|
674
|
+
paramId: number,
|
|
675
|
+
samplePos: number,
|
|
676
|
+
value: number,
|
|
677
|
+
curve: number,
|
|
678
|
+
) => void;
|
|
679
|
+
stripById: (id: string) => number;
|
|
680
|
+
setSoloed: (stripIndex: number, soloed: boolean) => void;
|
|
681
|
+
setSoloSafe: (stripIndex: number, soloSafe: boolean) => void;
|
|
682
|
+
setPolarityInvert: (stripIndex: number, invertLeft: boolean, invertRight: boolean) => void;
|
|
683
|
+
setPanLaw: (stripIndex: number, panLaw: number) => void;
|
|
684
|
+
setChannelDelaySamples: (stripIndex: number, delaySamples: number) => void;
|
|
685
|
+
setVcaOffsetDb: (stripIndex: number, offsetDb: number) => void;
|
|
686
|
+
setDualPan: (stripIndex: number, leftPan: number, rightPan: number) => void;
|
|
687
|
+
addSend: (
|
|
688
|
+
stripIndex: number,
|
|
689
|
+
id: string,
|
|
690
|
+
destinationBusId: string,
|
|
691
|
+
sendDb: number,
|
|
692
|
+
timing: number,
|
|
693
|
+
) => number;
|
|
694
|
+
setSendDb: (stripIndex: number, sendIndex: number, sendDb: number) => void;
|
|
695
|
+
meterTap: (stripIndex: number, tap: number) => WasmMixMeterSnapshot;
|
|
696
|
+
stripMeter: (stripIndex: number, tap: number) => WasmMixMeterSnapshot;
|
|
697
|
+
scheduleFaderAutomation: (
|
|
698
|
+
stripIndex: number,
|
|
699
|
+
samplePos: number,
|
|
700
|
+
faderDb: number,
|
|
701
|
+
curve: number,
|
|
702
|
+
) => void;
|
|
703
|
+
schedulePanAutomation: (
|
|
704
|
+
stripIndex: number,
|
|
705
|
+
samplePos: number,
|
|
706
|
+
pan: number,
|
|
707
|
+
curve: number,
|
|
708
|
+
) => void;
|
|
709
|
+
scheduleWidthAutomation: (
|
|
710
|
+
stripIndex: number,
|
|
711
|
+
samplePos: number,
|
|
712
|
+
width: number,
|
|
713
|
+
curve: number,
|
|
714
|
+
) => void;
|
|
715
|
+
scheduleSendAutomation: (
|
|
716
|
+
stripIndex: number,
|
|
717
|
+
sendIndex: number,
|
|
718
|
+
samplePos: number,
|
|
719
|
+
db: number,
|
|
720
|
+
curve: number,
|
|
721
|
+
) => void;
|
|
722
|
+
readGoniometerLatest: (stripIndex: number, maxPoints: number) => WasmGoniometerPoint[];
|
|
723
|
+
addBus: (id: string, role: string) => void;
|
|
724
|
+
removeBus: (id: string) => void;
|
|
725
|
+
busCount: () => number;
|
|
726
|
+
addVcaGroup: (id: string, gainDb: number, members: string[]) => void;
|
|
727
|
+
removeVcaGroup: (id: string) => void;
|
|
728
|
+
vcaGroupCount: () => number;
|
|
729
|
+
toSceneJson: () => string;
|
|
730
|
+
delete: () => void;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
export interface WasmGoniometerPoint {
|
|
734
|
+
left: number;
|
|
735
|
+
right: number;
|
|
736
|
+
}
|
|
737
|
+
|
|
258
738
|
export interface WasmStreamAnalyzer {
|
|
259
739
|
process: (samples: Float32Array) => void;
|
|
260
740
|
processWithOffset: (samples: Float32Array, sampleOffset: number) => void;
|
|
261
741
|
availableFrames: () => number;
|
|
262
742
|
readFramesSoa: (maxFrames: number) => WasmFrameBuffer;
|
|
263
|
-
readFramesU8: (maxFrames: number) =>
|
|
264
|
-
readFramesI16: (maxFrames: number) =>
|
|
743
|
+
readFramesU8: (maxFrames: number) => WasmStreamFramesU8;
|
|
744
|
+
readFramesI16: (maxFrames: number) => WasmStreamFramesI16;
|
|
265
745
|
reset: (baseSampleOffset?: number) => void;
|
|
266
746
|
stats: () => WasmAnalyzerStats;
|
|
267
747
|
frameCount: () => number;
|
|
@@ -276,15 +756,72 @@ export interface WasmStreamAnalyzer {
|
|
|
276
756
|
export interface SonareModule {
|
|
277
757
|
detectBpm: (samples: Float32Array, sampleRate: number) => number;
|
|
278
758
|
detectKey: (samples: Float32Array, sampleRate: number) => WasmKeyResult;
|
|
759
|
+
_detectKeyWithOptions: (
|
|
760
|
+
samples: Float32Array,
|
|
761
|
+
sampleRate: number,
|
|
762
|
+
nFft: number,
|
|
763
|
+
hopLength: number,
|
|
764
|
+
useHpss: boolean,
|
|
765
|
+
loudnessWeighted: boolean,
|
|
766
|
+
highPassHz: number,
|
|
767
|
+
modes: number[],
|
|
768
|
+
profileType: number,
|
|
769
|
+
genreHint: string,
|
|
770
|
+
) => WasmKeyResult;
|
|
771
|
+
_detectKeyCandidates: (
|
|
772
|
+
samples: Float32Array,
|
|
773
|
+
sampleRate: number,
|
|
774
|
+
nFft: number,
|
|
775
|
+
hopLength: number,
|
|
776
|
+
useHpss: boolean,
|
|
777
|
+
loudnessWeighted: boolean,
|
|
778
|
+
highPassHz: number,
|
|
779
|
+
modes: number[],
|
|
780
|
+
profileType: number,
|
|
781
|
+
genreHint: string,
|
|
782
|
+
) => WasmKeyCandidateResult[];
|
|
279
783
|
detectOnsets: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
280
784
|
detectBeats: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
785
|
+
detectDownbeats: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
786
|
+
detectChords: (
|
|
787
|
+
samples: Float32Array,
|
|
788
|
+
sampleRate: number,
|
|
789
|
+
minDuration: number,
|
|
790
|
+
smoothingWindow: number,
|
|
791
|
+
threshold: number,
|
|
792
|
+
useTriadsOnly: boolean,
|
|
793
|
+
nFft: number,
|
|
794
|
+
hopLength: number,
|
|
795
|
+
useBeatSync: boolean,
|
|
796
|
+
useHmm: boolean,
|
|
797
|
+
hmmBeamWidth: number,
|
|
798
|
+
useKeyContext: boolean,
|
|
799
|
+
keyRoot: number,
|
|
800
|
+
keyMode: number,
|
|
801
|
+
detectInversions: boolean,
|
|
802
|
+
chromaMethod: number,
|
|
803
|
+
) => WasmChordAnalysisResult;
|
|
281
804
|
analyze: (samples: Float32Array, sampleRate: number) => WasmAnalysisResult;
|
|
805
|
+
analyzeImpulseResponse: (
|
|
806
|
+
samples: Float32Array,
|
|
807
|
+
sampleRate: number,
|
|
808
|
+
nOctaveBands: number,
|
|
809
|
+
) => WasmAcousticResult;
|
|
810
|
+
detectAcoustic: (
|
|
811
|
+
samples: Float32Array,
|
|
812
|
+
sampleRate: number,
|
|
813
|
+
nOctaveBands: number,
|
|
814
|
+
nThirdOctaveSubbands: number,
|
|
815
|
+
minDecayDb: number,
|
|
816
|
+
noiseFloorMarginDb: number,
|
|
817
|
+
) => WasmAcousticResult;
|
|
282
818
|
analyzeWithProgress: (
|
|
283
819
|
samples: Float32Array,
|
|
284
820
|
sampleRate: number,
|
|
285
821
|
progressCallback: ProgressCallback | null,
|
|
286
822
|
) => WasmAnalysisResult;
|
|
287
823
|
version: () => string;
|
|
824
|
+
engineAbiVersion: () => number;
|
|
288
825
|
|
|
289
826
|
hpss: (
|
|
290
827
|
samples: Float32Array,
|
|
@@ -296,6 +833,25 @@ export interface SonareModule {
|
|
|
296
833
|
percussive: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
297
834
|
timeStretch: (samples: Float32Array, sampleRate: number, rate: number) => Float32Array;
|
|
298
835
|
pitchShift: (samples: Float32Array, sampleRate: number, semitones: number) => Float32Array;
|
|
836
|
+
pitchCorrectToMidi: (
|
|
837
|
+
samples: Float32Array,
|
|
838
|
+
sampleRate: number,
|
|
839
|
+
currentMidi: number,
|
|
840
|
+
targetMidi: number,
|
|
841
|
+
) => Float32Array;
|
|
842
|
+
noteStretch: (
|
|
843
|
+
samples: Float32Array,
|
|
844
|
+
sampleRate: number,
|
|
845
|
+
onsetSample: number,
|
|
846
|
+
offsetSample: number,
|
|
847
|
+
stretchRatio: number,
|
|
848
|
+
) => Float32Array;
|
|
849
|
+
voiceChange: (
|
|
850
|
+
samples: Float32Array,
|
|
851
|
+
sampleRate: number,
|
|
852
|
+
pitchSemitones: number,
|
|
853
|
+
formantFactor: number,
|
|
854
|
+
) => Float32Array;
|
|
299
855
|
normalize: (samples: Float32Array, sampleRate: number, targetDb: number) => Float32Array;
|
|
300
856
|
mastering: (
|
|
301
857
|
samples: Float32Array,
|
|
@@ -342,6 +898,21 @@ export interface SonareModule {
|
|
|
342
898
|
sampleRate: number,
|
|
343
899
|
params: Record<string, number | boolean>,
|
|
344
900
|
) => string;
|
|
901
|
+
masteringAssistantSuggest: (
|
|
902
|
+
samples: Float32Array,
|
|
903
|
+
sampleRate: number,
|
|
904
|
+
params: Record<string, number | boolean>,
|
|
905
|
+
) => string;
|
|
906
|
+
masteringAudioProfile: (
|
|
907
|
+
samples: Float32Array,
|
|
908
|
+
sampleRate: number,
|
|
909
|
+
params: Record<string, number | boolean>,
|
|
910
|
+
) => string;
|
|
911
|
+
masteringStreamingPreview: (
|
|
912
|
+
samples: Float32Array,
|
|
913
|
+
sampleRate: number,
|
|
914
|
+
platforms: Array<{ name: string; targetLufs: number; ceilingDb: number }>,
|
|
915
|
+
) => string;
|
|
345
916
|
masteringChain: (
|
|
346
917
|
samples: Float32Array,
|
|
347
918
|
sampleRate: number,
|
|
@@ -380,6 +951,14 @@ export interface SonareModule {
|
|
|
380
951
|
sampleRate: number,
|
|
381
952
|
overrides: Record<string, number | boolean> | null,
|
|
382
953
|
) => WasmMasteringStereoChainResult;
|
|
954
|
+
mixingScenePresetNames: () => string[];
|
|
955
|
+
mixingScenePresetJson: (presetName: string) => string;
|
|
956
|
+
mixStereo: (
|
|
957
|
+
leftChannels: Float32Array[],
|
|
958
|
+
rightChannels: Float32Array[],
|
|
959
|
+
sampleRate: number,
|
|
960
|
+
options: Record<string, unknown>,
|
|
961
|
+
) => WasmMixResult;
|
|
383
962
|
trim: (samples: Float32Array, sampleRate: number, thresholdDb: number) => Float32Array;
|
|
384
963
|
|
|
385
964
|
stft: (
|
|
@@ -411,6 +990,46 @@ export interface SonareModule {
|
|
|
411
990
|
nMfcc: number,
|
|
412
991
|
) => WasmMfccResult;
|
|
413
992
|
|
|
993
|
+
melToStft: (
|
|
994
|
+
melPower: Float32Array,
|
|
995
|
+
nMels: number,
|
|
996
|
+
nFrames: number,
|
|
997
|
+
sampleRate: number,
|
|
998
|
+
nFft: number,
|
|
999
|
+
hopLength: number,
|
|
1000
|
+
fmin: number,
|
|
1001
|
+
fmax: number,
|
|
1002
|
+
) => WasmStftPowerResult;
|
|
1003
|
+
melToAudio: (
|
|
1004
|
+
melPower: Float32Array,
|
|
1005
|
+
nMels: number,
|
|
1006
|
+
nFrames: number,
|
|
1007
|
+
sampleRate: number,
|
|
1008
|
+
nFft: number,
|
|
1009
|
+
hopLength: number,
|
|
1010
|
+
nIter: number,
|
|
1011
|
+
fmin: number,
|
|
1012
|
+
fmax: number,
|
|
1013
|
+
) => Float32Array;
|
|
1014
|
+
mfccToMel: (
|
|
1015
|
+
mfcc: Float32Array,
|
|
1016
|
+
nMfcc: number,
|
|
1017
|
+
nFrames: number,
|
|
1018
|
+
nMels: number,
|
|
1019
|
+
) => WasmMelPowerResult;
|
|
1020
|
+
mfccToAudio: (
|
|
1021
|
+
mfcc: Float32Array,
|
|
1022
|
+
nMfcc: number,
|
|
1023
|
+
nFrames: number,
|
|
1024
|
+
nMels: number,
|
|
1025
|
+
sampleRate: number,
|
|
1026
|
+
nFft: number,
|
|
1027
|
+
hopLength: number,
|
|
1028
|
+
nIter: number,
|
|
1029
|
+
fmin: number,
|
|
1030
|
+
fmax: number,
|
|
1031
|
+
) => Float32Array;
|
|
1032
|
+
|
|
414
1033
|
chroma: (
|
|
415
1034
|
samples: Float32Array,
|
|
416
1035
|
sampleRate: number,
|
|
@@ -529,7 +1148,16 @@ export interface SonareModule {
|
|
|
529
1148
|
sampleRate: number,
|
|
530
1149
|
hopLength: number,
|
|
531
1150
|
winLength: number,
|
|
1151
|
+
mode: TempogramMode,
|
|
532
1152
|
) => WasmTempogramResult;
|
|
1153
|
+
cyclicTempogram: (
|
|
1154
|
+
onsetEnvelope: Float32Array,
|
|
1155
|
+
sampleRate: number,
|
|
1156
|
+
hopLength: number,
|
|
1157
|
+
winLength: number,
|
|
1158
|
+
bpmMin: number,
|
|
1159
|
+
nBins: number,
|
|
1160
|
+
) => WasmCyclicTempogramResult;
|
|
533
1161
|
plp: (
|
|
534
1162
|
onsetEnvelope: Float32Array,
|
|
535
1163
|
sampleRate: number,
|
|
@@ -538,6 +1166,62 @@ export interface SonareModule {
|
|
|
538
1166
|
tempoMax: number,
|
|
539
1167
|
winLength: number,
|
|
540
1168
|
) => Float32Array;
|
|
1169
|
+
nnlsChroma: (samples: Float32Array, sampleRate: number) => WasmNnlsChromaResult;
|
|
1170
|
+
cqt: (
|
|
1171
|
+
samples: Float32Array,
|
|
1172
|
+
sampleRate: number,
|
|
1173
|
+
hopLength: number,
|
|
1174
|
+
fmin: number,
|
|
1175
|
+
nBins: number,
|
|
1176
|
+
binsPerOctave: number,
|
|
1177
|
+
) => WasmCqtResult;
|
|
1178
|
+
vqt: (
|
|
1179
|
+
samples: Float32Array,
|
|
1180
|
+
sampleRate: number,
|
|
1181
|
+
hopLength: number,
|
|
1182
|
+
fmin: number,
|
|
1183
|
+
nBins: number,
|
|
1184
|
+
binsPerOctave: number,
|
|
1185
|
+
gamma: number,
|
|
1186
|
+
) => WasmCqtResult;
|
|
1187
|
+
analyzeSections: (
|
|
1188
|
+
samples: Float32Array,
|
|
1189
|
+
sampleRate: number,
|
|
1190
|
+
nFft: number,
|
|
1191
|
+
hopLength: number,
|
|
1192
|
+
minSectionSec: number,
|
|
1193
|
+
) => WasmSectionResult[];
|
|
1194
|
+
analyzeMelody: (
|
|
1195
|
+
samples: Float32Array,
|
|
1196
|
+
sampleRate: number,
|
|
1197
|
+
fmin: number,
|
|
1198
|
+
fmax: number,
|
|
1199
|
+
frameLength: number,
|
|
1200
|
+
hopLength: number,
|
|
1201
|
+
threshold: number,
|
|
1202
|
+
) => WasmMelodyResult;
|
|
1203
|
+
onsetEnvelope: (
|
|
1204
|
+
samples: Float32Array,
|
|
1205
|
+
sampleRate: number,
|
|
1206
|
+
nFft: number,
|
|
1207
|
+
hopLength: number,
|
|
1208
|
+
nMels: number,
|
|
1209
|
+
) => Float32Array;
|
|
1210
|
+
fourierTempogram: (
|
|
1211
|
+
onsetEnvelope: Float32Array,
|
|
1212
|
+
sampleRate: number,
|
|
1213
|
+
hopLength: number,
|
|
1214
|
+
winLength: number,
|
|
1215
|
+
) => WasmFourierTempogramResult;
|
|
1216
|
+
tempogramRatio: (
|
|
1217
|
+
tempogramData: Float32Array,
|
|
1218
|
+
winLength: number,
|
|
1219
|
+
sampleRate: number,
|
|
1220
|
+
hopLength: number,
|
|
1221
|
+
) => Float32Array;
|
|
1222
|
+
lufs: (samples: Float32Array, sampleRate: number) => WasmLufsResult;
|
|
1223
|
+
momentaryLufs: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
1224
|
+
shortTermLufs: (samples: Float32Array, sampleRate: number) => Float32Array;
|
|
541
1225
|
resample: (samples: Float32Array, srcSr: number, targetSr: number) => Float32Array;
|
|
542
1226
|
|
|
543
1227
|
StreamAnalyzer: new (
|
|
@@ -545,11 +1229,31 @@ export interface SonareModule {
|
|
|
545
1229
|
nFft: number,
|
|
546
1230
|
hopLength: number,
|
|
547
1231
|
nMels: number,
|
|
1232
|
+
fmin: number,
|
|
1233
|
+
fmax: number,
|
|
1234
|
+
tuningRefHz: number,
|
|
1235
|
+
computeMagnitude: boolean,
|
|
548
1236
|
computeMel: boolean,
|
|
549
1237
|
computeChroma: boolean,
|
|
550
1238
|
computeOnset: boolean,
|
|
1239
|
+
computeSpectral: boolean,
|
|
551
1240
|
emitEveryNFrames: number,
|
|
1241
|
+
magnitudeDownsample: number,
|
|
1242
|
+
keyUpdateIntervalSec: number,
|
|
1243
|
+
bpmUpdateIntervalSec: number,
|
|
1244
|
+
window: number,
|
|
1245
|
+
outputFormat: number,
|
|
552
1246
|
) => WasmStreamAnalyzer;
|
|
1247
|
+
RealtimeEngine: new (
|
|
1248
|
+
sampleRate: number,
|
|
1249
|
+
maxBlockSize: number,
|
|
1250
|
+
commandCapacity: number,
|
|
1251
|
+
telemetryCapacity: number,
|
|
1252
|
+
) => WasmRealtimeEngine;
|
|
553
1253
|
|
|
554
1254
|
createStreamingMasteringChain: (config: Record<string, unknown>) => WasmStreamingMasteringChain;
|
|
1255
|
+
createEqualizer: (config: Record<string, unknown>) => WasmStreamingEqualizer;
|
|
1256
|
+
createStreamingRetune: (config: Record<string, unknown>) => WasmStreamingRetune;
|
|
1257
|
+
createMixerFromSceneJson: (json: string, sampleRate: number, blockSize: number) => WasmMixer;
|
|
1258
|
+
mixerPresetJson: (presetName: string) => string;
|
|
555
1259
|
}
|