@libraz/libsonare 1.7.0 → 1.7.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 +33 -0
- package/dist/analysis.d.ts +55 -3
- package/dist/analysis.js +10 -0
- package/dist/analysis.js.map +1 -1
- package/dist/index.d.ts +368 -199
- package/dist/index.js +111 -6
- package/dist/index.js.map +1 -1
- package/dist/sonare-analysis.js +1 -1
- package/dist/sonare-analysis.wasm +0 -0
- package/dist/sonare.js +1 -1
- package/dist/sonare.wasm +0 -0
- package/dist/worker.js.map +1 -1
- package/dist/worklet.d.ts +379 -9
- package/dist/worklet.js +174 -13
- package/dist/worklet.js.map +1 -1
- package/package.json +1 -1
- package/src/_chain_config.ts +6 -1
- package/src/effects_mastering.ts +5 -0
- package/src/effects_transform.ts +23 -12
- package/src/index.ts +10 -0
- package/src/mastering_core.ts +70 -0
- package/src/metering.ts +18 -0
- package/src/project.ts +3 -0
- package/src/project_class.ts +52 -2
- package/src/project_internal.ts +2 -0
- package/src/project_types.ts +39 -8
- package/src/public_types_mastering.ts +9 -0
- package/src/public_types_spectral.ts +16 -2
- package/src/realtime_engine.ts +39 -0
- package/src/sonare.js.d.ts +26 -0
- package/src/streaming_processors.ts +18 -0
- package/src/worklet/engine-node.ts +7 -2
- package/src/worklet/engine-processor.ts +59 -12
- package/src/worklet/messages.ts +12 -0
- package/src/worklet.ts +5 -0
package/README.md
CHANGED
|
@@ -198,6 +198,39 @@ The bounded-memory guarantee applies only to an OPFS/page-provider source.
|
|
|
198
198
|
Passing a `Float32Array[]` to `addClip` keeps that full array in the JavaScript
|
|
199
199
|
heap, so it is appropriate for short clips but does not make long clips bounded.
|
|
200
200
|
|
|
201
|
+
### Cue bus on a second AudioWorklet output
|
|
202
|
+
|
|
203
|
+
Per-track PFL/AFL monitoring normally folds the cue into the program output.
|
|
204
|
+
Pass `cueOutput` and the node gains a second output carrying the cue alone, so
|
|
205
|
+
it can be routed to headphones or a separate device while the program mix stays
|
|
206
|
+
untouched.
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
import { SonareEngine } from '@libraz/libsonare/worklet';
|
|
210
|
+
|
|
211
|
+
const engine = await SonareEngine.create(audioContext, { cueOutput: true });
|
|
212
|
+
engine.setTrackMonitorMode(trackId, 'pfl');
|
|
213
|
+
|
|
214
|
+
engine.node.connect(audioContext.destination, 0); // program
|
|
215
|
+
engine.node.connect(cueDestination, 1); // cue
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Without `cueOutput` the node keeps a single output and the folded mix, sample
|
|
219
|
+
for sample. Off the worklet, the same split is available on the zero-copy path
|
|
220
|
+
as `prepareMonitorChannels` / `getMonitorChannelBuffer` /
|
|
221
|
+
`processPreparedWithMonitor`, and as `processWithMonitor` for a copy-in call.
|
|
222
|
+
|
|
223
|
+
### Mastering preview inside the worklet
|
|
224
|
+
|
|
225
|
+
`StreamingMasteringChain` is exported from `@libraz/libsonare/worklet`, so a live
|
|
226
|
+
preview can run in the render realm instead of round-tripping audio to the main
|
|
227
|
+
thread. Build and `prepare()` it from a message handler — `prepare()` allocates
|
|
228
|
+
and must not run inside `process()`. An enabled `loudness` stage needs the
|
|
229
|
+
offline-measured `loudnessStaticGainDb`, since whole-signal integrated LUFS
|
|
230
|
+
cannot be measured block by block. The chain is a host-side stage: it is outside
|
|
231
|
+
the engine's own delay compensation, so aligning it against other engine outputs
|
|
232
|
+
is the caller's job.
|
|
233
|
+
|
|
201
234
|
## Capabilities
|
|
202
235
|
|
|
203
236
|
Every area below has runnable examples and the full API in the
|
package/dist/analysis.d.ts
CHANGED
|
@@ -363,6 +363,15 @@ interface MasteringChainConfig {
|
|
|
363
363
|
releaseMs?: number;
|
|
364
364
|
applyGainAtInputRate?: boolean;
|
|
365
365
|
};
|
|
366
|
+
/**
|
|
367
|
+
* Dot-notation spelling of any leaf above, e.g. `'loudness.targetLufs': -20`
|
|
368
|
+
* beside or instead of `loudness: { targetLufs: -20 }`. It is the form the C
|
|
369
|
+
* ABI carries parameters in, so a caller assembling overrides dynamically can
|
|
370
|
+
* emit it directly; the core validates the key and rejects an unknown one.
|
|
371
|
+
* The nested spelling is canonical — prefer it in hand-written code, where it
|
|
372
|
+
* is checked field by field while a dotted key is only checked at run time.
|
|
373
|
+
*/
|
|
374
|
+
[flatKey: `${string}.${string}`]: number | boolean | undefined;
|
|
366
375
|
}
|
|
367
376
|
/**
|
|
368
377
|
* Configuration for the block-by-block {@link StreamingMasteringChain}.
|
|
@@ -1024,6 +1033,14 @@ interface RealtimeVoiceChangerPodConfig {
|
|
|
1024
1033
|
limiterIspCeilingDbtp: number;
|
|
1025
1034
|
}
|
|
1026
1035
|
|
|
1036
|
+
/**
|
|
1037
|
+
* Per-frame voicing decision, one entry per `f0Hz` frame. A truthy or non-zero
|
|
1038
|
+
* entry marks the frame voiced. The union covers what the analysis side hands
|
|
1039
|
+
* back — `PitchResult.voicedFlag` is a `boolean[]` — as well as the typed and
|
|
1040
|
+
* plain numeric arrays a caller may build directly, so a pitch track can be fed
|
|
1041
|
+
* straight into pitch correction without a conversion step.
|
|
1042
|
+
*/
|
|
1043
|
+
type VoicedFlags = Int32Array | Uint8Array | Float32Array | readonly number[] | readonly boolean[];
|
|
1027
1044
|
/** Options for `pitchCorrectTimevarying`. All fields are optional. */
|
|
1028
1045
|
interface PitchCorrectOptions extends ValidateOptions {
|
|
1029
1046
|
/** `'midi'` retunes toward `targetMidi`; `'scale'` snaps to the key. Default `'midi'`. */
|
|
@@ -1044,8 +1061,8 @@ interface PitchCorrectOptions extends ValidateOptions {
|
|
|
1044
1061
|
retuneSpeedMs?: number;
|
|
1045
1062
|
/** Corrections below this are bypassed to preserve vibrato (cents). Default 20. */
|
|
1046
1063
|
vibratoThresholdCents?: number;
|
|
1047
|
-
/** Per-frame voiced flags (
|
|
1048
|
-
voiced?:
|
|
1064
|
+
/** Per-frame voiced flags (truthy = voiced); omit to treat all frames as voiced. */
|
|
1065
|
+
voiced?: VoicedFlags;
|
|
1049
1066
|
/** Per-frame voicing probability in `[0, 1]`; omit to derive from `voiced`. */
|
|
1050
1067
|
voicedProb?: Float32Array;
|
|
1051
1068
|
}
|
|
@@ -2376,6 +2393,9 @@ interface WasmRealtimeEngine {
|
|
|
2376
2393
|
prepareChannels: (numChannels: number, maxFrames: number) => void;
|
|
2377
2394
|
getChannelBuffer: (channel: number, numFrames: number) => Float32Array;
|
|
2378
2395
|
processPrepared: (numFrames: number) => void;
|
|
2396
|
+
prepareMonitorChannels: (numChannels: number, maxFrames: number) => void;
|
|
2397
|
+
getMonitorChannelBuffer: (channel: number, numFrames: number) => Float32Array;
|
|
2398
|
+
processPreparedWithMonitor: (numFrames: number) => void;
|
|
2379
2399
|
processWithMonitor: (channels: Float32Array[]) => WasmEngineProcessWithMonitorResult;
|
|
2380
2400
|
renderOffline: (channels: Float32Array[], blockSize: number) => Float32Array[];
|
|
2381
2401
|
bounceOffline: (options: WasmEngineBounceOptions) => WasmEngineBounceResult;
|
|
@@ -2589,6 +2609,11 @@ interface SonareModule {
|
|
|
2589
2609
|
hopLength: number,
|
|
2590
2610
|
) => number;
|
|
2591
2611
|
meteringCrestFactorDb: (samples: Float32Array, sampleRate: number) => number;
|
|
2612
|
+
meteringCrestFactorDbStereo: (
|
|
2613
|
+
left: Float32Array,
|
|
2614
|
+
right: Float32Array,
|
|
2615
|
+
sampleRate: number,
|
|
2616
|
+
) => number;
|
|
2592
2617
|
meteringDcOffset: (samples: Float32Array, sampleRate: number) => number;
|
|
2593
2618
|
meteringTruePeakDb: (
|
|
2594
2619
|
samples: Float32Array,
|
|
@@ -2954,6 +2979,24 @@ interface SonareModule {
|
|
|
2954
2979
|
sampleRate: number,
|
|
2955
2980
|
platforms: Array<{ name: string; targetLufs: number; ceilingDb: number }>,
|
|
2956
2981
|
) => string;
|
|
2982
|
+
masteringAssistantSuggestStereo: (
|
|
2983
|
+
left: Float32Array,
|
|
2984
|
+
right: Float32Array,
|
|
2985
|
+
sampleRate: number,
|
|
2986
|
+
params: Record<string, number | boolean>,
|
|
2987
|
+
) => string;
|
|
2988
|
+
masteringAudioProfileStereo: (
|
|
2989
|
+
left: Float32Array,
|
|
2990
|
+
right: Float32Array,
|
|
2991
|
+
sampleRate: number,
|
|
2992
|
+
params: Record<string, number | boolean>,
|
|
2993
|
+
) => string;
|
|
2994
|
+
masteringStreamingPreviewStereo: (
|
|
2995
|
+
left: Float32Array,
|
|
2996
|
+
right: Float32Array,
|
|
2997
|
+
sampleRate: number,
|
|
2998
|
+
platforms: Array<{ name: string; targetLufs: number; ceilingDb: number }>,
|
|
2999
|
+
) => string;
|
|
2957
3000
|
masteringRepairDeclick: (
|
|
2958
3001
|
samples: Float32Array,
|
|
2959
3002
|
sampleRate: number,
|
|
@@ -5340,6 +5383,15 @@ declare function meteringSilenceRatio(request: MeteringSilenceRatioRequest): num
|
|
|
5340
5383
|
declare function meteringSilenceRatio(samples: Float32Array, sampleRate?: number, thresholdDb?: number, frameLength?: number, hopLength?: number, options?: ValidateOptions): number;
|
|
5341
5384
|
declare function meteringCrestFactorDb(request: MeteringSamplesRequest): number;
|
|
5342
5385
|
declare function meteringCrestFactorDb(samples: Float32Array, sampleRate?: number, options?: ValidateOptions): number;
|
|
5386
|
+
/**
|
|
5387
|
+
* Crest factor in dB across both channels of a stereo pair.
|
|
5388
|
+
*
|
|
5389
|
+
* Takes the peak across both channels and the RMS over both together. An
|
|
5390
|
+
* out-of-phase pair cancels in the `0.5 * (left + right)` downmix
|
|
5391
|
+
* {@link meteringCrestFactorDb} would need, which understates its RMS and so
|
|
5392
|
+
* overstates the crest factor.
|
|
5393
|
+
*/
|
|
5394
|
+
declare function meteringCrestFactorDbStereo(request: MeteringStereoRequest): number;
|
|
5343
5395
|
declare function meteringDcOffset(request: MeteringSamplesRequest): number;
|
|
5344
5396
|
declare function meteringDcOffset(samples: Float32Array, sampleRate?: number, options?: ValidateOptions): number;
|
|
5345
5397
|
/**
|
|
@@ -5806,4 +5858,4 @@ declare function engineAbiVersion(): number;
|
|
|
5806
5858
|
/** Voice-changer ABI version retained for cross-entry compatibility checks. */
|
|
5807
5859
|
declare function voiceChangerAbiVersion(): number;
|
|
5808
5860
|
|
|
5809
|
-
export { type AcousticOptions, type AcousticResult, type AnalysisResult, type AnalyzeBpmOptions, type AnalyzeBpmRequest, type AnalyzeDynamicsOptions, type AnalyzeDynamicsRequest, type AnalyzeImpulseResponseRequest, type AnalyzeMelodyRequest, type AnalyzeRhythmOptions, type AnalyzeRhythmRequest, type AnalyzeSectionsOptions, type AnalyzeSectionsRequest, type AnalyzeTimbreOptions, type AnalyzeTimbreRequest, type AnalyzeWithProgressRequest, type AutomationCurve, type Beat, type BpmAnalysisResult, type BpmCandidate, type BpmHypothesis, type CapabilityCatalog, type CapabilityCatalogParameter, type CapabilityCatalogPresets, type CapabilityCatalogProcessor, type ChirpRequest, type Chord, type ChordAnalysisResult, type ChordDetectionOptions, type ChordFunctionalAnalysisRequest, ChordQuality, type ChromaResult, type ChromaSpectrogramRequest, type ClicksRequest, type ClippingRegion, type ClippingReport, type CqtRequest, type CqtResult, type CqtToAudioRequest, type CyclicTempogramRequest, type DbConversionRequest, type DecomposeRequest, type DecomposeWithInitRequest, type DetectAcousticRequest, type DetectChordsRequest, type DetectKeyRequest, type DynamicRangeReport, type Dynamics, type DynamicsAnalysisResult, type Ebur128LoudnessRangeRequest, type EmphasisRequest, type EqBand, type EqBandPhase, type EqBandType, type EqCoeffMode, type EqMatchOptions, type EqSpectrumSnapshot, type EqStereoPlacement, ErrorCode, type EstimateTuningRequest, type FixFramesRequest, type FixLengthRequest, type FourierTempogramRequest, type FrameSignalRequest, type GoniometerPoint, type GriffinLimRequest, type HpssResult, type HpssWithResidualRequest, type Key, type KeyCandidate, type KeyDetectionOptions, KeyProfile, type KeyProfileName, type LufsInterleavedRequest, type LufsRequest, type LufsResult, type MasteringChainConfig, type MasteringChainResult, type MasteringChainStereoResult, type MasteringLoudnessSummary, type MasteringOptions, type MasteringPreset, type MasteringProcessorParams, type MasteringReport, type MasteringResult, type MasteringStereoChainResult, type MasteringStereoResult, type MelDeltaRequest, type MelPowerResult, type MelSpectrogramRequest, type MelSpectrogramResult, type MelToAudioRequest, type MelToStftRequest, type MelodyContour, type MelodyOptions, type MelodyPoint, type MelodyResult, type MeterTap, type MeteringDetectClippingOptions, type MeteringDetectClippingRequest, type MeteringDynamicRangeOptions, type MeteringDynamicRangeRequest, type MeteringSamplesRequest, type MeteringSilenceRatioRequest, type MeteringSpectrumFrameRequest, type MeteringSpectrumRequest, type MeteringStereoDecimatedRequest, type MeteringStereoRequest, type MeteringTruePeakRequest, type MfccRequest, type MfccResult, type MfccToAudioRequest, type MfccToMelRequest, type MixMeterSnapshot, type MixOptions, type MixResult, type MixerProcessResult, Mode, type MusicAnalyzeOptions, type MusicAnalyzeRequest, type NnFilterRequest, type NnlsChromaRequest, type NoteMoveOptions, type NoteSegment, type NoteSegmentsRequest, type NoteStretchOptions, type OnsetBacktrackRequest, type OnsetEnvelopeRequest, type OnsetStrengthMultiRequest, type OnsetStrengthMultiResult, type PadCenterRequest, type PairAnalysis, type PairProcessor, type PanLaw, type PanLawInput, type PanLawName, type PanMode, type PcenRequest, type PeakPickRequest, type PhaseScopeReport, type PhaseVocoderRequest, type PiptrackRequest, type PiptrackResult, PitchClass, type PitchCorrectOptions, type PitchPyinRequest, type PitchResult, type PitchTuningRequest, type PitchYinRequest, type PlpRequest, type PolyFeaturesRequest, type ProgressCallback, type RealtimeVoiceChangerConfigInput, type RealtimeVoiceChangerPodConfig, type RealtimeVoiceChangerPreset, type RealtimeVoiceChangerPresetMetadata, type ReassignedSpectrogramRequest, type ReassignedSpectrogramResult, type RemixRequest, type ResampleRequest, type RhythmAnalysisResult, type RhythmFeatures, type RirResult, type RirSynthOptions, type RoomEstimateOptions, type RoomEstimateResult, type RoomGeometryOptions, type RoomMorphOptions, type SamplesRequest, type ScopeOptions, type Section, SectionType, type SegmentAgglomerativeRequest, type SegmentCrossSimilarityRequest, type SegmentLagToRecurrenceRequest, type SegmentMatrix, type SegmentPathEnhanceRequest, type SegmentRecurrenceMatrixRequest, type SegmentRecurrenceToLagRequest, type SegmentSubsegmentRequest, type SendTiming, type SilenceRequest, type SoloProcessor, type SonareCapabilities, SonareError, type SpectralContrastRequest, type SpectralEditMode, type SpectralEditOptions, type SpectralEditWindow, type SpectralFrameRequest, type SpectralRegionOp, type SpectralRolloffRequest, type SpectrogramRequest, type SpectrumOptions, type SpectrumReport, type StageGainReduction, type StereoAnalysis, type StftPowerResult, type StftResult, type StreamingEqualizerConfig, type StreamingMasteringChainConfig, type StreamingPlatform, type StreamingRetuneConfig, type SurroundPan, type TempogramMode$1 as TempogramMode, type TempogramRatioRequest, type TempogramRequest, type Timbre, type TimbreAnalysisResult, type TimbreFrame, type TimeSignature, type ToneRequest, type TonnetzRequest, type TrimRequest, type VectorNormalizeRequest, type VectorscopeReport, type VoicePresetCategory, type VoicePresetId, type VqtRequest, type VqtToAudioRequest, type WaveformPeakPyramidOptions, type WaveformPeakPyramidRequest, type WaveformPeaksOptions, type WaveformPeaksReport, type WaveformPeaksRequest, type ZeroCrossingRateRequest, type ZeroCrossingsRequest, abiVersion, amplitudeToDb, analyze, analyzeBpm, analyzeDynamics, analyzeImpulseResponse, analyzeMelody, analyzeRhythm, analyzeSections, analyzeTimbre, analyzeWithProgress, bassChroma, capabilities, chirp, chordFunctionalAnalysis, chroma, chromaCens, chromaCqt, clicks, cqt, cqtToAudio, cyclicTempogram, dbToAmplitude, dbToPower, decompose, decomposeWithInit, deemphasis, detectAcoustic, detectBeats, detectBpm, detectChords, detectDownbeats, detectKey, detectKeyCandidates, detectOnsets, ebur128LoudnessRange, engineAbiVersion, estimateTuning, fixFrames, fixLength, fourierTempogram, frameSignal, framesToSamples, framesToTime, griffinLim, hasFfmpegSupport, hpssWithResidual, hybridCqt, hzToMel, hzToMidi, hzToNote, init, isInitialized, isSonareError, lufs, lufsInterleaved, melDelta, melSpectrogram, melToAudio, melToHz, melToStft, meteringCrestFactorDb, meteringDcOffset, meteringDetectClipping, meteringDynamicRange, meteringPeakDb, meteringPhaseScope, meteringPhaseScopeDecimated, meteringRmsDb, meteringSilenceRatio, meteringSpectrum, meteringSpectrumFrame, meteringStereoCorrelation, meteringStereoWidth, meteringTruePeakDb, meteringVectorscope, meteringVectorscopeDecimated, mfcc, mfccToAudio, mfccToMel, midiToHz, momentaryLufs, nnFilter, nnlsChroma, noteSegments, noteToHz, onsetBacktrack, onsetEnvelope, onsetStrengthMulti, padCenter, pcen, peakPick, phaseVocoder, piptrack, pitchPyin, pitchTuning, pitchYin, plp, polyFeatures, powerToDb, preemphasis, pseudoCqt, reassignedSpectrogram, remix, resample, rmsEnergy, samplesToFrames, segmentAgglomerative, segmentCrossSimilarity, segmentLagToRecurrence, segmentPathEnhance, segmentRecurrenceMatrix, segmentRecurrenceToLag, segmentSubsegment, shortTermLufs, spectralBandwidth, spectralCentroid, spectralContrast, spectralFlatness, spectralFlux, spectralRolloff, splitSilence, stft, stftDb, tempogram, tempogramRatio, timeToFrames, tone, tonnetz, trim, trimSilence, vectorNormalize, version, voiceChangerAbiVersion, vqt, vqtToAudio, waveformPeakPyramid, waveformPeaks, zeroCrossingRate, zeroCrossings };
|
|
5861
|
+
export { type AcousticOptions, type AcousticResult, type AnalysisResult, type AnalyzeBpmOptions, type AnalyzeBpmRequest, type AnalyzeDynamicsOptions, type AnalyzeDynamicsRequest, type AnalyzeImpulseResponseRequest, type AnalyzeMelodyRequest, type AnalyzeRhythmOptions, type AnalyzeRhythmRequest, type AnalyzeSectionsOptions, type AnalyzeSectionsRequest, type AnalyzeTimbreOptions, type AnalyzeTimbreRequest, type AnalyzeWithProgressRequest, type AutomationCurve, type Beat, type BpmAnalysisResult, type BpmCandidate, type BpmHypothesis, type CapabilityCatalog, type CapabilityCatalogParameter, type CapabilityCatalogPresets, type CapabilityCatalogProcessor, type ChirpRequest, type Chord, type ChordAnalysisResult, type ChordDetectionOptions, type ChordFunctionalAnalysisRequest, ChordQuality, type ChromaResult, type ChromaSpectrogramRequest, type ClicksRequest, type ClippingRegion, type ClippingReport, type CqtRequest, type CqtResult, type CqtToAudioRequest, type CyclicTempogramRequest, type DbConversionRequest, type DecomposeRequest, type DecomposeWithInitRequest, type DetectAcousticRequest, type DetectChordsRequest, type DetectKeyRequest, type DynamicRangeReport, type Dynamics, type DynamicsAnalysisResult, type Ebur128LoudnessRangeRequest, type EmphasisRequest, type EqBand, type EqBandPhase, type EqBandType, type EqCoeffMode, type EqMatchOptions, type EqSpectrumSnapshot, type EqStereoPlacement, ErrorCode, type EstimateTuningRequest, type FixFramesRequest, type FixLengthRequest, type FourierTempogramRequest, type FrameSignalRequest, type GoniometerPoint, type GriffinLimRequest, type HpssResult, type HpssWithResidualRequest, type Key, type KeyCandidate, type KeyDetectionOptions, KeyProfile, type KeyProfileName, type LufsInterleavedRequest, type LufsRequest, type LufsResult, type MasteringChainConfig, type MasteringChainResult, type MasteringChainStereoResult, type MasteringLoudnessSummary, type MasteringOptions, type MasteringPreset, type MasteringProcessorParams, type MasteringReport, type MasteringResult, type MasteringStereoChainResult, type MasteringStereoResult, type MelDeltaRequest, type MelPowerResult, type MelSpectrogramRequest, type MelSpectrogramResult, type MelToAudioRequest, type MelToStftRequest, type MelodyContour, type MelodyOptions, type MelodyPoint, type MelodyResult, type MeterTap, type MeteringDetectClippingOptions, type MeteringDetectClippingRequest, type MeteringDynamicRangeOptions, type MeteringDynamicRangeRequest, type MeteringSamplesRequest, type MeteringSilenceRatioRequest, type MeteringSpectrumFrameRequest, type MeteringSpectrumRequest, type MeteringStereoDecimatedRequest, type MeteringStereoRequest, type MeteringTruePeakRequest, type MfccRequest, type MfccResult, type MfccToAudioRequest, type MfccToMelRequest, type MixMeterSnapshot, type MixOptions, type MixResult, type MixerProcessResult, Mode, type MusicAnalyzeOptions, type MusicAnalyzeRequest, type NnFilterRequest, type NnlsChromaRequest, type NoteMoveOptions, type NoteSegment, type NoteSegmentsRequest, type NoteStretchOptions, type OnsetBacktrackRequest, type OnsetEnvelopeRequest, type OnsetStrengthMultiRequest, type OnsetStrengthMultiResult, type PadCenterRequest, type PairAnalysis, type PairProcessor, type PanLaw, type PanLawInput, type PanLawName, type PanMode, type PcenRequest, type PeakPickRequest, type PhaseScopeReport, type PhaseVocoderRequest, type PiptrackRequest, type PiptrackResult, PitchClass, type PitchCorrectOptions, type PitchPyinRequest, type PitchResult, type PitchTuningRequest, type PitchYinRequest, type PlpRequest, type PolyFeaturesRequest, type ProgressCallback, type RealtimeVoiceChangerConfigInput, type RealtimeVoiceChangerPodConfig, type RealtimeVoiceChangerPreset, type RealtimeVoiceChangerPresetMetadata, type ReassignedSpectrogramRequest, type ReassignedSpectrogramResult, type RemixRequest, type ResampleRequest, type RhythmAnalysisResult, type RhythmFeatures, type RirResult, type RirSynthOptions, type RoomEstimateOptions, type RoomEstimateResult, type RoomGeometryOptions, type RoomMorphOptions, type SamplesRequest, type ScopeOptions, type Section, SectionType, type SegmentAgglomerativeRequest, type SegmentCrossSimilarityRequest, type SegmentLagToRecurrenceRequest, type SegmentMatrix, type SegmentPathEnhanceRequest, type SegmentRecurrenceMatrixRequest, type SegmentRecurrenceToLagRequest, type SegmentSubsegmentRequest, type SendTiming, type SilenceRequest, type SoloProcessor, type SonareCapabilities, SonareError, type SpectralContrastRequest, type SpectralEditMode, type SpectralEditOptions, type SpectralEditWindow, type SpectralFrameRequest, type SpectralRegionOp, type SpectralRolloffRequest, type SpectrogramRequest, type SpectrumOptions, type SpectrumReport, type StageGainReduction, type StereoAnalysis, type StftPowerResult, type StftResult, type StreamingEqualizerConfig, type StreamingMasteringChainConfig, type StreamingPlatform, type StreamingRetuneConfig, type SurroundPan, type TempogramMode$1 as TempogramMode, type TempogramRatioRequest, type TempogramRequest, type Timbre, type TimbreAnalysisResult, type TimbreFrame, type TimeSignature, type ToneRequest, type TonnetzRequest, type TrimRequest, type VectorNormalizeRequest, type VectorscopeReport, type VoicePresetCategory, type VoicePresetId, type VoicedFlags, type VqtRequest, type VqtToAudioRequest, type WaveformPeakPyramidOptions, type WaveformPeakPyramidRequest, type WaveformPeaksOptions, type WaveformPeaksReport, type WaveformPeaksRequest, type ZeroCrossingRateRequest, type ZeroCrossingsRequest, abiVersion, amplitudeToDb, analyze, analyzeBpm, analyzeDynamics, analyzeImpulseResponse, analyzeMelody, analyzeRhythm, analyzeSections, analyzeTimbre, analyzeWithProgress, bassChroma, capabilities, chirp, chordFunctionalAnalysis, chroma, chromaCens, chromaCqt, clicks, cqt, cqtToAudio, cyclicTempogram, dbToAmplitude, dbToPower, decompose, decomposeWithInit, deemphasis, detectAcoustic, detectBeats, detectBpm, detectChords, detectDownbeats, detectKey, detectKeyCandidates, detectOnsets, ebur128LoudnessRange, engineAbiVersion, estimateTuning, fixFrames, fixLength, fourierTempogram, frameSignal, framesToSamples, framesToTime, griffinLim, hasFfmpegSupport, hpssWithResidual, hybridCqt, hzToMel, hzToMidi, hzToNote, init, isInitialized, isSonareError, lufs, lufsInterleaved, melDelta, melSpectrogram, melToAudio, melToHz, melToStft, meteringCrestFactorDb, meteringCrestFactorDbStereo, meteringDcOffset, meteringDetectClipping, meteringDynamicRange, meteringPeakDb, meteringPhaseScope, meteringPhaseScopeDecimated, meteringRmsDb, meteringSilenceRatio, meteringSpectrum, meteringSpectrumFrame, meteringStereoCorrelation, meteringStereoWidth, meteringTruePeakDb, meteringVectorscope, meteringVectorscopeDecimated, mfcc, mfccToAudio, mfccToMel, midiToHz, momentaryLufs, nnFilter, nnlsChroma, noteSegments, noteToHz, onsetBacktrack, onsetEnvelope, onsetStrengthMulti, padCenter, pcen, peakPick, phaseVocoder, piptrack, pitchPyin, pitchTuning, pitchYin, plp, polyFeatures, powerToDb, preemphasis, pseudoCqt, reassignedSpectrogram, remix, resample, rmsEnergy, samplesToFrames, segmentAgglomerative, segmentCrossSimilarity, segmentLagToRecurrence, segmentPathEnhance, segmentRecurrenceMatrix, segmentRecurrenceToLag, segmentSubsegment, shortTermLufs, spectralBandwidth, spectralCentroid, spectralContrast, spectralFlatness, spectralFlux, spectralRolloff, splitSilence, stft, stftDb, tempogram, tempogramRatio, timeToFrames, tone, tonnetz, trim, trimSilence, vectorNormalize, version, voiceChangerAbiVersion, vqt, vqtToAudio, waveformPeakPyramid, waveformPeaks, zeroCrossingRate, zeroCrossings };
|
package/dist/analysis.js
CHANGED
|
@@ -1732,6 +1732,15 @@ function meteringCrestFactorDb(samples, sampleRate = 22050, options = {}) {
|
|
|
1732
1732
|
assertSamples("meteringCrestFactorDb", request.samples, request.validate !== false);
|
|
1733
1733
|
return requireModule7().meteringCrestFactorDb(request.samples, request.sampleRate ?? 22050);
|
|
1734
1734
|
}
|
|
1735
|
+
function meteringCrestFactorDbStereo(request) {
|
|
1736
|
+
assertSamples("meteringCrestFactorDbStereo", request.left, request.validate !== false);
|
|
1737
|
+
assertSamples("meteringCrestFactorDbStereo", request.right, request.validate !== false);
|
|
1738
|
+
return requireModule7().meteringCrestFactorDbStereo(
|
|
1739
|
+
request.left,
|
|
1740
|
+
request.right,
|
|
1741
|
+
request.sampleRate ?? 22050
|
|
1742
|
+
);
|
|
1743
|
+
}
|
|
1735
1744
|
function meteringDcOffset(samples, sampleRate = 22050, options = {}) {
|
|
1736
1745
|
const request = samples instanceof Float32Array ? { samples, sampleRate, ...options } : samples;
|
|
1737
1746
|
assertSamples("meteringDcOffset", request.samples, request.validate !== false);
|
|
@@ -2492,6 +2501,7 @@ export {
|
|
|
2492
2501
|
melToHz,
|
|
2493
2502
|
melToStft,
|
|
2494
2503
|
meteringCrestFactorDb,
|
|
2504
|
+
meteringCrestFactorDbStereo,
|
|
2495
2505
|
meteringDcOffset,
|
|
2496
2506
|
meteringDetectClipping,
|
|
2497
2507
|
meteringDynamicRange,
|