@libraz/libsonare 1.2.3 → 1.3.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 +38 -1
- package/dist/index.d.ts +1 -2842
- package/dist/index.js +3667 -1984
- package/dist/index.js.map +1 -1
- package/dist/sonare-rt-module.js +1 -1
- package/dist/sonare-rt.js +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 +4816 -483
- package/dist/worklet.js +747 -440
- package/dist/worklet.js.map +1 -1
- package/package.json +2 -1
- package/src/analysis_helpers.ts +152 -0
- package/src/audio.ts +493 -0
- package/src/codes.ts +56 -0
- package/src/effects_mastering.ts +964 -0
- package/src/feature_core.ts +248 -0
- package/src/feature_music.ts +419 -0
- package/src/feature_pitch.ts +80 -0
- package/src/feature_resample.ts +21 -0
- package/src/feature_spectral.ts +330 -0
- package/src/feature_spectrogram.ts +454 -0
- package/src/features.ts +84 -0
- package/src/index.ts +341 -4963
- package/src/live_audio.ts +47 -0
- package/src/metering.ts +380 -0
- package/src/mixer.ts +523 -0
- package/src/module_state.ts +14 -0
- package/src/opfs_clip_pages.ts +203 -0
- package/src/project.ts +1614 -0
- package/src/public_types.ts +177 -2
- package/src/quick_analysis.ts +508 -0
- package/src/realtime_engine.ts +667 -0
- package/src/realtime_voice_changer.ts +275 -0
- package/src/scale.ts +42 -0
- package/src/sonare.js.d.ts +302 -4
- package/src/stream_analyzer.ts +275 -0
- package/src/stream_types.ts +26 -1
- package/src/streaming_mixing.ts +18 -0
- package/src/streaming_processors.ts +335 -0
- package/src/validation.ts +82 -0
- package/src/web_midi.ts +366 -0
package/src/sonare.js.d.ts
CHANGED
|
@@ -98,6 +98,8 @@ export interface WasmTimbreResult {
|
|
|
98
98
|
|
|
99
99
|
export interface WasmDynamicsResult {
|
|
100
100
|
dynamicRangeDb: number;
|
|
101
|
+
peakDb: number;
|
|
102
|
+
rmsDb: number;
|
|
101
103
|
loudnessRangeDb: number;
|
|
102
104
|
crestFactor: number;
|
|
103
105
|
isCompressed: boolean;
|
|
@@ -107,6 +109,8 @@ export interface WasmRhythmResult {
|
|
|
107
109
|
syncopation: number;
|
|
108
110
|
grooveType: string;
|
|
109
111
|
patternRegularity: number;
|
|
112
|
+
tempoStability: number;
|
|
113
|
+
timeSignature: WasmTimeSignatureResult;
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
export interface WasmTimeSignatureResult {
|
|
@@ -115,6 +119,14 @@ export interface WasmTimeSignatureResult {
|
|
|
115
119
|
confidence: number;
|
|
116
120
|
}
|
|
117
121
|
|
|
122
|
+
export interface WasmMelodyContourResult {
|
|
123
|
+
pitchRangeOctaves: number;
|
|
124
|
+
pitchStability: number;
|
|
125
|
+
meanFrequency: number;
|
|
126
|
+
vibratoRate: number;
|
|
127
|
+
pitches: WasmMelodyPoint[];
|
|
128
|
+
}
|
|
129
|
+
|
|
118
130
|
export interface WasmAnalysisResult {
|
|
119
131
|
bpm: number;
|
|
120
132
|
bpmConfidence: number;
|
|
@@ -126,6 +138,7 @@ export interface WasmAnalysisResult {
|
|
|
126
138
|
timbre: WasmTimbreResult;
|
|
127
139
|
dynamics: WasmDynamicsResult;
|
|
128
140
|
rhythm: WasmRhythmResult;
|
|
141
|
+
melody: WasmMelodyContourResult;
|
|
129
142
|
form: string;
|
|
130
143
|
}
|
|
131
144
|
|
|
@@ -163,6 +176,27 @@ export interface WasmDynamicsAnalysisResult {
|
|
|
163
176
|
loudnessRmsDb: Float32Array;
|
|
164
177
|
}
|
|
165
178
|
|
|
179
|
+
export interface WasmStreamConfigDefaults {
|
|
180
|
+
sampleRate: number;
|
|
181
|
+
nFft: number;
|
|
182
|
+
hopLength: number;
|
|
183
|
+
nMels: number;
|
|
184
|
+
fmin: number;
|
|
185
|
+
fmax: number;
|
|
186
|
+
tuningRefHz: number;
|
|
187
|
+
computeMagnitude: boolean;
|
|
188
|
+
computeMel: boolean;
|
|
189
|
+
computeChroma: boolean;
|
|
190
|
+
computeOnset: boolean;
|
|
191
|
+
computeSpectral: boolean;
|
|
192
|
+
emitEveryNFrames: number;
|
|
193
|
+
magnitudeDownsample: number;
|
|
194
|
+
keyUpdateIntervalSec: number;
|
|
195
|
+
bpmUpdateIntervalSec: number;
|
|
196
|
+
window: number;
|
|
197
|
+
outputFormat: number;
|
|
198
|
+
}
|
|
199
|
+
|
|
166
200
|
export interface WasmTimbreFrameResult {
|
|
167
201
|
brightness: number;
|
|
168
202
|
warmth: number;
|
|
@@ -206,6 +240,9 @@ export interface WasmRoomGeometryOptions {
|
|
|
206
240
|
widthM?: number;
|
|
207
241
|
heightM?: number;
|
|
208
242
|
absorption?: number;
|
|
243
|
+
materialPreset?: number;
|
|
244
|
+
bandAbsorption?: Float32Array | number[];
|
|
245
|
+
bandScattering?: Float32Array | number[];
|
|
209
246
|
sourceX?: number;
|
|
210
247
|
sourceY?: number;
|
|
211
248
|
sourceZ?: number;
|
|
@@ -263,6 +300,11 @@ export interface WasmHpssResult {
|
|
|
263
300
|
sampleRate: number;
|
|
264
301
|
}
|
|
265
302
|
|
|
303
|
+
export interface WasmAudioFromMemoryResult {
|
|
304
|
+
samples: Float32Array;
|
|
305
|
+
sampleRate: number;
|
|
306
|
+
}
|
|
307
|
+
|
|
266
308
|
export interface WasmHpssWithResidualResult {
|
|
267
309
|
harmonic: Float32Array;
|
|
268
310
|
percussive: Float32Array;
|
|
@@ -372,6 +414,12 @@ export interface WasmFourierTempogramResult {
|
|
|
372
414
|
data: Float32Array;
|
|
373
415
|
}
|
|
374
416
|
|
|
417
|
+
export interface WasmOnsetStrengthMultiResult {
|
|
418
|
+
nBands: number;
|
|
419
|
+
nFrames: number;
|
|
420
|
+
data: Float32Array;
|
|
421
|
+
}
|
|
422
|
+
|
|
375
423
|
export interface WasmNnlsChromaResult {
|
|
376
424
|
nChroma: number;
|
|
377
425
|
nFrames: number;
|
|
@@ -470,7 +518,7 @@ export interface WasmMixResult {
|
|
|
470
518
|
|
|
471
519
|
export interface WasmEngineClip {
|
|
472
520
|
id?: number;
|
|
473
|
-
channels
|
|
521
|
+
channels?: Float32Array[];
|
|
474
522
|
startPpq: number;
|
|
475
523
|
lengthSamples?: number;
|
|
476
524
|
clipOffsetSamples?: number;
|
|
@@ -478,6 +526,15 @@ export interface WasmEngineClip {
|
|
|
478
526
|
gain?: number;
|
|
479
527
|
fadeInSamples?: number;
|
|
480
528
|
fadeOutSamples?: number;
|
|
529
|
+
warpMode?: 'off' | 'repitch' | 'tempo-sync' | 0 | 1 | 2;
|
|
530
|
+
warpAnchors?: Array<{ warpSample: number; sourceSample: number }>;
|
|
531
|
+
pageProvider?: number | { readonly id: number };
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
export interface WasmClipPageRequest {
|
|
535
|
+
clipId: number;
|
|
536
|
+
channel: number;
|
|
537
|
+
sample: number;
|
|
481
538
|
}
|
|
482
539
|
|
|
483
540
|
export interface WasmEngineParameterInfo {
|
|
@@ -576,6 +633,8 @@ export interface WasmEngineCaptureStatus {
|
|
|
576
633
|
overflowCount: number;
|
|
577
634
|
armed: boolean;
|
|
578
635
|
punchEnabled: boolean;
|
|
636
|
+
source: 'output' | 'input';
|
|
637
|
+
recordOffsetSamples: number;
|
|
579
638
|
}
|
|
580
639
|
|
|
581
640
|
export interface WasmEngineTransportState {
|
|
@@ -674,12 +733,81 @@ export interface WasmRealtimeEngine {
|
|
|
674
733
|
graphConnectionCount: () => number;
|
|
675
734
|
setClips: (clips: WasmEngineClip[]) => void;
|
|
676
735
|
clipCount: () => number;
|
|
736
|
+
createClipPageProvider: (numChannels: number, numSamples: number, pageFrames: number) => number;
|
|
737
|
+
supplyClipPage: (providerId: number, pageIndex: number, channels: Float32Array[]) => void;
|
|
738
|
+
clearClipPage: (providerId: number, pageIndex: number) => void;
|
|
739
|
+
destroyClipPageProvider: (providerId: number) => void;
|
|
740
|
+
popClipPageRequest: () => WasmClipPageRequest | null;
|
|
677
741
|
setCaptureBuffer: (numChannels: number, capacityFrames: number) => void;
|
|
678
742
|
armCapture: (armed: boolean) => void;
|
|
679
743
|
setCapturePunch: (startSample: number, endSample: number, enabled: boolean) => void;
|
|
744
|
+
setCaptureSource: (source: WasmEngineCaptureStatus['source']) => void;
|
|
745
|
+
setRecordOffsetSamples: (offsetSamples: number) => void;
|
|
746
|
+
setInputMonitor: (enabled: boolean, gain: number) => void;
|
|
680
747
|
resetCapture: () => void;
|
|
681
748
|
captureStatus: () => WasmEngineCaptureStatus;
|
|
682
749
|
capturedAudio: () => Float32Array[];
|
|
750
|
+
setBuiltinInstrument: (destinationId: number, config: object) => void;
|
|
751
|
+
clearMidiInstrument: (destinationId: number) => void;
|
|
752
|
+
midiInstrumentCount: () => number;
|
|
753
|
+
bindMidiCc: (
|
|
754
|
+
channel: number,
|
|
755
|
+
controller: number,
|
|
756
|
+
paramId: number,
|
|
757
|
+
minValue: number,
|
|
758
|
+
maxValue: number,
|
|
759
|
+
) => void;
|
|
760
|
+
clearMidiCcBindings: () => void;
|
|
761
|
+
midiCcBindingCount: () => number;
|
|
762
|
+
setMidiInputSource: (destinationId: number) => void;
|
|
763
|
+
clearMidiInputSource: () => void;
|
|
764
|
+
midiInputPendingCount: () => number;
|
|
765
|
+
pushMidiInputNoteOn: (
|
|
766
|
+
group: number,
|
|
767
|
+
channel: number,
|
|
768
|
+
note: number,
|
|
769
|
+
velocity: number,
|
|
770
|
+
portTimeSamples: number,
|
|
771
|
+
) => void;
|
|
772
|
+
pushMidiInputNoteOff: (
|
|
773
|
+
group: number,
|
|
774
|
+
channel: number,
|
|
775
|
+
note: number,
|
|
776
|
+
velocity: number,
|
|
777
|
+
portTimeSamples: number,
|
|
778
|
+
) => void;
|
|
779
|
+
pushMidiInputCc: (
|
|
780
|
+
group: number,
|
|
781
|
+
channel: number,
|
|
782
|
+
controller: number,
|
|
783
|
+
value: number,
|
|
784
|
+
portTimeSamples: number,
|
|
785
|
+
) => void;
|
|
786
|
+
pushMidiNoteOn: (
|
|
787
|
+
destinationId: number,
|
|
788
|
+
group: number,
|
|
789
|
+
channel: number,
|
|
790
|
+
note: number,
|
|
791
|
+
velocity: number,
|
|
792
|
+
renderFrame: number,
|
|
793
|
+
) => void;
|
|
794
|
+
pushMidiNoteOff: (
|
|
795
|
+
destinationId: number,
|
|
796
|
+
group: number,
|
|
797
|
+
channel: number,
|
|
798
|
+
note: number,
|
|
799
|
+
velocity: number,
|
|
800
|
+
renderFrame: number,
|
|
801
|
+
) => void;
|
|
802
|
+
pushMidiCc: (
|
|
803
|
+
destinationId: number,
|
|
804
|
+
group: number,
|
|
805
|
+
channel: number,
|
|
806
|
+
controller: number,
|
|
807
|
+
value: number,
|
|
808
|
+
renderFrame: number,
|
|
809
|
+
) => void;
|
|
810
|
+
pushMidiPanic: (renderFrame: number) => void;
|
|
683
811
|
process: (channels: Float32Array[]) => Float32Array[];
|
|
684
812
|
prepareChannels: (numChannels: number, maxFrames: number) => void;
|
|
685
813
|
getChannelBuffer: (channel: number, numFrames: number) => Float32Array;
|
|
@@ -696,7 +824,19 @@ export interface WasmRealtimeEngine {
|
|
|
696
824
|
export type ProgressCallback = (progress: number, stage: string) => void;
|
|
697
825
|
export type TempogramMode = 'autocorrelation' | 'auto' | 'ac' | 'cosine' | 0 | 1;
|
|
698
826
|
|
|
827
|
+
export interface WasmSynthEnumTables {
|
|
828
|
+
engineModes: string[];
|
|
829
|
+
waveforms: string[];
|
|
830
|
+
filterModels: string[];
|
|
831
|
+
filterOutputs: string[];
|
|
832
|
+
bodyTypes: string[];
|
|
833
|
+
modSources: string[];
|
|
834
|
+
modDestinations: string[];
|
|
835
|
+
}
|
|
836
|
+
|
|
699
837
|
export interface SonareModule {
|
|
838
|
+
audioFromMemory: (bytes: Uint8Array) => WasmAudioFromMemoryResult;
|
|
839
|
+
|
|
700
840
|
// Quick API (high-level)
|
|
701
841
|
detectBpm: (samples: Float32Array, sampleRate: number) => number;
|
|
702
842
|
detectKey: (samples: Float32Array, sampleRate: number) => WasmKeyResult;
|
|
@@ -745,7 +885,29 @@ export interface SonareModule {
|
|
|
745
885
|
detectInversions: boolean,
|
|
746
886
|
chromaMethod: number,
|
|
747
887
|
) => WasmChordAnalysisResult;
|
|
888
|
+
chordFunctionalAnalysis: (
|
|
889
|
+
samples: Float32Array,
|
|
890
|
+
keyRoot: number,
|
|
891
|
+
keyMode: number,
|
|
892
|
+
sampleRate: number,
|
|
893
|
+
minDuration: number,
|
|
894
|
+
smoothingWindow: number,
|
|
895
|
+
threshold: number,
|
|
896
|
+
useTriadsOnly: boolean,
|
|
897
|
+
nFft: number,
|
|
898
|
+
hopLength: number,
|
|
899
|
+
useBeatSync: boolean,
|
|
900
|
+
useHmm: boolean,
|
|
901
|
+
hmmBeamWidth: number,
|
|
902
|
+
useKeyContext: boolean,
|
|
903
|
+
detectInversions: boolean,
|
|
904
|
+
chromaMethod: number,
|
|
905
|
+
) => string[];
|
|
748
906
|
analyze: (samples: Float32Array, sampleRate: number) => WasmAnalysisResult;
|
|
907
|
+
_synthEnumTables: () => WasmSynthEnumTables;
|
|
908
|
+
_synthPatchRoundTrip: (patch: unknown) => unknown;
|
|
909
|
+
_analysisResultSchemaPaths: () => string[];
|
|
910
|
+
_analysisResultSchemaFixture: () => WasmAnalysisResult;
|
|
749
911
|
analyzeImpulseResponse: (
|
|
750
912
|
samples: Float32Array,
|
|
751
913
|
sampleRate: number,
|
|
@@ -865,6 +1027,12 @@ export interface SonareModule {
|
|
|
865
1027
|
right: Float32Array,
|
|
866
1028
|
sampleRate: number,
|
|
867
1029
|
) => { mid: Float32Array; side: Float32Array };
|
|
1030
|
+
meteringVectorscopeDecimated: (
|
|
1031
|
+
left: Float32Array,
|
|
1032
|
+
right: Float32Array,
|
|
1033
|
+
sampleRate: number,
|
|
1034
|
+
maxPoints: number,
|
|
1035
|
+
) => { mid: Float32Array; side: Float32Array };
|
|
868
1036
|
meteringPhaseScope: (
|
|
869
1037
|
left: Float32Array,
|
|
870
1038
|
right: Float32Array,
|
|
@@ -878,6 +1046,20 @@ export interface SonareModule {
|
|
|
878
1046
|
averageAbsAngleRad: number;
|
|
879
1047
|
maxRadius: number;
|
|
880
1048
|
};
|
|
1049
|
+
meteringPhaseScopeDecimated: (
|
|
1050
|
+
left: Float32Array,
|
|
1051
|
+
right: Float32Array,
|
|
1052
|
+
sampleRate: number,
|
|
1053
|
+
maxPoints: number,
|
|
1054
|
+
) => {
|
|
1055
|
+
mid: Float32Array;
|
|
1056
|
+
side: Float32Array;
|
|
1057
|
+
radius: Float32Array;
|
|
1058
|
+
angleRad: Float32Array;
|
|
1059
|
+
correlation: number;
|
|
1060
|
+
averageAbsAngleRad: number;
|
|
1061
|
+
maxRadius: number;
|
|
1062
|
+
};
|
|
881
1063
|
meteringSpectrum: (
|
|
882
1064
|
samples: Float32Array,
|
|
883
1065
|
sampleRate: number,
|
|
@@ -896,6 +1078,47 @@ export interface SonareModule {
|
|
|
896
1078
|
nFft: number;
|
|
897
1079
|
sampleRate: number;
|
|
898
1080
|
};
|
|
1081
|
+
meteringSpectrumFrame: (
|
|
1082
|
+
samples: Float32Array,
|
|
1083
|
+
sampleRate: number,
|
|
1084
|
+
frameOffset: number,
|
|
1085
|
+
options: {
|
|
1086
|
+
nFft?: number;
|
|
1087
|
+
applyOctaveSmoothing?: boolean;
|
|
1088
|
+
octaveFraction?: number;
|
|
1089
|
+
dbRef?: number;
|
|
1090
|
+
dbAmin?: number;
|
|
1091
|
+
},
|
|
1092
|
+
) => {
|
|
1093
|
+
frequencies: Float32Array;
|
|
1094
|
+
magnitude: Float32Array;
|
|
1095
|
+
power: Float32Array;
|
|
1096
|
+
db: Float32Array;
|
|
1097
|
+
nFft: number;
|
|
1098
|
+
sampleRate: number;
|
|
1099
|
+
};
|
|
1100
|
+
waveformPeaks: (
|
|
1101
|
+
samples: Float32Array,
|
|
1102
|
+
channels: number,
|
|
1103
|
+
samplesPerBucket: number,
|
|
1104
|
+
) => {
|
|
1105
|
+
min: Float32Array;
|
|
1106
|
+
max: Float32Array;
|
|
1107
|
+
channels: number;
|
|
1108
|
+
bucketCount: number;
|
|
1109
|
+
samplesPerBucket: number;
|
|
1110
|
+
};
|
|
1111
|
+
waveformPeakPyramid: (
|
|
1112
|
+
samples: Float32Array,
|
|
1113
|
+
channels: number,
|
|
1114
|
+
samplesPerBucketLevels: number[],
|
|
1115
|
+
) => Array<{
|
|
1116
|
+
min: Float32Array;
|
|
1117
|
+
max: Float32Array;
|
|
1118
|
+
channels: number;
|
|
1119
|
+
bucketCount: number;
|
|
1120
|
+
samplesPerBucket: number;
|
|
1121
|
+
}>;
|
|
899
1122
|
|
|
900
1123
|
scaleQuantizeMidi: (
|
|
901
1124
|
root: number,
|
|
@@ -932,6 +1155,15 @@ export interface SonareModule {
|
|
|
932
1155
|
nIter: number,
|
|
933
1156
|
beta: number,
|
|
934
1157
|
) => WasmDecomposeResult;
|
|
1158
|
+
decomposeWithInit: (
|
|
1159
|
+
s: Float32Array,
|
|
1160
|
+
nFeatures: number,
|
|
1161
|
+
nFrames: number,
|
|
1162
|
+
nComponents: number,
|
|
1163
|
+
nIter: number,
|
|
1164
|
+
beta: number,
|
|
1165
|
+
init: string,
|
|
1166
|
+
) => WasmDecomposeResult;
|
|
935
1167
|
nnFilter: (
|
|
936
1168
|
s: Float32Array,
|
|
937
1169
|
nFeatures: number,
|
|
@@ -963,6 +1195,15 @@ export interface SonareModule {
|
|
|
963
1195
|
currentMidi: number,
|
|
964
1196
|
targetMidi: number,
|
|
965
1197
|
) => Float32Array;
|
|
1198
|
+
pitchCorrectToMidiTimevarying: (
|
|
1199
|
+
samples: Float32Array,
|
|
1200
|
+
sampleRate: number,
|
|
1201
|
+
f0Hz: Float32Array,
|
|
1202
|
+
targetMidi: number,
|
|
1203
|
+
hopLength: number,
|
|
1204
|
+
voiced?: Float32Array,
|
|
1205
|
+
voicedProb?: Float32Array,
|
|
1206
|
+
) => Float32Array;
|
|
966
1207
|
noteStretch: (
|
|
967
1208
|
samples: Float32Array,
|
|
968
1209
|
sampleRate: number,
|
|
@@ -1171,6 +1412,9 @@ export interface SonareModule {
|
|
|
1171
1412
|
nFft: number,
|
|
1172
1413
|
hopLength: number,
|
|
1173
1414
|
nMels: number,
|
|
1415
|
+
fmin: number,
|
|
1416
|
+
fmax: number,
|
|
1417
|
+
htk: boolean,
|
|
1174
1418
|
) => WasmMelResult;
|
|
1175
1419
|
mfcc: (
|
|
1176
1420
|
samples: Float32Array,
|
|
@@ -1179,6 +1423,9 @@ export interface SonareModule {
|
|
|
1179
1423
|
hopLength: number,
|
|
1180
1424
|
nMels: number,
|
|
1181
1425
|
nMfcc: number,
|
|
1426
|
+
fmin: number,
|
|
1427
|
+
fmax: number,
|
|
1428
|
+
htk: boolean,
|
|
1182
1429
|
) => WasmMfccResult;
|
|
1183
1430
|
|
|
1184
1431
|
// Features - Inverse reconstruction
|
|
@@ -1190,6 +1437,7 @@ export interface SonareModule {
|
|
|
1190
1437
|
nFft: number,
|
|
1191
1438
|
fmin: number,
|
|
1192
1439
|
fmax: number,
|
|
1440
|
+
htk: boolean,
|
|
1193
1441
|
) => WasmStftPowerResult;
|
|
1194
1442
|
melToAudio: (
|
|
1195
1443
|
melPower: Float32Array,
|
|
@@ -1201,6 +1449,7 @@ export interface SonareModule {
|
|
|
1201
1449
|
fmin: number,
|
|
1202
1450
|
fmax: number,
|
|
1203
1451
|
nIter: number,
|
|
1452
|
+
htk: boolean,
|
|
1204
1453
|
) => Float32Array;
|
|
1205
1454
|
mfccToMel: (
|
|
1206
1455
|
mfcc: Float32Array,
|
|
@@ -1219,6 +1468,7 @@ export interface SonareModule {
|
|
|
1219
1468
|
fmin: number,
|
|
1220
1469
|
fmax: number,
|
|
1221
1470
|
nIter: number,
|
|
1471
|
+
htk: boolean,
|
|
1222
1472
|
) => Float32Array;
|
|
1223
1473
|
|
|
1224
1474
|
// Features - Chroma
|
|
@@ -1395,6 +1645,18 @@ export interface SonareModule {
|
|
|
1395
1645
|
tempoMax: number,
|
|
1396
1646
|
winLength: number,
|
|
1397
1647
|
) => Float32Array;
|
|
1648
|
+
chromaCens: (
|
|
1649
|
+
samples: Float32Array,
|
|
1650
|
+
sampleRate: number,
|
|
1651
|
+
hopLength: number,
|
|
1652
|
+
nChroma: number,
|
|
1653
|
+
) => WasmChromaResult;
|
|
1654
|
+
bassChroma: (
|
|
1655
|
+
samples: Float32Array,
|
|
1656
|
+
sampleRate: number,
|
|
1657
|
+
hopLength: number,
|
|
1658
|
+
nChroma: number,
|
|
1659
|
+
) => WasmChromaResult;
|
|
1398
1660
|
nnlsChroma: (samples: Float32Array, sampleRate: number) => WasmNnlsChromaResult;
|
|
1399
1661
|
cqt: (
|
|
1400
1662
|
samples: Float32Array,
|
|
@@ -1404,6 +1666,22 @@ export interface SonareModule {
|
|
|
1404
1666
|
nBins: number,
|
|
1405
1667
|
binsPerOctave: number,
|
|
1406
1668
|
) => WasmCqtResult;
|
|
1669
|
+
pseudoCqt: (
|
|
1670
|
+
samples: Float32Array,
|
|
1671
|
+
sampleRate: number,
|
|
1672
|
+
hopLength: number,
|
|
1673
|
+
fmin: number,
|
|
1674
|
+
nBins: number,
|
|
1675
|
+
binsPerOctave: number,
|
|
1676
|
+
) => WasmCqtResult;
|
|
1677
|
+
hybridCqt: (
|
|
1678
|
+
samples: Float32Array,
|
|
1679
|
+
sampleRate: number,
|
|
1680
|
+
hopLength: number,
|
|
1681
|
+
fmin: number,
|
|
1682
|
+
nBins: number,
|
|
1683
|
+
binsPerOctave: number,
|
|
1684
|
+
) => WasmCqtResult;
|
|
1407
1685
|
vqt: (
|
|
1408
1686
|
samples: Float32Array,
|
|
1409
1687
|
sampleRate: number,
|
|
@@ -1428,6 +1706,8 @@ export interface SonareModule {
|
|
|
1428
1706
|
frameLength: number,
|
|
1429
1707
|
hopLength: number,
|
|
1430
1708
|
threshold: number,
|
|
1709
|
+
usePyin: boolean,
|
|
1710
|
+
center: boolean,
|
|
1431
1711
|
) => WasmMelodyResult;
|
|
1432
1712
|
onsetEnvelope: (
|
|
1433
1713
|
samples: Float32Array,
|
|
@@ -1436,6 +1716,14 @@ export interface SonareModule {
|
|
|
1436
1716
|
hopLength: number,
|
|
1437
1717
|
nMels: number,
|
|
1438
1718
|
) => Float32Array;
|
|
1719
|
+
onsetStrengthMulti: (
|
|
1720
|
+
samples: Float32Array,
|
|
1721
|
+
sampleRate: number,
|
|
1722
|
+
nFft: number,
|
|
1723
|
+
hopLength: number,
|
|
1724
|
+
nMels: number,
|
|
1725
|
+
nBands: number,
|
|
1726
|
+
) => WasmOnsetStrengthMultiResult;
|
|
1439
1727
|
fourierTempogram: (
|
|
1440
1728
|
onsetEnvelope: Float32Array,
|
|
1441
1729
|
sampleRate: number,
|
|
@@ -1507,6 +1795,7 @@ export interface SonareModule {
|
|
|
1507
1795
|
};
|
|
1508
1796
|
|
|
1509
1797
|
// Streaming - StreamAnalyzer
|
|
1798
|
+
streamAnalyzerConfigDefault: () => WasmStreamConfigDefaults;
|
|
1510
1799
|
StreamAnalyzer: new (
|
|
1511
1800
|
sampleRate: number,
|
|
1512
1801
|
nFft: number,
|
|
@@ -1687,8 +1976,9 @@ export interface WasmMixer {
|
|
|
1687
1976
|
timing: number,
|
|
1688
1977
|
) => number;
|
|
1689
1978
|
setSendDb: (stripIndex: number, sendIndex: number, sendDb: number) => void;
|
|
1979
|
+
removeSend: (stripIndex: number, sendIndex: number) => void;
|
|
1690
1980
|
meterTap: (stripIndex: number, tap: number) => WasmMixMeterSnapshot;
|
|
1691
|
-
stripMeter: (stripIndex: number
|
|
1981
|
+
stripMeter: (stripIndex: number) => WasmMixMeterSnapshot;
|
|
1692
1982
|
scheduleFaderAutomation: (
|
|
1693
1983
|
stripIndex: number,
|
|
1694
1984
|
samplePos: number,
|
|
@@ -1719,9 +2009,16 @@ export interface WasmMixer {
|
|
|
1719
2009
|
removeBus: (id: string) => void;
|
|
1720
2010
|
busCount: () => number;
|
|
1721
2011
|
addVcaGroup: (id: string, gainDb: number, members: string[]) => void;
|
|
2012
|
+
setVcaGroupGainDb: (id: string, gainDb: number) => void;
|
|
1722
2013
|
removeVcaGroup: (id: string) => void;
|
|
1723
2014
|
vcaGroupCount: () => number;
|
|
1724
2015
|
toSceneJson: () => string;
|
|
2016
|
+
tailSamples: () => number;
|
|
2017
|
+
drainTailStereo: (numSamples: number) => {
|
|
2018
|
+
left: Float32Array;
|
|
2019
|
+
right: Float32Array;
|
|
2020
|
+
sampleRate: number;
|
|
2021
|
+
};
|
|
1725
2022
|
delete: () => void;
|
|
1726
2023
|
}
|
|
1727
2024
|
|
|
@@ -1826,10 +2123,11 @@ export interface WasmStreamFramesI16 {
|
|
|
1826
2123
|
export interface WasmStreamAnalyzer {
|
|
1827
2124
|
process: (samples: Float32Array) => void;
|
|
1828
2125
|
processWithOffset: (samples: Float32Array, sampleOffset: number) => void;
|
|
2126
|
+
finalize: () => void;
|
|
1829
2127
|
availableFrames: () => number;
|
|
1830
2128
|
readFramesSoa: (maxFrames: number) => WasmFrameBuffer;
|
|
1831
|
-
readFramesU8: (maxFrames: number) => WasmStreamFramesU8;
|
|
1832
|
-
readFramesI16: (maxFrames: number) => WasmStreamFramesI16;
|
|
2129
|
+
readFramesU8: (maxFrames: number, quantizeConfig?: unknown) => WasmStreamFramesU8;
|
|
2130
|
+
readFramesI16: (maxFrames: number, quantizeConfig?: unknown) => WasmStreamFramesI16;
|
|
1833
2131
|
reset: (baseSampleOffset?: number) => void;
|
|
1834
2132
|
stats: () => WasmAnalyzerStats;
|
|
1835
2133
|
frameCount: () => number;
|