@libraz/libsonare 1.7.1 → 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 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
@@ -2393,6 +2393,9 @@ interface WasmRealtimeEngine {
2393
2393
  prepareChannels: (numChannels: number, maxFrames: number) => void;
2394
2394
  getChannelBuffer: (channel: number, numFrames: number) => Float32Array;
2395
2395
  processPrepared: (numFrames: number) => void;
2396
+ prepareMonitorChannels: (numChannels: number, maxFrames: number) => void;
2397
+ getMonitorChannelBuffer: (channel: number, numFrames: number) => Float32Array;
2398
+ processPreparedWithMonitor: (numFrames: number) => void;
2396
2399
  processWithMonitor: (channels: Float32Array[]) => WasmEngineProcessWithMonitorResult;
2397
2400
  renderOffline: (channels: Float32Array[], blockSize: number) => Float32Array[];
2398
2401
  bounceOffline: (options: WasmEngineBounceOptions) => WasmEngineBounceResult;
package/dist/index.d.ts CHANGED
@@ -2825,6 +2825,37 @@ interface ProjectNotePairValidation {
2825
2825
  /** Count of note-offs with no preceding matching note-on. */
2826
2826
  unmatchedNoteOffs: number;
2827
2827
  }
2828
+ /**
2829
+ * Request form of {@link Project.bakeMidiFx}. The positional
2830
+ * `(clipId, configJson)` call stays supported and normalizes to this shape.
2831
+ */
2832
+ interface ProjectMidiFxBakeRequest {
2833
+ /** Target MIDI clip id. */
2834
+ clipId: number;
2835
+ /** MIDI-FX chain configuration as JSON. */
2836
+ configJson: string;
2837
+ /** Return per-event provenance in the result. Default false. */
2838
+ withSourceIndex?: boolean;
2839
+ }
2840
+ /** Result of the request form of {@link Project.bakeMidiFx}. */
2841
+ interface ProjectMidiFxBakeResult {
2842
+ /**
2843
+ * One entry per transformed event in canonical order: the index of the input
2844
+ * event it derives from, or -1 for an event with no originating input. Chord
2845
+ * and arpeggiator fan-out makes several outputs share one source index, so a
2846
+ * caller that treats the first output per index as the same event and the
2847
+ * rest as newly generated can carry a selection across the bake. Present only
2848
+ * when the request set `withSourceIndex`.
2849
+ */
2850
+ sourceIndex?: Int32Array;
2851
+ }
2852
+ /** Request form of {@link Project.previewMidiFxCount}. */
2853
+ interface ProjectMidiFxPreviewRequest {
2854
+ /** Target MIDI clip id. */
2855
+ clipId: number;
2856
+ /** MIDI-FX chain configuration as JSON. */
2857
+ configJson: string;
2858
+ }
2828
2859
  /** One compile diagnostic (mirrors SonareProjectDiagnostic). */
2829
2860
  interface ProjectDiagnostic {
2830
2861
  code: number;
@@ -3034,6 +3065,17 @@ declare class Project {
3034
3065
  * drained without truncation; failure leaves the original clip unchanged.
3035
3066
  */
3036
3067
  bakeMidiFx(clipId: number, configJson: string): void;
3068
+ /**
3069
+ * Request form. Setting `withSourceIndex` also returns per-event provenance,
3070
+ * so a selection or an editorial annotation can be carried across the bake.
3071
+ */
3072
+ bakeMidiFx(request: ProjectMidiFxBakeRequest): ProjectMidiFxBakeResult;
3073
+ /**
3074
+ * Count the events {@link bakeMidiFx} would produce for this clip and
3075
+ * configuration, without mutating the project. The transform is
3076
+ * deterministic, so the count matches what the bake goes on to produce.
3077
+ */
3078
+ previewMidiFxCount(request: ProjectMidiFxPreviewRequest): number;
3037
3079
  /** Backward alias for {@link bakeMidiFx}. */
3038
3080
  setMidiFx(clipId: number, configJson: string): void;
3039
3081
  /**
@@ -3592,6 +3634,15 @@ declare class RealtimeEngine {
3592
3634
  * Returns `-1` when the track, insert, or name is unknown. (The Python binding
3593
3635
  * raises a `SonareError` for an unknown id where Node/WASM return the `-1`
3594
3636
  * sentinel.)
3637
+ *
3638
+ * This trio is how a mastering processor gets time-varying automation: the
3639
+ * `eq.*`, `dynamics.*`, `saturation.*`, `spectral.*`, `stereo.*`,
3640
+ * `maximizer.*` and `multiband.*` processors are all available as strip
3641
+ * inserts, so placing one on a strip and resolving its parameter here drives
3642
+ * it at audio-block precision, live and offline alike. The whole-signal
3643
+ * stages of the offline mastering chain (`repair.*`, `loudness`, and the
3644
+ * match stages) have no insert form and no automation id: they buffer the
3645
+ * entire signal by construction and do not run on the realtime path.
3595
3646
  */
3596
3647
  resolveTrackInsertAutomationId(trackId: number, insertIndex: number, paramName: string): number;
3597
3648
  resolveMasterInsertAutomationId(insertIndex: number, paramName: string): number;
@@ -3658,6 +3709,27 @@ declare class RealtimeEngine {
3658
3709
  * `prepareChannels`.
3659
3710
  */
3660
3711
  processPrepared(numFrames: number): void;
3712
+ /**
3713
+ * Allocates the cue-bus counterpart of {@link prepareChannels}. Needed only
3714
+ * when PFL/AFL monitoring must reach a separate output: `processPrepared`
3715
+ * folds the cue bus into the program output, while
3716
+ * {@link processPreparedWithMonitor} keeps the two apart. Call once, off the
3717
+ * audio thread, with at least as many channels as `prepareChannels` got.
3718
+ */
3719
+ prepareMonitorChannels(numChannels: number, maxFrames: number): void;
3720
+ /**
3721
+ * Returns a Float32Array view onto the persistent cue-bus scratch for one
3722
+ * channel (valid for up to `numFrames`). Read it after
3723
+ * {@link processPreparedWithMonitor}. Re-acquire after WASM memory growth.
3724
+ */
3725
+ getMonitorChannelBuffer(channel: number, numFrames: number): Float32Array;
3726
+ /**
3727
+ * Runs the engine in place over the prepared scratch, writing the cue bus to
3728
+ * the monitor scratch instead of folding it into the program output.
3729
+ * Allocation-free: safe on the AudioWorklet render thread after
3730
+ * `prepareChannels` and `prepareMonitorChannels`.
3731
+ */
3732
+ processPreparedWithMonitor(numFrames: number): void;
3661
3733
  processWithMonitor(channels: Float32Array[]): WasmEngineProcessWithMonitorResult;
3662
3734
  renderOffline(channels: Float32Array[], blockSize?: number): Float32Array[];
3663
3735
  bounceOffline(options: EngineBounceOptions): EngineBounceResult;
@@ -5094,6 +5166,207 @@ declare function mfccToAudio(mfccCoefficients: Float32Array, nMfcc: number, nFra
5094
5166
  declare function chroma(request: SpectrogramRequest): ChromaResult;
5095
5167
  declare function chroma(samples: Float32Array, sampleRate?: number, nFft?: number, hopLength?: number, options?: GuardedOptions$1): ChromaResult;
5096
5168
 
5169
+ type EqPhaseMode = 'zero' | 'zero-latency' | 'zero_latency' | 'natural' | 'natural-phase' | 'natural_phase' | 'linear' | 'linear-phase' | 'linear_phase' | number;
5170
+ /**
5171
+ * Block-by-block streaming variant of {@link masteringChain}.
5172
+ *
5173
+ * Maintains processor state across {@link processMono}/{@link processStereo}
5174
+ * calls. Only ProcessorBase-backed stages are supported. Configurations that
5175
+ * enable `repair.denoise` throw at construction. An enabled `loudness` stage
5176
+ * also throws unless {@link StreamingMasteringChainConfig.loudnessStaticGainDb}
5177
+ * supplies a precomputed normalization gain.
5178
+ *
5179
+ * Call {@link delete} (or use a `try/finally`) to release the underlying WASM
5180
+ * object — the embind handle is not garbage-collected automatically.
5181
+ *
5182
+ * Reachable from the AudioWorklet realm through the `sonare/worklet` entry, but
5183
+ * the realtime contract is the caller's to keep:
5184
+ *
5185
+ * - {@link prepare} builds the processors and allocates. Call it once from a
5186
+ * message handler, never from `AudioWorkletProcessor.process()`.
5187
+ * - {@link processMono}/{@link processStereo} return fresh arrays. On the render
5188
+ * thread, reuse the returned reference for the block rather than retaining it.
5189
+ * - An enabled `loudness` stage needs `loudnessStaticGainDb` measured offline,
5190
+ * because whole-signal integrated LUFS cannot be measured block by block. Pass
5191
+ * `loudnessStaticGainPeakDb` too and the static gain is clamped exactly as the
5192
+ * offline chain clamps it, so the live preview matches the render.
5193
+ * - {@link flush} output starts {@link latencySamples} samples early; discard
5194
+ * that many leading samples when time alignment matters.
5195
+ *
5196
+ * The chain is a host-side stage, not an engine insert: it does not participate
5197
+ * in the engine's PDC or bypass, so latency compensation against other engine
5198
+ * outputs is also the caller's.
5199
+ *
5200
+ * @example
5201
+ * ```typescript
5202
+ * const chain = new StreamingMasteringChain({ eq: { tiltDb: 1.0 } });
5203
+ * try {
5204
+ * chain.prepare(44100, 512, 1);
5205
+ * const out = chain.processMono(blockSamples);
5206
+ * } finally {
5207
+ * chain.delete();
5208
+ * }
5209
+ * ```
5210
+ */
5211
+ declare class StreamingMasteringChain {
5212
+ private chain;
5213
+ constructor(config: StreamingMasteringChainConfig);
5214
+ /**
5215
+ * Initialize processors for the given sample rate and block layout.
5216
+ *
5217
+ * @param sampleRate - Sample rate in Hz
5218
+ * @param maxBlockSize - Maximum block size per process call
5219
+ * @param numChannels - 1 (mono) or 2 (stereo)
5220
+ */
5221
+ prepare(sampleRate: number, maxBlockSize: number, numChannels: number): void;
5222
+ /**
5223
+ * Process one mono block, returning the processed samples (same length).
5224
+ */
5225
+ processMono(samples: Float32Array): Float32Array;
5226
+ /**
5227
+ * Process one stereo block, returning the processed channels.
5228
+ */
5229
+ processStereo(left: Float32Array, right: Float32Array): {
5230
+ left: Float32Array;
5231
+ right: Float32Array;
5232
+ };
5233
+ /**
5234
+ * Emit delayed audio and finite processor tails after the final mono block.
5235
+ * Call until this returns an empty array. The initial `latencySamples()`
5236
+ * samples of the concatenated stream are delayed and should be discarded for
5237
+ * time-aligned output.
5238
+ */
5239
+ flushMono(): Float32Array;
5240
+ /** Stereo counterpart of {@link flushMono}. */
5241
+ flushStereo(): {
5242
+ left: Float32Array;
5243
+ right: Float32Array;
5244
+ };
5245
+ /** Reset all processor state without rebuilding. */
5246
+ reset(): void;
5247
+ /** Total reported latency in samples across all active processors. */
5248
+ latencySamples(): number;
5249
+ /** Ordered stage names that will run (e.g. `"eq.tilt"`). */
5250
+ stageNames(): string[];
5251
+ /** Release the underlying WASM object. Safe to call only once. */
5252
+ delete(): void;
5253
+ }
5254
+ /**
5255
+ * Block-by-block streaming equalizer wrapping the unified C++
5256
+ * `EqualizerProcessor` (up to 24 bands, RBJ/Vicanek biquads, dynamic EQ,
5257
+ * linear-phase FIR, mid/side processing, and auto-gain).
5258
+ *
5259
+ * State is maintained across {@link processMono}/{@link processStereo} calls.
5260
+ * Call {@link delete} (or use `try/finally`) to release the underlying WASM
5261
+ * object — the embind handle is not garbage-collected automatically.
5262
+ *
5263
+ * @example
5264
+ * ```typescript
5265
+ * const eq = new StreamingEqualizer({ sampleRate: 48000, maxBlockSize: 512 });
5266
+ * try {
5267
+ * eq.setBand(0, { type: 'HighShelf', frequencyHz: 8000, gainDb: 6, enabled: true });
5268
+ * const out = eq.processStereo(left, right);
5269
+ * const snapshot = eq.spectrum();
5270
+ * } finally {
5271
+ * eq.delete();
5272
+ * }
5273
+ * ```
5274
+ */
5275
+ declare class StreamingEqualizer {
5276
+ private eq;
5277
+ constructor(config?: StreamingEqualizerConfig);
5278
+ /**
5279
+ * Configure the band at `index` (0..23). Omitted fields use C++ defaults.
5280
+ */
5281
+ setBand(index: number, band: EqBand): void;
5282
+ /** Disable and reset every band. */
5283
+ clear(): void;
5284
+ /**
5285
+ * Set the global phase mode: `'zero'` | `'natural'` | `'linear'` or 1/2/3.
5286
+ */
5287
+ setPhaseMode(mode: EqPhaseMode): void;
5288
+ /** Enable or disable output auto-gain compensation. */
5289
+ setAutoGain(enabled: boolean): void;
5290
+ /** Set all-band EQ gain scale as a 0.0..2.0 multiplier. */
5291
+ setGainScale(scale: number): void;
5292
+ /** Set post-EQ output gain in dB. */
5293
+ setOutputGainDb(gainDb: number): void;
5294
+ /** Set post-EQ stereo balance in -1.0..1.0; mono input ignores pan. */
5295
+ setOutputPan(pan: number): void;
5296
+ /**
5297
+ * Provide a mono external sidechain key for dynamic bands that opt into
5298
+ * `external_sidechain`. The samples are copied into an owned buffer.
5299
+ */
5300
+ setSidechainMono(samples: Float32Array): void;
5301
+ /**
5302
+ * Provide a stereo external sidechain key. Both channels must match length.
5303
+ */
5304
+ setSidechainStereo(left: Float32Array, right: Float32Array): void;
5305
+ /** Release any borrowed external sidechain buffers. */
5306
+ clearSidechain(): void;
5307
+ /** Auto-gain applied on the most recent block, in dB. */
5308
+ lastAutoGainDb(): number;
5309
+ /** Reported processing latency in samples (non-zero for linear-phase bands). */
5310
+ latencySamples(): number;
5311
+ /**
5312
+ * Process one mono block, returning the equalized samples (same length).
5313
+ */
5314
+ processMono(samples: Float32Array): Float32Array;
5315
+ /**
5316
+ * Process one stereo block, returning the equalized channels.
5317
+ */
5318
+ processStereo(left: Float32Array, right: Float32Array): {
5319
+ left: Float32Array;
5320
+ right: Float32Array;
5321
+ };
5322
+ /**
5323
+ * Read the latest pre/post spectrum snapshot for metering. `seq` increments
5324
+ * each time a new snapshot is published.
5325
+ */
5326
+ spectrum(): EqSpectrumSnapshot;
5327
+ /**
5328
+ * Configure bands so the source spectrum matches the reference spectrum.
5329
+ *
5330
+ * @param source - Source audio (mono samples)
5331
+ * @param reference - Reference audio (mono samples)
5332
+ * @param options - `sampleRate` (default 48000) and `maxBands` (default 8)
5333
+ */
5334
+ match(source: Float32Array, reference: Float32Array, options?: EqMatchOptions): void;
5335
+ /** Release the underlying WASM object. Safe to call only once. */
5336
+ delete(): void;
5337
+ }
5338
+ /**
5339
+ * Block-by-block mono voice retune / pitch shifter.
5340
+ *
5341
+ * State is maintained across {@link processMono} calls. Call {@link prepare}
5342
+ * before processing, and call {@link delete} (or use `try/finally`) to release
5343
+ * the underlying WASM object.
5344
+ */
5345
+ declare class StreamingRetune {
5346
+ private retune;
5347
+ constructor(config?: StreamingRetuneConfig);
5348
+ /**
5349
+ * Allocate and initialize native state for the given sample rate and maximum
5350
+ * process block size.
5351
+ */
5352
+ prepare(sampleRate: number, maxBlockSize: number): void;
5353
+ /** Reset delay, grain, and overlap-add state without changing config. */
5354
+ reset(): void;
5355
+ /**
5356
+ * Update retune settings. Changing `grainSize` takes effect after the next
5357
+ * {@link prepare} call.
5358
+ */
5359
+ setConfig(config: StreamingRetuneConfig): void;
5360
+ /** Current native config. */
5361
+ config(): Required<StreamingRetuneConfig>;
5362
+ /** Resolved grain size in samples after {@link prepare}. */
5363
+ grainSize(): number;
5364
+ /** Process one mono block, returning the shifted samples (same length). */
5365
+ processMono(samples: Float32Array): Float32Array;
5366
+ /** Release the underlying WASM object. Safe to call only once. */
5367
+ delete(): void;
5368
+ }
5369
+
5097
5370
  interface SonareWorkletMeterSnapshot {
5098
5371
  type: 'meter';
5099
5372
  targetId: number;
@@ -5257,6 +5530,13 @@ interface SonareRealtimeEngineWorkletProcessorOptions {
5257
5530
  /** Lock-free worklet-to-main-thread MIDI-1 output ring. */
5258
5531
  externalMidiSharedBuffer?: SharedArrayBuffer;
5259
5532
  externalMidiRingCapacity?: number;
5533
+ /**
5534
+ * Route the PFL/AFL cue bus to the processor's SECOND output instead of
5535
+ * folding it into the program output. Off by default, so an existing
5536
+ * single-output host keeps its current mix sample for sample. The node must
5537
+ * be constructed with two outputs for the cue to be audible.
5538
+ */
5539
+ cueOutput?: boolean;
5260
5540
  }
5261
5541
  interface SonareRealtimeEngineNodeCapabilities {
5262
5542
  mode: 'sab' | 'postMessage';
@@ -5268,6 +5548,11 @@ interface SonareRealtimeEngineNodeCapabilities {
5268
5548
  clipPageRequestsRealtimeSafe: boolean;
5269
5549
  /** True when external MIDI uses the SAB output ring rather than postMessage. */
5270
5550
  externalMidiRealtimeSafe: boolean;
5551
+ /**
5552
+ * True when the node carries a second output fed by the PFL/AFL cue bus. When
5553
+ * false the cue is folded into the program output, as it always was.
5554
+ */
5555
+ cueOutput: boolean;
5271
5556
  engineAbiVersion?: number;
5272
5557
  expectedEngineAbiVersion?: number;
5273
5558
  abiCompatible?: boolean;
@@ -6961,189 +7246,6 @@ declare function validateRealtimeVoiceChangerPresetJson(json: string): {
6961
7246
  error?: string;
6962
7247
  };
6963
7248
 
6964
- type EqPhaseMode = 'zero' | 'zero-latency' | 'zero_latency' | 'natural' | 'natural-phase' | 'natural_phase' | 'linear' | 'linear-phase' | 'linear_phase' | number;
6965
- /**
6966
- * Block-by-block streaming variant of {@link masteringChain}.
6967
- *
6968
- * Maintains processor state across {@link processMono}/{@link processStereo}
6969
- * calls. Only ProcessorBase-backed stages are supported. Configurations that
6970
- * enable `repair.denoise` throw at construction. An enabled `loudness` stage
6971
- * also throws unless {@link StreamingMasteringChainConfig.loudnessStaticGainDb}
6972
- * supplies a precomputed normalization gain.
6973
- *
6974
- * Call {@link delete} (or use a `try/finally`) to release the underlying WASM
6975
- * object — the embind handle is not garbage-collected automatically.
6976
- *
6977
- * @example
6978
- * ```typescript
6979
- * const chain = new StreamingMasteringChain({ eq: { tiltDb: 1.0 } });
6980
- * try {
6981
- * chain.prepare(44100, 512, 1);
6982
- * const out = chain.processMono(blockSamples);
6983
- * } finally {
6984
- * chain.delete();
6985
- * }
6986
- * ```
6987
- */
6988
- declare class StreamingMasteringChain {
6989
- private chain;
6990
- constructor(config: StreamingMasteringChainConfig);
6991
- /**
6992
- * Initialize processors for the given sample rate and block layout.
6993
- *
6994
- * @param sampleRate - Sample rate in Hz
6995
- * @param maxBlockSize - Maximum block size per process call
6996
- * @param numChannels - 1 (mono) or 2 (stereo)
6997
- */
6998
- prepare(sampleRate: number, maxBlockSize: number, numChannels: number): void;
6999
- /**
7000
- * Process one mono block, returning the processed samples (same length).
7001
- */
7002
- processMono(samples: Float32Array): Float32Array;
7003
- /**
7004
- * Process one stereo block, returning the processed channels.
7005
- */
7006
- processStereo(left: Float32Array, right: Float32Array): {
7007
- left: Float32Array;
7008
- right: Float32Array;
7009
- };
7010
- /**
7011
- * Emit delayed audio and finite processor tails after the final mono block.
7012
- * Call until this returns an empty array. The initial `latencySamples()`
7013
- * samples of the concatenated stream are delayed and should be discarded for
7014
- * time-aligned output.
7015
- */
7016
- flushMono(): Float32Array;
7017
- /** Stereo counterpart of {@link flushMono}. */
7018
- flushStereo(): {
7019
- left: Float32Array;
7020
- right: Float32Array;
7021
- };
7022
- /** Reset all processor state without rebuilding. */
7023
- reset(): void;
7024
- /** Total reported latency in samples across all active processors. */
7025
- latencySamples(): number;
7026
- /** Ordered stage names that will run (e.g. `"eq.tilt"`). */
7027
- stageNames(): string[];
7028
- /** Release the underlying WASM object. Safe to call only once. */
7029
- delete(): void;
7030
- }
7031
- /**
7032
- * Block-by-block streaming equalizer wrapping the unified C++
7033
- * `EqualizerProcessor` (up to 24 bands, RBJ/Vicanek biquads, dynamic EQ,
7034
- * linear-phase FIR, mid/side processing, and auto-gain).
7035
- *
7036
- * State is maintained across {@link processMono}/{@link processStereo} calls.
7037
- * Call {@link delete} (or use `try/finally`) to release the underlying WASM
7038
- * object — the embind handle is not garbage-collected automatically.
7039
- *
7040
- * @example
7041
- * ```typescript
7042
- * const eq = new StreamingEqualizer({ sampleRate: 48000, maxBlockSize: 512 });
7043
- * try {
7044
- * eq.setBand(0, { type: 'HighShelf', frequencyHz: 8000, gainDb: 6, enabled: true });
7045
- * const out = eq.processStereo(left, right);
7046
- * const snapshot = eq.spectrum();
7047
- * } finally {
7048
- * eq.delete();
7049
- * }
7050
- * ```
7051
- */
7052
- declare class StreamingEqualizer {
7053
- private eq;
7054
- constructor(config?: StreamingEqualizerConfig);
7055
- /**
7056
- * Configure the band at `index` (0..23). Omitted fields use C++ defaults.
7057
- */
7058
- setBand(index: number, band: EqBand): void;
7059
- /** Disable and reset every band. */
7060
- clear(): void;
7061
- /**
7062
- * Set the global phase mode: `'zero'` | `'natural'` | `'linear'` or 1/2/3.
7063
- */
7064
- setPhaseMode(mode: EqPhaseMode): void;
7065
- /** Enable or disable output auto-gain compensation. */
7066
- setAutoGain(enabled: boolean): void;
7067
- /** Set all-band EQ gain scale as a 0.0..2.0 multiplier. */
7068
- setGainScale(scale: number): void;
7069
- /** Set post-EQ output gain in dB. */
7070
- setOutputGainDb(gainDb: number): void;
7071
- /** Set post-EQ stereo balance in -1.0..1.0; mono input ignores pan. */
7072
- setOutputPan(pan: number): void;
7073
- /**
7074
- * Provide a mono external sidechain key for dynamic bands that opt into
7075
- * `external_sidechain`. The samples are copied into an owned buffer.
7076
- */
7077
- setSidechainMono(samples: Float32Array): void;
7078
- /**
7079
- * Provide a stereo external sidechain key. Both channels must match length.
7080
- */
7081
- setSidechainStereo(left: Float32Array, right: Float32Array): void;
7082
- /** Release any borrowed external sidechain buffers. */
7083
- clearSidechain(): void;
7084
- /** Auto-gain applied on the most recent block, in dB. */
7085
- lastAutoGainDb(): number;
7086
- /** Reported processing latency in samples (non-zero for linear-phase bands). */
7087
- latencySamples(): number;
7088
- /**
7089
- * Process one mono block, returning the equalized samples (same length).
7090
- */
7091
- processMono(samples: Float32Array): Float32Array;
7092
- /**
7093
- * Process one stereo block, returning the equalized channels.
7094
- */
7095
- processStereo(left: Float32Array, right: Float32Array): {
7096
- left: Float32Array;
7097
- right: Float32Array;
7098
- };
7099
- /**
7100
- * Read the latest pre/post spectrum snapshot for metering. `seq` increments
7101
- * each time a new snapshot is published.
7102
- */
7103
- spectrum(): EqSpectrumSnapshot;
7104
- /**
7105
- * Configure bands so the source spectrum matches the reference spectrum.
7106
- *
7107
- * @param source - Source audio (mono samples)
7108
- * @param reference - Reference audio (mono samples)
7109
- * @param options - `sampleRate` (default 48000) and `maxBands` (default 8)
7110
- */
7111
- match(source: Float32Array, reference: Float32Array, options?: EqMatchOptions): void;
7112
- /** Release the underlying WASM object. Safe to call only once. */
7113
- delete(): void;
7114
- }
7115
- /**
7116
- * Block-by-block mono voice retune / pitch shifter.
7117
- *
7118
- * State is maintained across {@link processMono} calls. Call {@link prepare}
7119
- * before processing, and call {@link delete} (or use `try/finally`) to release
7120
- * the underlying WASM object.
7121
- */
7122
- declare class StreamingRetune {
7123
- private retune;
7124
- constructor(config?: StreamingRetuneConfig);
7125
- /**
7126
- * Allocate and initialize native state for the given sample rate and maximum
7127
- * process block size.
7128
- */
7129
- prepare(sampleRate: number, maxBlockSize: number): void;
7130
- /** Reset delay, grain, and overlap-add state without changing config. */
7131
- reset(): void;
7132
- /**
7133
- * Update retune settings. Changing `grainSize` takes effect after the next
7134
- * {@link prepare} call.
7135
- */
7136
- setConfig(config: StreamingRetuneConfig): void;
7137
- /** Current native config. */
7138
- config(): Required<StreamingRetuneConfig>;
7139
- /** Resolved grain size in samples after {@link prepare}. */
7140
- grainSize(): number;
7141
- /** Process one mono block, returning the shifted samples (same length). */
7142
- processMono(samples: Float32Array): Float32Array;
7143
- /** Release the underlying WASM object. Safe to call only once. */
7144
- delete(): void;
7145
- }
7146
-
7147
7249
  interface WebMidiEngine {
7148
7250
  bindMidiCc(channel: number, controller: number, paramId: number, options?: MidiCcBindOptions): void;
7149
7251
  setMidiInputSource(destinationId?: number): void;
@@ -7389,4 +7491,4 @@ declare function voiceCharacterPresetId(preset: VoicePresetId | number): VoicePr
7389
7491
  */
7390
7492
  declare function realtimeVoiceChangerPresetConfig(preset: VoicePresetId | number): RealtimeVoiceChangerPodConfig;
7391
7493
 
7392
- 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 AnalyzerStats, Audio, type AutomationCurve, AutomationTargetKind, BUILTIN_SYNTH_WAVEFORMS, type BarChord, type Beat, type BindMicrophoneInputOptions, type BindWebMidiOptions, type BpmAnalysisResult, type BpmCandidate, type BpmHypothesis, type BrowserAudioDecodeOptions, type BuiltinSynthBinding, type BuiltinSynthConfig, type BuiltinSynthWaveform, type ChirpRequest, type Chord, type ChordAnalysisResult, type ChordChange, type ChordDetectionOptions, type ChordFunctionalAnalysisRequest, ChordQuality, type ChromaResult, type ChromaSpectrogramRequest, type ClicksRequest, ClipPageProvider, type ClipPageRequest, type ClipPageStreamSource, ClipPageStreamer, type ClipPageStreamerEngine, type ClipPageStreamerOptions, type ClipPageStreamerRequest, type ClippingRegion, type ClippingReport, type CompressorDetector, type CompressorOptions, type CqtRequest, type CqtResult, type CqtToAudioRequest, type CyclicTempogramRequest, type DbConversionRequest, type DeclickOptions, type DeclipOptions, type DecomposeRequest, type DecomposeResult, type DecomposeWithInitRequest, type DecrackleMode, type DecrackleOptions, type DehumOptions, type DenoiseClassicalMode, type DenoiseClassicalNoiseEstimator, type DenoiseClassicalOptions, type DereverbClassicalOptions, type DetectAcousticRequest, type DetectChordsRequest, type DetectKeyRequest, type DetectOnsetsRequest, type DynamicRangeReport, type Dynamics, type DynamicsAnalysisResult, type DynamicsResult, EXPECTED_ENGINE_ABI_VERSION, EXPECTED_PROJECT_ABI_VERSION, type Ebur128LoudnessRangeRequest, type EmphasisRequest, type EngineAutomationPoint, type EngineBounceOptions, type EngineBounceResult, type EngineBus, type EngineCapabilities, type EngineCaptureSource, type EngineCaptureStatus, type EngineClip, type EngineFreezeOptions, type EngineFreezeResult, type EngineGraphSpec, type EngineMarker, type EngineMeterTelemetry, type EngineMeterTelemetryWide, type EngineMetronomeConfig, type EngineMidiClipSchedule, type EngineMidiEvent, type EngineParameterInfo, type EngineScopeTelemetry, type EngineTelemetry, type EngineTempoSegment, type EngineTimeSignatureSegment, type EngineTrackLane, type EngineTrackMonitorMode, type EngineTrackSend, type EngineTransportState, type EqBand, type EqBandPhase, type EqBandType, type EqCoeffMode, type EqMatchOptions, type EqSpectrumSnapshot, type EqStereoPlacement, ErrorCode, type EstimateRoomRequest, type EstimateTuningRequest, type ExternalMidiEvent, type ExternalSeparatedStem, type ExternalSeparatedStemImportRequest, type ExternalSeparatedStemImportResult, type FixFramesRequest, type FixLengthRequest, type FourierTempogramRequest, type FrameBuffer, type FrameSignalRequest, type GateOptions, type GoniometerPoint, type GriffinLimRequest, type HarmonicRequest, type HpssRequest, type HpssResult, type HpssWithResidualRequest, type HpssWithResidualResult, type Key, type KeyCandidate, type KeyDetectionOptions, KeyProfile, type KeyProfileName, type LufsInterleavedRequest, type LufsRequest, type LufsResult, MarkerKind, type MasterAudioRequest, type MasterAudioStereoRequest, type MasteringChainConfig, type MasteringChainRequest, type MasteringChainResult, type MasteringChainStereoRequest, type MasteringChainStereoResult, type MasteringChannelPolicy, type MasteringDynamicsCompressorRequest, type MasteringDynamicsGateRequest, type MasteringDynamicsTransientShaperRequest, type MasteringInsertParamInfo, type MasteringLoudnessSummary, type MasteringOptions, type MasteringPairAnalyzeRequest, type MasteringPairProcessRequest, type MasteringPreset, type MasteringProcessRequest, type MasteringProcessStereoRequest, type MasteringProcessorCatalogEntry, type MasteringProcessorParams, type MasteringRealtimeCost, type MasteringRepairDeclickRequest, type MasteringRepairDeclipRequest, type MasteringRepairDecrackleRequest, type MasteringRepairDehumRequest, type MasteringRepairDenoiseClassicalRequest, type MasteringRepairDereverbClassicalRequest, type MasteringRepairTrimSilenceRequest, type MasteringReport, type MasteringRequest, type MasteringResult, type MasteringSamplesParamsRequest, type MasteringStereoAnalyzeRequest, type MasteringStereoChainResult, type MasteringStereoParamsRequest, type MasteringStereoResult, type MasteringStreamingPreviewRequest, type MasteringStreamingPreviewStereoRequest, type Matrix2dResult, type MelDeltaRequest, type MelPowerResult, type MelSpectrogramRequest, type MelSpectrogramResult, type MelToAudioRequest, type MelToStftRequest, 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 MicrophoneInputBinding, type MidiCcBindOptions, type MidiCcLearnOptions, type MixMeterSnapshot, type MixOptions, type MixResult, type MixStereoRequest, Mixer, type MixerProcessResult, type MixerRealtimeBuffer, Mode, type MusicAnalyzeRequest, type NnFilterRequest, type NnlsChromaRequest, type NormalizeMode, type NormalizeRequest, type NoteMoveRequest, type NoteSegment, type NoteSegmentsRequest, type NoteStretchOptions, type NoteStretchRequest, type OfflineWorker, type OfflineWorkerCallOptions, OfflineWorkerClient, type OfflineWorkerClientOptions, type OfflineWorkerProgress, OfflineWorkerTask, type OnsetBacktrackRequest, type OnsetEnvelopeRequest, type OnsetStrengthMultiRequest, type OpfsClipPageProviderBinding, type OpfsClipPageProviderOptions, type OpfsClipStream, type OpfsClipStreamOptions, PROJECT_AUTOMATION_TARGET_OPAQUE, PROJECT_AUTOMATION_TARGET_TRACK_FADER_DB, PROJECT_AUTOMATION_TARGET_TRACK_PAN, type PadCenterRequest, type PairAnalysis, type PairProcessor, type PanLaw, type PanLawInput, type PanLawName, type PanMode, type PatternScore, type PcenRequest, type PeakPickRequest, type PercussiveRequest, type PhaseScopeReport, type PhaseVocoderRequest, type PiptrackRequest, PitchClass as Pitch, PitchClass, type PitchCorrectOptions, type PitchCorrectTimevaryingRequest, type PitchCorrectToMidiRequest, type PitchCorrectToMidiTimevaryingRequest, type PitchPyinRequest, type PitchResult, type PitchShiftRequest, type PitchTuningRequest, type PitchYinRequest, type PlpRequest, type PolyFeaturesRequest, type ProgressiveEstimate, Project, type ProjectAssistSidecar, type ProjectAssistSidecarInput, type ProjectAutomationCurve, type ProjectAutomationLaneDesc, type ProjectAutomationPoint, type ProjectAutomationTargetKind, type ProjectBounceOptions, type ProjectChordSymbol, type ProjectClip, type ProjectClipCompSegment, type ProjectClipDesc, type ProjectClipFade, type ProjectClipTake, type ProjectCompileResult, type ProjectFadeCurve, type ProjectKeySegment, type ProjectLoopMode, type ProjectLoopRecordingDesc, type ProjectLoopRecordingResult, type ProjectMarker, type ProjectMidiClipResult, type ProjectMidiEvent, type ProjectNotePairValidation, type ProjectSource, type ProjectTrack, type ProjectTrackDesc, type ProjectTrackKind, type ProjectWarpAnchor, type ProjectWarpMapDesc, RealtimeEngine, RealtimeVoiceChanger, type RealtimeVoiceChangerConfigInput, type RealtimeVoiceChangerInterleavedBuffer, type RealtimeVoiceChangerMonoBuffer, type RealtimeVoiceChangerPlanarBuffer, type RealtimeVoiceChangerPodConfig, type ReassignedSpectrogramRequest, type RemixRequest, type ResampleRequest, type RhythmAnalysisResult, type RhythmFeatures, type RirResult, type RirSynthOptions, type RoomEstimateOptions, type RoomEstimateResult, type RoomGeometryOptions, type RoomMorphOptions, type RoomMorphRequest, SYNTH_BODY_TYPES, SYNTH_ENGINE_MODES, SYNTH_FILTER_MODELS, SYNTH_FILTER_OUTPUTS, SYNTH_MOD_DESTINATIONS, SYNTH_MOD_SOURCES, SYNTH_OSC_WAVEFORMS, type SamplesRequest, type Section, SectionType, type SegmentAgglomerativeRequest, type SegmentCrossSimilarityRequest, type SegmentLagToRecurrenceRequest, type SegmentMatrix, type SegmentPathEnhanceRequest, type SegmentRecurrenceMatrixRequest, type SegmentRecurrenceToLagRequest, type SegmentSubsegmentRequest, type SendTiming, type Sf2InstrumentConfig, type Sf2ProgramStatus, type SilenceRequest, type SoloProcessor, type SonareCapabilities, SonareError, type SourceBackend, type SpectralContrastRequest, type SpectralEditMode, type SpectralEditOptions, type SpectralEditRequest, type SpectralEditWindow, type SpectralFrameRequest, type SpectralRegionOp, type SpectralRolloffRequest, type SpectrogramRequest, type SpectrumOptions, type SpectrumReport, type StageGainReduction, type StereoAnalysis, type StftPowerResult, type StftResult, StreamAnalyzer, type StreamConfig, type StreamConfigDefaults, type StreamFramesI16, type StreamFramesU8, type StreamQuantizeConfig, StreamingEqualizer, type StreamingEqualizerConfig, StreamingMasteringChain, type StreamingMasteringChainConfig, type StreamingPlatform, StreamingRetune, type StreamingRetuneConfig, type SynthBodyType, type SynthEngineMode, type SynthEnumTables, type SynthFilterModel, type SynthFilterOutput, type SynthModDestination, type SynthModRouting, type SynthModSource, type SynthOscWaveform, type SynthPatch, type TempogramMode, type TempogramRatioRequest, type TempogramRequest, type Timbre, type TimbreAnalysisResult, type TimbreFrame, type TimeSignature, type TimeStretchRequest, type ToneRequest, type TonnetzRequest, type TrackMonitorMode, type TransientShaperOptions, type TrimRequest, type TrimSilenceMode, type TrimSilenceOptions, type ValidateOptions, type VectorNormalizeRequest, type VectorscopeReport, type VoiceChangeOptions, type VoiceChangeRealtimeOptions, type VoiceChangeRealtimeRequest, type VoiceChangeRequest, type VoicePresetId, type VoicedFlags, type VqtRequest, type VqtToAudioRequest, type WaveformPeakPyramidOptions, type WaveformPeakPyramidRequest, type WaveformPeaksOptions, type WaveformPeaksReport, type WaveformPeaksRequest, type WebMidiBinding, type WebMidiCcBinding, type WebMidiInputInfo, type WorkletOpfsClipStreamHost, type ZeroCrossingRateRequest, type ZeroCrossingsRequest, abiVersion, amplitudeToDb, analyze, analyzeBpm, analyzeDynamics, analyzeImpulseResponse, analyzeMelody, analyzeRhythm, analyzeSections, analyzeTimbre, analyzeWithProgress, attachOpfsClipStream, bassChroma, bindMicrophoneInput, bindWebMidi, capabilities, capabilityCatalog, chirp, chordFunctionalAnalysis, chroma, chromaCens, chromaCqt, clicks, cqt, cqtToAudio, createOpfsClipPageProvider, createOpfsClipPageWorker, cyclicTempogram, dbToAmplitude, dbToPower, decompose, decomposeWithInit, deemphasis, detectAcoustic, detectBeats, detectBpm, detectChords, detectDownbeats, detectKey, detectKeyCandidates, detectOnsets, ebur128LoudnessRange, engineAbiVersion, engineCapabilities, estimateRoom, estimateTuning, fixFrames, fixLength, fourierTempogram, frameSignal, framesToSamples, framesToTime, griffinLim, harmonic, hasFfmpegSupport, hpss, hpssWithResidual, hybridCqt, hzToMel, hzToMidi, hzToNote, init, isInitialized, isSonareError, isWebMidiAvailable, lufs, lufsInterleaved, masterAudio, masterAudioStereo, masterAudioStereoWithProgress, masterAudioWithProgress, mastering, masteringAssistantSuggest, masteringAssistantSuggestStereo, masteringAudioProfile, masteringAudioProfileStereo, masteringChain, masteringChainStereo, masteringChainStereoWithProgress, masteringChainWithProgress, masteringDynamicsCompressor, masteringDynamicsGate, masteringDynamicsTransientShaper, masteringInsertNames, masteringInsertParamInfo, masteringInsertParamNames, masteringPairAnalysisNames, masteringPairAnalyze, masteringPairProcess, masteringPairProcessorNames, masteringPresetNames, masteringProcess, masteringProcessStereo, masteringProcessorCatalog, masteringProcessorNames, masteringRepairDeclick, masteringRepairDeclip, masteringRepairDecrackle, masteringRepairDehum, masteringRepairDenoiseClassical, masteringRepairDereverbClassical, masteringRepairTrimSilence, masteringStereoAnalysisNames, masteringStereoAnalyze, masteringStreamingPreview, masteringStreamingPreviewStereo, 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, mixStereo, mixingScenePresetJson, mixingScenePresetNames, momentaryLufs, nnFilter, nnlsChroma, normalize, noteMove, noteSegments, noteStretch, noteToHz, onsetBacktrack, onsetEnvelope, onsetStrengthMulti, opfsClipPageWorkerSource, padCenter, pcen, peakPick, percussive, phaseVocoder, piptrack, pitchCorrectTimevarying, pitchCorrectToMidi, pitchCorrectToMidiTimevarying, pitchPyin, pitchShift, pitchTuning, pitchYin, plp, polyFeatures, powerToDb, preemphasis, projectAbiVersion, pseudoCqt, realtimeVoiceChangerPresetConfig, realtimeVoiceChangerPresetJson, realtimeVoiceChangerPresetNames, reassignedSpectrogram, remix, resample, rmsEnergy, roomMorph, samplesToFrames, scaleCorrectionSemitones, scalePitchClassEnabled, scaleQuantizeMidi, segmentAgglomerative, segmentCrossSimilarity, segmentLagToRecurrence, segmentPathEnhance, segmentRecurrenceMatrix, segmentRecurrenceToLag, segmentSubsegment, shortTermLufs, spectralBandwidth, spectralCentroid, spectralContrast, spectralEdit, spectralFlatness, spectralFlux, spectralRolloff, splitSilence, stft, stftDb, streamAnalyzerConfigDefaults, synthEnumTables, synthPresetNames, synthPresetPatch, synthesizeRir, tempogram, tempogramRatio, timeStretch, timeToFrames, tone, tonnetz, trim, trimSilence, validateRealtimeVoiceChangerPresetJson, vectorNormalize, version, voiceChange, voiceChangeRealtime, voiceChangerAbiVersion, voiceCharacterPresetId, vqt, vqtToAudio, waveformPeakPyramid, waveformPeaks, zeroCrossingRate, zeroCrossings };
7494
+ 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 AnalyzerStats, Audio, type AutomationCurve, AutomationTargetKind, BUILTIN_SYNTH_WAVEFORMS, type BarChord, type Beat, type BindMicrophoneInputOptions, type BindWebMidiOptions, type BpmAnalysisResult, type BpmCandidate, type BpmHypothesis, type BrowserAudioDecodeOptions, type BuiltinSynthBinding, type BuiltinSynthConfig, type BuiltinSynthWaveform, type ChirpRequest, type Chord, type ChordAnalysisResult, type ChordChange, type ChordDetectionOptions, type ChordFunctionalAnalysisRequest, ChordQuality, type ChromaResult, type ChromaSpectrogramRequest, type ClicksRequest, ClipPageProvider, type ClipPageRequest, type ClipPageStreamSource, ClipPageStreamer, type ClipPageStreamerEngine, type ClipPageStreamerOptions, type ClipPageStreamerRequest, type ClippingRegion, type ClippingReport, type CompressorDetector, type CompressorOptions, type CqtRequest, type CqtResult, type CqtToAudioRequest, type CyclicTempogramRequest, type DbConversionRequest, type DeclickOptions, type DeclipOptions, type DecomposeRequest, type DecomposeResult, type DecomposeWithInitRequest, type DecrackleMode, type DecrackleOptions, type DehumOptions, type DenoiseClassicalMode, type DenoiseClassicalNoiseEstimator, type DenoiseClassicalOptions, type DereverbClassicalOptions, type DetectAcousticRequest, type DetectChordsRequest, type DetectKeyRequest, type DetectOnsetsRequest, type DynamicRangeReport, type Dynamics, type DynamicsAnalysisResult, type DynamicsResult, EXPECTED_ENGINE_ABI_VERSION, EXPECTED_PROJECT_ABI_VERSION, type Ebur128LoudnessRangeRequest, type EmphasisRequest, type EngineAutomationPoint, type EngineBounceOptions, type EngineBounceResult, type EngineBus, type EngineCapabilities, type EngineCaptureSource, type EngineCaptureStatus, type EngineClip, type EngineFreezeOptions, type EngineFreezeResult, type EngineGraphSpec, type EngineMarker, type EngineMeterTelemetry, type EngineMeterTelemetryWide, type EngineMetronomeConfig, type EngineMidiClipSchedule, type EngineMidiEvent, type EngineParameterInfo, type EngineScopeTelemetry, type EngineTelemetry, type EngineTempoSegment, type EngineTimeSignatureSegment, type EngineTrackLane, type EngineTrackMonitorMode, type EngineTrackSend, type EngineTransportState, type EqBand, type EqBandPhase, type EqBandType, type EqCoeffMode, type EqMatchOptions, type EqSpectrumSnapshot, type EqStereoPlacement, ErrorCode, type EstimateRoomRequest, type EstimateTuningRequest, type ExternalMidiEvent, type ExternalSeparatedStem, type ExternalSeparatedStemImportRequest, type ExternalSeparatedStemImportResult, type FixFramesRequest, type FixLengthRequest, type FourierTempogramRequest, type FrameBuffer, type FrameSignalRequest, type GateOptions, type GoniometerPoint, type GriffinLimRequest, type HarmonicRequest, type HpssRequest, type HpssResult, type HpssWithResidualRequest, type HpssWithResidualResult, type Key, type KeyCandidate, type KeyDetectionOptions, KeyProfile, type KeyProfileName, type LufsInterleavedRequest, type LufsRequest, type LufsResult, MarkerKind, type MasterAudioRequest, type MasterAudioStereoRequest, type MasteringChainConfig, type MasteringChainRequest, type MasteringChainResult, type MasteringChainStereoRequest, type MasteringChainStereoResult, type MasteringChannelPolicy, type MasteringDynamicsCompressorRequest, type MasteringDynamicsGateRequest, type MasteringDynamicsTransientShaperRequest, type MasteringInsertParamInfo, type MasteringLoudnessSummary, type MasteringOptions, type MasteringPairAnalyzeRequest, type MasteringPairProcessRequest, type MasteringPreset, type MasteringProcessRequest, type MasteringProcessStereoRequest, type MasteringProcessorCatalogEntry, type MasteringProcessorParams, type MasteringRealtimeCost, type MasteringRepairDeclickRequest, type MasteringRepairDeclipRequest, type MasteringRepairDecrackleRequest, type MasteringRepairDehumRequest, type MasteringRepairDenoiseClassicalRequest, type MasteringRepairDereverbClassicalRequest, type MasteringRepairTrimSilenceRequest, type MasteringReport, type MasteringRequest, type MasteringResult, type MasteringSamplesParamsRequest, type MasteringStereoAnalyzeRequest, type MasteringStereoChainResult, type MasteringStereoParamsRequest, type MasteringStereoResult, type MasteringStreamingPreviewRequest, type MasteringStreamingPreviewStereoRequest, type Matrix2dResult, type MelDeltaRequest, type MelPowerResult, type MelSpectrogramRequest, type MelSpectrogramResult, type MelToAudioRequest, type MelToStftRequest, 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 MicrophoneInputBinding, type MidiCcBindOptions, type MidiCcLearnOptions, type MixMeterSnapshot, type MixOptions, type MixResult, type MixStereoRequest, Mixer, type MixerProcessResult, type MixerRealtimeBuffer, Mode, type MusicAnalyzeRequest, type NnFilterRequest, type NnlsChromaRequest, type NormalizeMode, type NormalizeRequest, type NoteMoveRequest, type NoteSegment, type NoteSegmentsRequest, type NoteStretchOptions, type NoteStretchRequest, type OfflineWorker, type OfflineWorkerCallOptions, OfflineWorkerClient, type OfflineWorkerClientOptions, type OfflineWorkerProgress, OfflineWorkerTask, type OnsetBacktrackRequest, type OnsetEnvelopeRequest, type OnsetStrengthMultiRequest, type OpfsClipPageProviderBinding, type OpfsClipPageProviderOptions, type OpfsClipStream, type OpfsClipStreamOptions, PROJECT_AUTOMATION_TARGET_OPAQUE, PROJECT_AUTOMATION_TARGET_TRACK_FADER_DB, PROJECT_AUTOMATION_TARGET_TRACK_PAN, type PadCenterRequest, type PairAnalysis, type PairProcessor, type PanLaw, type PanLawInput, type PanLawName, type PanMode, type PatternScore, type PcenRequest, type PeakPickRequest, type PercussiveRequest, type PhaseScopeReport, type PhaseVocoderRequest, type PiptrackRequest, PitchClass as Pitch, PitchClass, type PitchCorrectOptions, type PitchCorrectTimevaryingRequest, type PitchCorrectToMidiRequest, type PitchCorrectToMidiTimevaryingRequest, type PitchPyinRequest, type PitchResult, type PitchShiftRequest, type PitchTuningRequest, type PitchYinRequest, type PlpRequest, type PolyFeaturesRequest, type ProgressiveEstimate, Project, type ProjectAssistSidecar, type ProjectAssistSidecarInput, type ProjectAutomationCurve, type ProjectAutomationLaneDesc, type ProjectAutomationPoint, type ProjectAutomationTargetKind, type ProjectBounceOptions, type ProjectChordSymbol, type ProjectClip, type ProjectClipCompSegment, type ProjectClipDesc, type ProjectClipFade, type ProjectClipTake, type ProjectCompileResult, type ProjectFadeCurve, type ProjectKeySegment, type ProjectLoopMode, type ProjectLoopRecordingDesc, type ProjectLoopRecordingResult, type ProjectMarker, type ProjectMidiClipResult, type ProjectMidiEvent, type ProjectMidiFxBakeRequest, type ProjectMidiFxBakeResult, type ProjectMidiFxPreviewRequest, type ProjectNotePairValidation, type ProjectSource, type ProjectTrack, type ProjectTrackDesc, type ProjectTrackKind, type ProjectWarpAnchor, type ProjectWarpMapDesc, RealtimeEngine, RealtimeVoiceChanger, type RealtimeVoiceChangerConfigInput, type RealtimeVoiceChangerInterleavedBuffer, type RealtimeVoiceChangerMonoBuffer, type RealtimeVoiceChangerPlanarBuffer, type RealtimeVoiceChangerPodConfig, type ReassignedSpectrogramRequest, type RemixRequest, type ResampleRequest, type RhythmAnalysisResult, type RhythmFeatures, type RirResult, type RirSynthOptions, type RoomEstimateOptions, type RoomEstimateResult, type RoomGeometryOptions, type RoomMorphOptions, type RoomMorphRequest, SYNTH_BODY_TYPES, SYNTH_ENGINE_MODES, SYNTH_FILTER_MODELS, SYNTH_FILTER_OUTPUTS, SYNTH_MOD_DESTINATIONS, SYNTH_MOD_SOURCES, SYNTH_OSC_WAVEFORMS, type SamplesRequest, type Section, SectionType, type SegmentAgglomerativeRequest, type SegmentCrossSimilarityRequest, type SegmentLagToRecurrenceRequest, type SegmentMatrix, type SegmentPathEnhanceRequest, type SegmentRecurrenceMatrixRequest, type SegmentRecurrenceToLagRequest, type SegmentSubsegmentRequest, type SendTiming, type Sf2InstrumentConfig, type Sf2ProgramStatus, type SilenceRequest, type SoloProcessor, type SonareCapabilities, SonareError, type SourceBackend, type SpectralContrastRequest, type SpectralEditMode, type SpectralEditOptions, type SpectralEditRequest, type SpectralEditWindow, type SpectralFrameRequest, type SpectralRegionOp, type SpectralRolloffRequest, type SpectrogramRequest, type SpectrumOptions, type SpectrumReport, type StageGainReduction, type StereoAnalysis, type StftPowerResult, type StftResult, StreamAnalyzer, type StreamConfig, type StreamConfigDefaults, type StreamFramesI16, type StreamFramesU8, type StreamQuantizeConfig, StreamingEqualizer, type StreamingEqualizerConfig, StreamingMasteringChain, type StreamingMasteringChainConfig, type StreamingPlatform, StreamingRetune, type StreamingRetuneConfig, type SynthBodyType, type SynthEngineMode, type SynthEnumTables, type SynthFilterModel, type SynthFilterOutput, type SynthModDestination, type SynthModRouting, type SynthModSource, type SynthOscWaveform, type SynthPatch, type TempogramMode, type TempogramRatioRequest, type TempogramRequest, type Timbre, type TimbreAnalysisResult, type TimbreFrame, type TimeSignature, type TimeStretchRequest, type ToneRequest, type TonnetzRequest, type TrackMonitorMode, type TransientShaperOptions, type TrimRequest, type TrimSilenceMode, type TrimSilenceOptions, type ValidateOptions, type VectorNormalizeRequest, type VectorscopeReport, type VoiceChangeOptions, type VoiceChangeRealtimeOptions, type VoiceChangeRealtimeRequest, type VoiceChangeRequest, type VoicePresetId, type VoicedFlags, type VqtRequest, type VqtToAudioRequest, type WaveformPeakPyramidOptions, type WaveformPeakPyramidRequest, type WaveformPeaksOptions, type WaveformPeaksReport, type WaveformPeaksRequest, type WebMidiBinding, type WebMidiCcBinding, type WebMidiInputInfo, type WorkletOpfsClipStreamHost, type ZeroCrossingRateRequest, type ZeroCrossingsRequest, abiVersion, amplitudeToDb, analyze, analyzeBpm, analyzeDynamics, analyzeImpulseResponse, analyzeMelody, analyzeRhythm, analyzeSections, analyzeTimbre, analyzeWithProgress, attachOpfsClipStream, bassChroma, bindMicrophoneInput, bindWebMidi, capabilities, capabilityCatalog, chirp, chordFunctionalAnalysis, chroma, chromaCens, chromaCqt, clicks, cqt, cqtToAudio, createOpfsClipPageProvider, createOpfsClipPageWorker, cyclicTempogram, dbToAmplitude, dbToPower, decompose, decomposeWithInit, deemphasis, detectAcoustic, detectBeats, detectBpm, detectChords, detectDownbeats, detectKey, detectKeyCandidates, detectOnsets, ebur128LoudnessRange, engineAbiVersion, engineCapabilities, estimateRoom, estimateTuning, fixFrames, fixLength, fourierTempogram, frameSignal, framesToSamples, framesToTime, griffinLim, harmonic, hasFfmpegSupport, hpss, hpssWithResidual, hybridCqt, hzToMel, hzToMidi, hzToNote, init, isInitialized, isSonareError, isWebMidiAvailable, lufs, lufsInterleaved, masterAudio, masterAudioStereo, masterAudioStereoWithProgress, masterAudioWithProgress, mastering, masteringAssistantSuggest, masteringAssistantSuggestStereo, masteringAudioProfile, masteringAudioProfileStereo, masteringChain, masteringChainStereo, masteringChainStereoWithProgress, masteringChainWithProgress, masteringDynamicsCompressor, masteringDynamicsGate, masteringDynamicsTransientShaper, masteringInsertNames, masteringInsertParamInfo, masteringInsertParamNames, masteringPairAnalysisNames, masteringPairAnalyze, masteringPairProcess, masteringPairProcessorNames, masteringPresetNames, masteringProcess, masteringProcessStereo, masteringProcessorCatalog, masteringProcessorNames, masteringRepairDeclick, masteringRepairDeclip, masteringRepairDecrackle, masteringRepairDehum, masteringRepairDenoiseClassical, masteringRepairDereverbClassical, masteringRepairTrimSilence, masteringStereoAnalysisNames, masteringStereoAnalyze, masteringStreamingPreview, masteringStreamingPreviewStereo, 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, mixStereo, mixingScenePresetJson, mixingScenePresetNames, momentaryLufs, nnFilter, nnlsChroma, normalize, noteMove, noteSegments, noteStretch, noteToHz, onsetBacktrack, onsetEnvelope, onsetStrengthMulti, opfsClipPageWorkerSource, padCenter, pcen, peakPick, percussive, phaseVocoder, piptrack, pitchCorrectTimevarying, pitchCorrectToMidi, pitchCorrectToMidiTimevarying, pitchPyin, pitchShift, pitchTuning, pitchYin, plp, polyFeatures, powerToDb, preemphasis, projectAbiVersion, pseudoCqt, realtimeVoiceChangerPresetConfig, realtimeVoiceChangerPresetJson, realtimeVoiceChangerPresetNames, reassignedSpectrogram, remix, resample, rmsEnergy, roomMorph, samplesToFrames, scaleCorrectionSemitones, scalePitchClassEnabled, scaleQuantizeMidi, segmentAgglomerative, segmentCrossSimilarity, segmentLagToRecurrence, segmentPathEnhance, segmentRecurrenceMatrix, segmentRecurrenceToLag, segmentSubsegment, shortTermLufs, spectralBandwidth, spectralCentroid, spectralContrast, spectralEdit, spectralFlatness, spectralFlux, spectralRolloff, splitSilence, stft, stftDb, streamAnalyzerConfigDefaults, synthEnumTables, synthPresetNames, synthPresetPatch, synthesizeRir, tempogram, tempogramRatio, timeStretch, timeToFrames, tone, tonnetz, trim, trimSilence, validateRealtimeVoiceChangerPresetJson, vectorNormalize, version, voiceChange, voiceChangeRealtime, voiceChangerAbiVersion, voiceCharacterPresetId, vqt, vqtToAudio, waveformPeakPyramid, waveformPeaks, zeroCrossingRate, zeroCrossings };