@libraz/libsonare 1.3.3 → 1.4.0
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/dist/index.d.ts +1 -1
- package/dist/index.js +168 -3
- package/dist/index.js.map +1 -1
- package/dist/sonare-rt-module.js +2 -2
- package/dist/sonare-rt.js +2 -2
- package/dist/sonare-rt.wasm +0 -0
- package/dist/sonare.js +2 -2
- package/dist/sonare.wasm +0 -0
- package/dist/worklet.d.ts +579 -154
- package/dist/worklet.js +622 -110
- package/dist/worklet.js.map +1 -1
- package/package.json +1 -1
- package/src/codes.ts +6 -1
- package/src/effects_mastering.ts +103 -1
- package/src/feature_music.ts +18 -4
- package/src/feature_spectral.ts +7 -1
- package/src/index.ts +14 -0
- package/src/mixer.ts +9 -0
- package/src/project.ts +74 -0
- package/src/public_types.ts +52 -0
- package/src/realtime_engine.ts +141 -2
- package/src/sonare.js.d.ts +81 -0
- package/src/stream_types.ts +7 -0
- package/src/validation.ts +7 -0
- package/src/worklet/audio_types.ts +2 -0
- package/src/worklet/guards.ts +146 -0
- package/src/worklet/messages.ts +461 -0
- package/src/worklet/protocol.ts +767 -0
- package/src/worklet.ts +541 -1106
package/dist/worklet.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { ProgressCallback, WasmNnlsChromaResult, WasmFourierTempogramResult, WasmCyclicTempogramResult, WasmFrameResult, WasmTempogramResult, WasmTrimResult, WasmDecomposeResult, WasmHpssWithResidualResult, WasmLufsResult, WasmMatrix2dResult, WasmEngineAutomationPoint, WasmEngineBounceOptions, WasmEngineBounceResult, WasmEngineCaptureStatus, WasmEngineClip, WasmEngineFreezeOptions, WasmEngineFreezeResult, WasmEngineGraphSpec, WasmEngineMarker, WasmEngineMeterTelemetry, WasmEngineMetronomeConfig, WasmEngineParameterInfo, WasmEngineTelemetry, WasmEngineTempoSegment, WasmEngineTimeSignatureSegment, WasmEngineTransportState, WasmClipPageRequest, WasmEngineProcessWithMonitorResult, SonareModule } from './sonare.js';
|
|
1
|
+
import { ProgressCallback, WasmNnlsChromaResult, WasmFourierTempogramResult, WasmCyclicTempogramResult, WasmFrameResult, WasmTempogramResult, WasmTrimResult, WasmDecomposeResult, WasmHpssWithResidualResult, WasmLufsResult, WasmMatrix2dResult, WasmEngineAutomationPoint, WasmEngineBounceOptions, WasmEngineBounceResult, WasmEngineCaptureStatus, WasmEngineClip, WasmEngineFreezeOptions, WasmEngineFreezeResult, WasmEngineGraphSpec, WasmEngineMarker, WasmEngineMeterTelemetry, WasmEngineMeterTelemetryWide, WasmEngineMetronomeConfig, WasmEngineParameterInfo, WasmEngineScopeTelemetry, WasmEngineTelemetry, WasmEngineTempoSegment, WasmEngineTimeSignatureSegment, WasmEngineTransportState, WasmClipPageRequest, WasmEngineProcessWithMonitorResult, SonareModule } from './sonare.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Per-call validation options accepted by guarded wrappers. Empty-buffer
|
|
5
5
|
* checks are always performed; pass `{ validate: false }` to opt out of the
|
|
6
6
|
* O(n) NaN/Inf scan on hot paths.
|
|
7
|
+
*
|
|
8
|
+
* `{ validate: false }` only skips this JS-side pre-scan (which raises a
|
|
9
|
+
* `RangeError` naming the exact offending index). It is NOT a way to push
|
|
10
|
+
* non-finite samples into the core: the native layer always re-validates the
|
|
11
|
+
* buffer (see `validate_offline_audio_input` in the C++ core), matching the C
|
|
12
|
+
* ABI / Node / Python surfaces, so an NaN/Inf buffer still throws — just with a
|
|
13
|
+
* generic native message instead of the indexed JS one.
|
|
7
14
|
*/
|
|
8
15
|
interface ValidateOptions {
|
|
9
16
|
validate?: boolean;
|
|
@@ -227,6 +234,36 @@ interface NoteStretchOptions {
|
|
|
227
234
|
/** Stretch ratio (0.5 = double duration, 2.0 = half duration). Default 1. */
|
|
228
235
|
stretchRatio?: number;
|
|
229
236
|
}
|
|
237
|
+
/** How a `spectralEdit` region op modifies the masked bins. */
|
|
238
|
+
type SpectralEditMode = 'gain' | 'attenuate' | 'mute' | 'heal';
|
|
239
|
+
/** Analysis/synthesis window used by `spectralEdit`. */
|
|
240
|
+
type SpectralEditWindow = 'hann' | 'hamming' | 'blackman' | 'rectangular';
|
|
241
|
+
/** One time x frequency rectangle edit op for `spectralEdit`. */
|
|
242
|
+
interface SpectralRegionOp {
|
|
243
|
+
/** Region time start (input samples); clamped to [0, length]. Default 0. */
|
|
244
|
+
startSample?: number;
|
|
245
|
+
/** Region time end, exclusive (input samples); clamped to [0, length]. Default = signal length. */
|
|
246
|
+
endSample?: number;
|
|
247
|
+
/** Region frequency low edge in Hz; clamped to [0, nyquist]. Default 0. */
|
|
248
|
+
lowHz?: number;
|
|
249
|
+
/** Region frequency high edge in Hz; <=0 or >= nyquist means nyquist. Default 0. */
|
|
250
|
+
highHz?: number;
|
|
251
|
+
/** Linear gain in dB for 'gain'/'attenuate'; ignored by 'mute'/'heal'. Default 0. */
|
|
252
|
+
gainDb?: number;
|
|
253
|
+
/** Edit mode. Default 'gain'. */
|
|
254
|
+
mode?: SpectralEditMode;
|
|
255
|
+
}
|
|
256
|
+
/** STFT + heal parameters for `spectralEdit`. All fields are optional. */
|
|
257
|
+
interface SpectralEditOptions {
|
|
258
|
+
/** FFT size; must be a power of two (>= 2). Default 2048. */
|
|
259
|
+
nFft?: number;
|
|
260
|
+
/** Hop length; must satisfy 0 < hop <= nFft/2. Default 512. */
|
|
261
|
+
hopLength?: number;
|
|
262
|
+
/** Analysis + synthesis window. Default 'hann'. */
|
|
263
|
+
window?: SpectralEditWindow;
|
|
264
|
+
/** Neighbour frames each side used by 'heal' (>= 1). Default 2. */
|
|
265
|
+
healRadiusFrames?: number;
|
|
266
|
+
}
|
|
230
267
|
/**
|
|
231
268
|
* Detected beat
|
|
232
269
|
*/
|
|
@@ -490,6 +527,23 @@ interface MasteringResult {
|
|
|
490
527
|
}
|
|
491
528
|
type MasteringProcessorParams = Record<string, number | boolean>;
|
|
492
529
|
type PanMode = 'balance' | 'stereoPan' | 'stereo-pan' | 'dualPan' | 'dual-pan' | number;
|
|
530
|
+
/**
|
|
531
|
+
* Surround pan position for a strip feeding a >2-channel bus. Phase 1 honors
|
|
532
|
+
* `azimuth`/`divergence`/`lfe`; `elevation`/`distance` are reserved. All fields
|
|
533
|
+
* are optional and default to a centered point source.
|
|
534
|
+
*/
|
|
535
|
+
interface SurroundPan {
|
|
536
|
+
/** -180..180 deg, 0 = front-center, positive = right. */
|
|
537
|
+
azimuth?: number;
|
|
538
|
+
/** Reserved (no height beds in phase 1). */
|
|
539
|
+
elevation?: number;
|
|
540
|
+
/** 0 = point source, 1 = spread across the front. */
|
|
541
|
+
divergence?: number;
|
|
542
|
+
/** 0..1 scalar send into the LFE plane. */
|
|
543
|
+
lfe?: number;
|
|
544
|
+
/** Reserved (focus/spread), defaults to 1. */
|
|
545
|
+
distance?: number;
|
|
546
|
+
}
|
|
493
547
|
interface MixOptions {
|
|
494
548
|
inputTrimDb?: number | number[];
|
|
495
549
|
faderDb?: number | number[];
|
|
@@ -1079,6 +1133,21 @@ declare function voiceChangeRealtime(samples: Float32Array, options?: VoiceChang
|
|
|
1079
1133
|
* @returns Normalized audio
|
|
1080
1134
|
*/
|
|
1081
1135
|
declare function normalize(samples: Float32Array, sampleRate: number, targetDb?: number, options?: ValidateOptions): Float32Array;
|
|
1136
|
+
/**
|
|
1137
|
+
* Apply region-based spectral edits (gain/attenuate/mute/heal) to mono audio.
|
|
1138
|
+
*
|
|
1139
|
+
* Each op is a time x frequency rectangle applied in array order over a single
|
|
1140
|
+
* STFT buffer, so a later op observes the result of earlier ops. The output has
|
|
1141
|
+
* the same length and sample rate as the input; an empty `ops` list is an
|
|
1142
|
+
* identity transform (within the iSTFT's own tolerance).
|
|
1143
|
+
*
|
|
1144
|
+
* @param samples - Audio samples (mono, float32)
|
|
1145
|
+
* @param sampleRate - Sample rate in Hz
|
|
1146
|
+
* @param ops - Region edit ops applied in order ({@link SpectralRegionOp})
|
|
1147
|
+
* @param options - STFT + heal configuration ({@link SpectralEditOptions})
|
|
1148
|
+
* @returns Edited audio
|
|
1149
|
+
*/
|
|
1150
|
+
declare function spectralEdit(samples: Float32Array, sampleRate: number, ops?: SpectralRegionOp[], options?: SpectralEditOptions & ValidateOptions): Float32Array;
|
|
1082
1151
|
/**
|
|
1083
1152
|
* Apply mastering loudness normalization with a true-peak ceiling.
|
|
1084
1153
|
*
|
|
@@ -1106,6 +1175,62 @@ declare function masteringInsertNames(): string[];
|
|
|
1106
1175
|
* @param name - Insert processor name (see {@link masteringInsertNames}).
|
|
1107
1176
|
*/
|
|
1108
1177
|
declare function masteringInsertParamNames(name: string): string[];
|
|
1178
|
+
/** One realtime-automatable parameter of an insert processor. */
|
|
1179
|
+
interface MasteringInsertParamInfo {
|
|
1180
|
+
/** JSON-key parameter name, as used in scene insert params. */
|
|
1181
|
+
name: string;
|
|
1182
|
+
/** Integer param id for realtime automation lanes / MIDI-CC binding. */
|
|
1183
|
+
id: number;
|
|
1184
|
+
/** Whether the param can be changed live from the audio thread. */
|
|
1185
|
+
rtSafe: boolean;
|
|
1186
|
+
}
|
|
1187
|
+
/**
|
|
1188
|
+
* Returns the realtime-automatable parameter descriptors for an insert / FX
|
|
1189
|
+
* processor: each entry maps a JSON-key parameter name to the integer id used by
|
|
1190
|
+
* realtime automation and reports whether it is realtime-safe. Unlike
|
|
1191
|
+
* {@link masteringInsertParamNames} (every construction key), this lists only the
|
|
1192
|
+
* realtime-controllable subset — the keys accepted by
|
|
1193
|
+
* {@link RealtimeEngine.setTrackStripInsertParamByName}. Returns an empty array
|
|
1194
|
+
* for an unknown name or a processor with no automatable parameters.
|
|
1195
|
+
*
|
|
1196
|
+
* @param name - Insert processor name (see {@link masteringInsertNames}).
|
|
1197
|
+
*/
|
|
1198
|
+
declare function masteringInsertParamInfo(name: string): MasteringInsertParamInfo[];
|
|
1199
|
+
/**
|
|
1200
|
+
* How a processor handles a buffer with more than two channels (a surround
|
|
1201
|
+
* bed). "multichannel" processes every plane in one call; "stereoPairOnly"
|
|
1202
|
+
* operates on the front L/R pair and passes any surround planes through dry.
|
|
1203
|
+
* "perChannel"/"passthrough" are reserved and unused by the current catalog.
|
|
1204
|
+
*/
|
|
1205
|
+
type MasteringChannelPolicy = 'multichannel' | 'stereoPairOnly' | 'perChannel' | 'passthrough';
|
|
1206
|
+
/** One processor's realtime/offline/pair classification in the catalog. */
|
|
1207
|
+
interface MasteringProcessorCatalogEntry {
|
|
1208
|
+
/** Processor id (the name used for scene inserts / named processors). */
|
|
1209
|
+
id: string;
|
|
1210
|
+
/**
|
|
1211
|
+
* Primary classification, by precedence pair > realtime > offline: "pair" for
|
|
1212
|
+
* two-input match.* processors, "realtime" for ids that build as a realtime
|
|
1213
|
+
* scene insert, "offline" for whole-file-only processors.
|
|
1214
|
+
*/
|
|
1215
|
+
kind: 'realtime' | 'offline' | 'pair';
|
|
1216
|
+
/** True exactly for ids that always succeed as a realtime scene insert. */
|
|
1217
|
+
realtimeInsertable: boolean;
|
|
1218
|
+
/** True for processors with no mono implementation (stereo-only). */
|
|
1219
|
+
stereoOnly: boolean;
|
|
1220
|
+
/**
|
|
1221
|
+
* How the mixer wraps the processor on a >2-channel (surround) bus insert:
|
|
1222
|
+
* "multichannel" (one full-buffer call) or "stereoPairOnly" (front L/R pair,
|
|
1223
|
+
* surround planes passed through dry).
|
|
1224
|
+
*/
|
|
1225
|
+
channelPolicy: MasteringChannelPolicy;
|
|
1226
|
+
}
|
|
1227
|
+
/**
|
|
1228
|
+
* Returns the machine-readable classification catalog for every named processor
|
|
1229
|
+
* id, merging the offline registry, the realtime insert factory, and the pair
|
|
1230
|
+
* registry. Lets a host filter a processor picker by realtime insertability
|
|
1231
|
+
* instead of offering ids the realtime strip would reject.
|
|
1232
|
+
*/
|
|
1233
|
+
declare function masteringProcessorCatalog(): MasteringProcessorCatalogEntry[];
|
|
1109
1234
|
declare function masteringPairProcessorNames(): PairProcessor[];
|
|
1110
1235
|
declare function masteringPairAnalysisNames(): PairAnalysis[];
|
|
1111
1236
|
declare function masteringStereoAnalysisNames(): StereoAnalysis[];
|
|
@@ -1670,7 +1795,9 @@ declare function tempogramRatio(tempogramData: Float32Array, winLength?: number,
|
|
|
1670
1795
|
* Measure loudness (EBU R128 / ITU-R BS.1770).
|
|
1671
1796
|
*
|
|
1672
1797
|
* @param samples - Audio samples (mono, float32)
|
|
1673
|
-
* @param sampleRate - Sample rate in Hz
|
|
1798
|
+
* @param sampleRate - Sample rate in Hz. The default (22050) is non-standard for
|
|
1799
|
+
* audio; pass the buffer's actual rate, as K-weighting is sample-rate
|
|
1800
|
+
* dependent and a wrong rate yields wrong loudness.
|
|
1674
1801
|
* @returns Loudness measurement result
|
|
1675
1802
|
*/
|
|
1676
1803
|
declare function lufs(samples: Float32Array, sampleRate?: number, options?: ValidateOptions): LufsResult;
|
|
@@ -1678,7 +1805,8 @@ declare function lufs(samples: Float32Array, sampleRate?: number, options?: Vali
|
|
|
1678
1805
|
* Compute the momentary loudness (LUFS) over time.
|
|
1679
1806
|
*
|
|
1680
1807
|
* @param samples - Audio samples (mono, float32)
|
|
1681
|
-
* @param sampleRate - Sample rate in Hz
|
|
1808
|
+
* @param sampleRate - Sample rate in Hz. The default (22050) is non-standard and
|
|
1809
|
+
* K-weighting is sample-rate dependent; pass the buffer's actual rate.
|
|
1682
1810
|
* @returns Momentary LUFS values over time
|
|
1683
1811
|
*/
|
|
1684
1812
|
declare function momentaryLufs(samples: Float32Array, sampleRate?: number, options?: ValidateOptions): Float32Array;
|
|
@@ -1686,7 +1814,8 @@ declare function momentaryLufs(samples: Float32Array, sampleRate?: number, optio
|
|
|
1686
1814
|
* Compute the short-term loudness (LUFS) over time.
|
|
1687
1815
|
*
|
|
1688
1816
|
* @param samples - Audio samples (mono, float32)
|
|
1689
|
-
* @param sampleRate - Sample rate in Hz
|
|
1817
|
+
* @param sampleRate - Sample rate in Hz. The default (22050) is non-standard and
|
|
1818
|
+
* K-weighting is sample-rate dependent; pass the buffer's actual rate.
|
|
1690
1819
|
* @returns Short-term LUFS values over time
|
|
1691
1820
|
*/
|
|
1692
1821
|
declare function shortTermLufs(samples: Float32Array, sampleRate?: number, options?: ValidateOptions): Float32Array;
|
|
@@ -1883,10 +2012,16 @@ declare function hpssWithResidual(samples: Float32Array, sampleRate?: number, ke
|
|
|
1883
2012
|
* Channel-weighted multichannel integrated loudness + LRA (ITU-R BS.1770 /
|
|
1884
2013
|
* EBU R128) from an interleaved buffer of `frames * channels` samples. The
|
|
1885
2014
|
* per-channel frame count is derived from the buffer length and `channels`.
|
|
2015
|
+
*
|
|
2016
|
+
* Pass the buffer's actual `sampleRate`: the default (22050) is non-standard for
|
|
2017
|
+
* audio, and K-weighting is sample-rate dependent, so a wrong rate yields wrong
|
|
2018
|
+
* loudness.
|
|
1886
2019
|
*/
|
|
1887
2020
|
declare function lufsInterleaved(samples: Float32Array, channels: number, sampleRate?: number, options?: ValidateOptions): WasmLufsResult;
|
|
1888
2021
|
/**
|
|
1889
|
-
* Standards-compliant EBU R128 loudness range (LRA) in LU.
|
|
2022
|
+
* Standards-compliant EBU R128 loudness range (LRA) in LU. Pass the buffer's
|
|
2023
|
+
* actual `sampleRate`: the default (22050) is non-standard and K-weighting is
|
|
2024
|
+
* sample-rate dependent.
|
|
1890
2025
|
*/
|
|
1891
2026
|
declare function ebur128LoudnessRange(samples: Float32Array, sampleRate?: number): number;
|
|
1892
2027
|
/**
|
|
@@ -2097,6 +2232,9 @@ declare function mfccToAudio(mfccCoefficients: Float32Array, nMfcc: number, nFra
|
|
|
2097
2232
|
*/
|
|
2098
2233
|
declare function chroma(samples: Float32Array, sampleRate?: number, nFft?: number, hopLength?: number, options?: GuardedOptions$1): ChromaResult;
|
|
2099
2234
|
|
|
2235
|
+
type WorkletInput = readonly (readonly Float32Array[])[];
|
|
2236
|
+
type WorkletOutput = Float32Array[][];
|
|
2237
|
+
|
|
2100
2238
|
interface SonareRtModule {
|
|
2101
2239
|
_malloc(size: number): number;
|
|
2102
2240
|
_free(ptr: number): void;
|
|
@@ -2154,6 +2292,179 @@ interface SonareRtModule {
|
|
|
2154
2292
|
): number;
|
|
2155
2293
|
}
|
|
2156
2294
|
|
|
2295
|
+
interface SonareWorkletMeterSnapshot {
|
|
2296
|
+
type: 'meter';
|
|
2297
|
+
targetId: number;
|
|
2298
|
+
frame: number;
|
|
2299
|
+
peakDbL: number;
|
|
2300
|
+
peakDbR: number;
|
|
2301
|
+
rmsDbL: number;
|
|
2302
|
+
rmsDbR: number;
|
|
2303
|
+
correlation: number;
|
|
2304
|
+
truePeakDbL: number;
|
|
2305
|
+
truePeakDbR: number;
|
|
2306
|
+
momentaryLufs: number;
|
|
2307
|
+
shortTermLufs: number;
|
|
2308
|
+
integratedLufs: number;
|
|
2309
|
+
gainReductionDb: number;
|
|
2310
|
+
}
|
|
2311
|
+
interface SonareWorkletSpectrumSnapshot {
|
|
2312
|
+
type: 'spectrum';
|
|
2313
|
+
frame: number;
|
|
2314
|
+
bands: Float32Array;
|
|
2315
|
+
}
|
|
2316
|
+
declare const SONARE_METER_RING_HEADER_INTS = 4;
|
|
2317
|
+
declare const SONARE_METER_RING_RECORD_FLOATS = 14;
|
|
2318
|
+
declare const SONARE_SPECTRUM_RING_HEADER_INTS = 5;
|
|
2319
|
+
declare const SONARE_SCOPE_RING_HEADER_INTS = 6;
|
|
2320
|
+
/** Low 24 bits of a frame index (exact in Float32). */
|
|
2321
|
+
declare function encodeFrameLo(frame: number): number;
|
|
2322
|
+
/** High bits of a frame index above 2^24 (exact in Float32 up to ~2^48). */
|
|
2323
|
+
declare function encodeFrameHi(frame: number): number;
|
|
2324
|
+
/** Reconstruct a frame index from its low/high Float32 lanes. */
|
|
2325
|
+
declare function decodeFrame(lo: number, hi: number): number;
|
|
2326
|
+
declare const SONARE_ENGINE_RING_HEADER_INTS = 5;
|
|
2327
|
+
declare const SONARE_ENGINE_COMMAND_RECORD_BYTES = 32;
|
|
2328
|
+
declare const SONARE_ENGINE_TELEMETRY_RECORD_BYTES = 48;
|
|
2329
|
+
declare enum SonareEngineCommandType {
|
|
2330
|
+
SetParam = 0,
|
|
2331
|
+
SetParamSmoothed = 1,
|
|
2332
|
+
TransportPlay = 2,
|
|
2333
|
+
TransportStop = 3,
|
|
2334
|
+
TransportSeekSample = 4,
|
|
2335
|
+
TransportSeekPpq = 5,
|
|
2336
|
+
SetTempoMap = 6,
|
|
2337
|
+
SetLoop = 7,
|
|
2338
|
+
SwapGraph = 8,
|
|
2339
|
+
SwapAutomation = 9,
|
|
2340
|
+
SetSoloMute = 10,
|
|
2341
|
+
AddClip = 11,
|
|
2342
|
+
RemoveClip = 12,
|
|
2343
|
+
ArmRecord = 13,
|
|
2344
|
+
Punch = 14,
|
|
2345
|
+
SetMetronome = 15,
|
|
2346
|
+
SetMarker = 16,
|
|
2347
|
+
SeekMarker = 17
|
|
2348
|
+
}
|
|
2349
|
+
declare enum SonareEngineTelemetryType {
|
|
2350
|
+
ProcessBlock = 0,
|
|
2351
|
+
Error = 1
|
|
2352
|
+
}
|
|
2353
|
+
declare enum SonareEngineTelemetryError {
|
|
2354
|
+
None = 0,
|
|
2355
|
+
CommandQueueOverflow = 1,
|
|
2356
|
+
PendingCommandOverflow = 2,
|
|
2357
|
+
BoundaryOverflow = 3,
|
|
2358
|
+
TelemetryOverflow = 4,
|
|
2359
|
+
CaptureOverflow = 5,
|
|
2360
|
+
MaxBlockExceeded = 6,
|
|
2361
|
+
UnknownTarget = 7,
|
|
2362
|
+
NonRealtimeSafeParameter = 8,
|
|
2363
|
+
NotPrepared = 9,
|
|
2364
|
+
NonQueueableCommand = 10,
|
|
2365
|
+
AutomationBindTargetOverflow = 11,
|
|
2366
|
+
StaleAutomationLanes = 12,
|
|
2367
|
+
SmoothedParameterCapacity = 13
|
|
2368
|
+
}
|
|
2369
|
+
interface SonareMeterRingBuffer {
|
|
2370
|
+
sharedBuffer: SharedArrayBuffer;
|
|
2371
|
+
header: Int32Array;
|
|
2372
|
+
records: Float32Array;
|
|
2373
|
+
capacity: number;
|
|
2374
|
+
}
|
|
2375
|
+
interface SonareMeterRingReadResult {
|
|
2376
|
+
nextReadIndex: number;
|
|
2377
|
+
meters: SonareWorkletMeterSnapshot[];
|
|
2378
|
+
}
|
|
2379
|
+
interface SonareSpectrumRingBuffer {
|
|
2380
|
+
sharedBuffer: SharedArrayBuffer;
|
|
2381
|
+
header: Int32Array;
|
|
2382
|
+
records: Float32Array;
|
|
2383
|
+
capacity: number;
|
|
2384
|
+
bands: number;
|
|
2385
|
+
}
|
|
2386
|
+
interface SonareSpectrumRingReadResult {
|
|
2387
|
+
nextReadIndex: number;
|
|
2388
|
+
spectra: SonareWorkletSpectrumSnapshot[];
|
|
2389
|
+
}
|
|
2390
|
+
/**
|
|
2391
|
+
* A single target-addressed scope record drained from the realtime engine's
|
|
2392
|
+
* scope ring: an FFT magnitude spectrum plus a decimated goniometer/vectorscope
|
|
2393
|
+
* point cloud. Unlike {@link SonareWorkletSpectrumSnapshot} (the legacy
|
|
2394
|
+
* coarse-DFT meter spectrum), this carries a `targetId` (master/lane/bus) and a
|
|
2395
|
+
* stereo point cloud, mirroring the engine's `ScopeTelemetryRecord`.
|
|
2396
|
+
*/
|
|
2397
|
+
interface SonareWorkletScopeSnapshot {
|
|
2398
|
+
type: 'scope';
|
|
2399
|
+
targetId: number;
|
|
2400
|
+
frame: number;
|
|
2401
|
+
/** Linear-band magnitudes in dB (length = the configured band count). */
|
|
2402
|
+
bands: Float32Array;
|
|
2403
|
+
/** Interleaved stereo goniometer points: [l0, r0, l1, r1, ...]. */
|
|
2404
|
+
points: Float32Array;
|
|
2405
|
+
}
|
|
2406
|
+
interface SonareScopeRingBuffer {
|
|
2407
|
+
sharedBuffer: SharedArrayBuffer;
|
|
2408
|
+
header: Int32Array;
|
|
2409
|
+
records: Float32Array;
|
|
2410
|
+
capacity: number;
|
|
2411
|
+
bands: number;
|
|
2412
|
+
maxPoints: number;
|
|
2413
|
+
}
|
|
2414
|
+
interface SonareScopeRingReadResult {
|
|
2415
|
+
nextReadIndex: number;
|
|
2416
|
+
scopes: SonareWorkletScopeSnapshot[];
|
|
2417
|
+
}
|
|
2418
|
+
interface SonareEngineCommandRecord {
|
|
2419
|
+
type: SonareEngineCommandType | number;
|
|
2420
|
+
targetId?: number;
|
|
2421
|
+
sampleTime?: number | bigint;
|
|
2422
|
+
argFloat?: number;
|
|
2423
|
+
argInt?: number | bigint;
|
|
2424
|
+
}
|
|
2425
|
+
interface SonareEngineTelemetryRecord {
|
|
2426
|
+
type: SonareEngineTelemetryType | number;
|
|
2427
|
+
error: SonareEngineTelemetryError | number;
|
|
2428
|
+
renderFrame: number;
|
|
2429
|
+
timelineSample: number;
|
|
2430
|
+
audibleTimelineSample: number;
|
|
2431
|
+
graphLatencySamplesQ8: number;
|
|
2432
|
+
value: number;
|
|
2433
|
+
}
|
|
2434
|
+
interface SonareEngineCommandRingBuffer {
|
|
2435
|
+
sharedBuffer: SharedArrayBuffer;
|
|
2436
|
+
header: Int32Array;
|
|
2437
|
+
view: DataView;
|
|
2438
|
+
capacity: number;
|
|
2439
|
+
}
|
|
2440
|
+
interface SonareEngineTelemetryRingBuffer {
|
|
2441
|
+
sharedBuffer: SharedArrayBuffer;
|
|
2442
|
+
header: Int32Array;
|
|
2443
|
+
view: DataView;
|
|
2444
|
+
capacity: number;
|
|
2445
|
+
}
|
|
2446
|
+
interface SonareEngineTelemetryRingReadResult {
|
|
2447
|
+
nextReadIndex: number;
|
|
2448
|
+
telemetry: SonareEngineTelemetryRecord[];
|
|
2449
|
+
}
|
|
2450
|
+
declare function sonareMeterRingBufferByteLength(capacity: number): number;
|
|
2451
|
+
declare function createSonareMeterRingBuffer(capacity?: number): SonareMeterRingBuffer;
|
|
2452
|
+
declare function readSonareMeterRingBuffer(ring: SonareMeterRingBuffer, readIndex?: number): SonareMeterRingReadResult;
|
|
2453
|
+
declare function sonareSpectrumRingBufferByteLength(capacity: number, bands?: number): number;
|
|
2454
|
+
declare function createSonareSpectrumRingBuffer(capacity?: number, bands?: number): SonareSpectrumRingBuffer;
|
|
2455
|
+
declare function readSonareSpectrumRingBuffer(ring: SonareSpectrumRingBuffer, readIndex?: number): SonareSpectrumRingReadResult;
|
|
2456
|
+
declare function sonareScopeRingBufferByteLength(capacity: number, bands?: number, maxPoints?: number): number;
|
|
2457
|
+
declare function createSonareScopeRingBuffer(capacity?: number, bands?: number, maxPoints?: number): SonareScopeRingBuffer;
|
|
2458
|
+
declare function readSonareScopeRingBuffer(ring: SonareScopeRingBuffer, readIndex?: number): SonareScopeRingReadResult;
|
|
2459
|
+
declare function sonareEngineCommandRingBufferByteLength(capacity: number): number;
|
|
2460
|
+
declare function sonareEngineTelemetryRingBufferByteLength(capacity: number): number;
|
|
2461
|
+
declare function createSonareEngineCommandRingBuffer(capacity?: number): SonareEngineCommandRingBuffer;
|
|
2462
|
+
declare function createSonareEngineTelemetryRingBuffer(capacity?: number): SonareEngineTelemetryRingBuffer;
|
|
2463
|
+
declare function pushSonareEngineCommandRingBuffer(ring: SonareEngineCommandRingBuffer, command: SonareEngineCommandRecord): boolean;
|
|
2464
|
+
declare function popSonareEngineCommandRingBuffer(ring: SonareEngineCommandRingBuffer): SonareEngineCommandRecord | null;
|
|
2465
|
+
declare function writeSonareEngineTelemetryRingBuffer(ring: SonareEngineTelemetryRingBuffer, telemetry: SonareEngineTelemetryRecord): void;
|
|
2466
|
+
declare function readSonareEngineTelemetryRingBuffer(ring: SonareEngineTelemetryRingBuffer, readIndex?: number): SonareEngineTelemetryRingReadResult;
|
|
2467
|
+
|
|
2157
2468
|
interface SonareWorkletProcessorOptions {
|
|
2158
2469
|
sceneJson: string;
|
|
2159
2470
|
sampleRate?: number;
|
|
@@ -2184,6 +2495,10 @@ interface SonareRealtimeEngineWorkletProcessorOptions {
|
|
|
2184
2495
|
telemetryRingCapacity?: number;
|
|
2185
2496
|
meterSharedBuffer?: SharedArrayBuffer;
|
|
2186
2497
|
meterRingCapacity?: number;
|
|
2498
|
+
scopeIntervalFrames?: number;
|
|
2499
|
+
scopeBands?: number;
|
|
2500
|
+
scopeSharedBuffer?: SharedArrayBuffer;
|
|
2501
|
+
scopeRingCapacity?: number;
|
|
2187
2502
|
}
|
|
2188
2503
|
interface SonareRealtimeVoiceChangerWorkletProcessorOptions {
|
|
2189
2504
|
preset?: RealtimeVoiceChangerConfigInput;
|
|
@@ -2235,11 +2550,6 @@ interface SonareRtRealtimeEngineRuntimeOptions {
|
|
|
2235
2550
|
telemetrySharedBuffer?: SharedArrayBuffer;
|
|
2236
2551
|
telemetryRingCapacity?: number;
|
|
2237
2552
|
}
|
|
2238
|
-
interface SonareEngineOptions extends SonareRealtimeEngineNodeOptions {
|
|
2239
|
-
offlineEngine?: RealtimeEngine;
|
|
2240
|
-
offlineBlockSize?: number;
|
|
2241
|
-
offlineChannelCount?: number;
|
|
2242
|
-
}
|
|
2243
2553
|
interface SonareEngineTransportFacade {
|
|
2244
2554
|
play(sampleTime?: number): boolean;
|
|
2245
2555
|
stop(sampleTime?: number): boolean;
|
|
@@ -2249,8 +2559,6 @@ interface SonareEngineTransportFacade {
|
|
|
2249
2559
|
setTempoSegments(segments: readonly EngineTempoSegment[]): void;
|
|
2250
2560
|
setLoop(startPpq: number, endPpq: number, enabled?: boolean): boolean;
|
|
2251
2561
|
}
|
|
2252
|
-
type WorkletInput = readonly (readonly Float32Array[])[];
|
|
2253
|
-
type WorkletOutput = Float32Array[][];
|
|
2254
2562
|
interface SonareWorkletScheduleInsertAutomationMessage {
|
|
2255
2563
|
type: 'scheduleInsertAutomation';
|
|
2256
2564
|
stripIndex: number;
|
|
@@ -2268,113 +2576,12 @@ interface SonareWorkletDestroyMessage {
|
|
|
2268
2576
|
type: 'destroy';
|
|
2269
2577
|
}
|
|
2270
2578
|
type SonareWorkletMessage = SonareWorkletScheduleInsertAutomationMessage | SonareWorkletSetMeterIntervalMessage | SonareWorkletDestroyMessage;
|
|
2271
|
-
interface SonareWorkletMeterSnapshot {
|
|
2272
|
-
type: 'meter';
|
|
2273
|
-
targetId: number;
|
|
2274
|
-
frame: number;
|
|
2275
|
-
peakDbL: number;
|
|
2276
|
-
peakDbR: number;
|
|
2277
|
-
rmsDbL: number;
|
|
2278
|
-
rmsDbR: number;
|
|
2279
|
-
correlation: number;
|
|
2280
|
-
truePeakDbL: number;
|
|
2281
|
-
truePeakDbR: number;
|
|
2282
|
-
momentaryLufs: number;
|
|
2283
|
-
shortTermLufs: number;
|
|
2284
|
-
integratedLufs: number;
|
|
2285
|
-
gainReductionDb: number;
|
|
2286
|
-
}
|
|
2287
|
-
interface SonareWorkletSpectrumSnapshot {
|
|
2288
|
-
type: 'spectrum';
|
|
2289
|
-
frame: number;
|
|
2290
|
-
bands: Float32Array;
|
|
2291
|
-
}
|
|
2292
2579
|
type SonareWorkletTransportMessage = SonareWorkletMeterSnapshot | SonareWorkletSpectrumSnapshot | SonareEngineTelemetryRecord;
|
|
2293
|
-
declare const SONARE_METER_RING_HEADER_INTS = 4;
|
|
2294
|
-
declare const SONARE_METER_RING_RECORD_FLOATS = 14;
|
|
2295
|
-
declare const SONARE_SPECTRUM_RING_HEADER_INTS = 5;
|
|
2296
|
-
/** Low 24 bits of a frame index (exact in Float32). */
|
|
2297
|
-
declare function encodeFrameLo(frame: number): number;
|
|
2298
|
-
/** High bits of a frame index above 2^24 (exact in Float32 up to ~2^48). */
|
|
2299
|
-
declare function encodeFrameHi(frame: number): number;
|
|
2300
|
-
/** Reconstruct a frame index from its low/high Float32 lanes. */
|
|
2301
|
-
declare function decodeFrame(lo: number, hi: number): number;
|
|
2302
|
-
declare const SONARE_ENGINE_RING_HEADER_INTS = 5;
|
|
2303
|
-
declare const SONARE_ENGINE_COMMAND_RECORD_BYTES = 32;
|
|
2304
|
-
declare const SONARE_ENGINE_TELEMETRY_RECORD_BYTES = 48;
|
|
2305
|
-
declare enum SonareEngineCommandType {
|
|
2306
|
-
SetParam = 0,
|
|
2307
|
-
SetParamSmoothed = 1,
|
|
2308
|
-
TransportPlay = 2,
|
|
2309
|
-
TransportStop = 3,
|
|
2310
|
-
TransportSeekSample = 4,
|
|
2311
|
-
TransportSeekPpq = 5,
|
|
2312
|
-
SetTempoMap = 6,
|
|
2313
|
-
SetLoop = 7,
|
|
2314
|
-
SwapGraph = 8,
|
|
2315
|
-
SwapAutomation = 9,
|
|
2316
|
-
SetSoloMute = 10,
|
|
2317
|
-
AddClip = 11,
|
|
2318
|
-
RemoveClip = 12,
|
|
2319
|
-
ArmRecord = 13,
|
|
2320
|
-
Punch = 14,
|
|
2321
|
-
SetMetronome = 15,
|
|
2322
|
-
SetMarker = 16,
|
|
2323
|
-
SeekMarker = 17
|
|
2324
|
-
}
|
|
2325
|
-
declare enum SonareEngineTelemetryType {
|
|
2326
|
-
ProcessBlock = 0,
|
|
2327
|
-
Error = 1
|
|
2328
|
-
}
|
|
2329
|
-
declare enum SonareEngineTelemetryError {
|
|
2330
|
-
None = 0,
|
|
2331
|
-
CommandQueueOverflow = 1,
|
|
2332
|
-
PendingCommandOverflow = 2,
|
|
2333
|
-
BoundaryOverflow = 3,
|
|
2334
|
-
TelemetryOverflow = 4,
|
|
2335
|
-
CaptureOverflow = 5,
|
|
2336
|
-
MaxBlockExceeded = 6,
|
|
2337
|
-
UnknownTarget = 7,
|
|
2338
|
-
NonRealtimeSafeParameter = 8,
|
|
2339
|
-
NotPrepared = 9,
|
|
2340
|
-
NonQueueableCommand = 10,
|
|
2341
|
-
AutomationBindTargetOverflow = 11,
|
|
2342
|
-
StaleAutomationLanes = 12,
|
|
2343
|
-
SmoothedParameterCapacity = 13
|
|
2344
|
-
}
|
|
2345
2580
|
interface WorkletTransport {
|
|
2346
2581
|
postMessage?: (message: SonareWorkletTransportMessage | SonareEngineCaptureResponseMessage | SonareEngineTransportResponseMessage, transfer?: Transferable[]) => void;
|
|
2347
2582
|
onMeter?: (meter: SonareWorkletMeterSnapshot) => void;
|
|
2348
2583
|
onSpectrum?: (spectrum: SonareWorkletSpectrumSnapshot) => void;
|
|
2349
2584
|
}
|
|
2350
|
-
interface SonareMeterRingBuffer {
|
|
2351
|
-
sharedBuffer: SharedArrayBuffer;
|
|
2352
|
-
header: Int32Array;
|
|
2353
|
-
records: Float32Array;
|
|
2354
|
-
capacity: number;
|
|
2355
|
-
}
|
|
2356
|
-
interface SonareMeterRingReadResult {
|
|
2357
|
-
nextReadIndex: number;
|
|
2358
|
-
meters: SonareWorkletMeterSnapshot[];
|
|
2359
|
-
}
|
|
2360
|
-
interface SonareSpectrumRingBuffer {
|
|
2361
|
-
sharedBuffer: SharedArrayBuffer;
|
|
2362
|
-
header: Int32Array;
|
|
2363
|
-
records: Float32Array;
|
|
2364
|
-
capacity: number;
|
|
2365
|
-
bands: number;
|
|
2366
|
-
}
|
|
2367
|
-
interface SonareSpectrumRingReadResult {
|
|
2368
|
-
nextReadIndex: number;
|
|
2369
|
-
spectra: SonareWorkletSpectrumSnapshot[];
|
|
2370
|
-
}
|
|
2371
|
-
interface SonareEngineCommandRecord {
|
|
2372
|
-
type: SonareEngineCommandType | number;
|
|
2373
|
-
targetId?: number;
|
|
2374
|
-
sampleTime?: number | bigint;
|
|
2375
|
-
argFloat?: number;
|
|
2376
|
-
argInt?: number | bigint;
|
|
2377
|
-
}
|
|
2378
2585
|
interface SonareEngineSyncClipsMessage {
|
|
2379
2586
|
type: 'syncClips';
|
|
2380
2587
|
clips: EngineClip[];
|
|
@@ -2424,6 +2631,12 @@ interface SonareEngineSyncMixerMessage {
|
|
|
2424
2631
|
sceneJson: string;
|
|
2425
2632
|
}>;
|
|
2426
2633
|
masterStripJson?: string;
|
|
2634
|
+
/** Lane insert sidechain bindings (replayed after lanes/strips). */
|
|
2635
|
+
laneSidechains?: Array<{
|
|
2636
|
+
trackId: number;
|
|
2637
|
+
insertIndex: number;
|
|
2638
|
+
sourceTrackId: number;
|
|
2639
|
+
}>;
|
|
2427
2640
|
}
|
|
2428
2641
|
interface SonareEngineSyncCaptureMessage {
|
|
2429
2642
|
type: 'syncCapture';
|
|
@@ -2460,6 +2673,45 @@ interface SonareEngineSyncMasterStripInsertBypassedMessage {
|
|
|
2460
2673
|
bypassed: boolean;
|
|
2461
2674
|
resetOnBypass: boolean;
|
|
2462
2675
|
}
|
|
2676
|
+
interface SonareEngineSyncTrackStripInsertParamByNameMessage {
|
|
2677
|
+
type: 'syncTrackStripInsertParamByName';
|
|
2678
|
+
trackId: number;
|
|
2679
|
+
insertIndex: number;
|
|
2680
|
+
paramName: string;
|
|
2681
|
+
value: number;
|
|
2682
|
+
}
|
|
2683
|
+
interface SonareEngineSyncMasterStripInsertParamByNameMessage {
|
|
2684
|
+
type: 'syncMasterStripInsertParamByName';
|
|
2685
|
+
insertIndex: number;
|
|
2686
|
+
paramName: string;
|
|
2687
|
+
value: number;
|
|
2688
|
+
}
|
|
2689
|
+
interface SonareEngineSyncTrackStripPanMessage {
|
|
2690
|
+
type: 'syncTrackStripPan';
|
|
2691
|
+
trackId: number;
|
|
2692
|
+
pan: number;
|
|
2693
|
+
}
|
|
2694
|
+
interface SonareEngineSyncTrackStripPanLawMessage {
|
|
2695
|
+
type: 'syncTrackStripPanLaw';
|
|
2696
|
+
trackId: number;
|
|
2697
|
+
panLaw: number;
|
|
2698
|
+
}
|
|
2699
|
+
interface SonareEngineSyncTrackStripPanModeMessage {
|
|
2700
|
+
type: 'syncTrackStripPanMode';
|
|
2701
|
+
trackId: number;
|
|
2702
|
+
panMode: number;
|
|
2703
|
+
}
|
|
2704
|
+
interface SonareEngineSyncTrackStripDualPanMessage {
|
|
2705
|
+
type: 'syncTrackStripDualPan';
|
|
2706
|
+
trackId: number;
|
|
2707
|
+
leftPan: number;
|
|
2708
|
+
rightPan: number;
|
|
2709
|
+
}
|
|
2710
|
+
interface SonareEngineSyncTrackStripChannelDelaySamplesMessage {
|
|
2711
|
+
type: 'syncTrackStripChannelDelaySamples';
|
|
2712
|
+
trackId: number;
|
|
2713
|
+
delaySamples: number;
|
|
2714
|
+
}
|
|
2463
2715
|
interface SonareEngineSyncBuiltinInstrumentMessage {
|
|
2464
2716
|
type: 'syncBuiltinInstrument';
|
|
2465
2717
|
destinationId: number;
|
|
@@ -2507,32 +2759,7 @@ interface SonareEngineSyncMidiPanicMessage {
|
|
|
2507
2759
|
type: 'syncMidiPanic';
|
|
2508
2760
|
renderFrame: number;
|
|
2509
2761
|
}
|
|
2510
|
-
type SonareEngineSyncMessage = SonareEngineSyncClipsMessage | SonareEngineSyncClipsDeltaMessage | SonareEngineSyncMidiClipsMessage | SonareEngineSyncMarkersMessage | SonareEngineSyncMetronomeMessage | SonareEngineSyncAutomationMessage | SonareEngineSyncTempoMessage | SonareEngineSyncMixerMessage | SonareEngineSyncCaptureMessage | SonareEngineSyncTrackStripEqBandMessage | SonareEngineSyncMasterStripEqBandMessage | SonareEngineSyncTrackStripInsertBypassedMessage | SonareEngineSyncMasterStripInsertBypassedMessage | SonareEngineSyncBuiltinInstrumentMessage | SonareEngineSyncSynthInstrumentMessage | SonareEngineSyncSf2InstrumentMessage | SonareEngineSyncLoadSoundFontMessage | SonareEngineSyncMidiNoteMessage | SonareEngineSyncMidiCcMessage | SonareEngineSyncMidiPanicMessage;
|
|
2511
|
-
interface SonareEngineTelemetryRecord {
|
|
2512
|
-
type: SonareEngineTelemetryType | number;
|
|
2513
|
-
error: SonareEngineTelemetryError | number;
|
|
2514
|
-
renderFrame: number;
|
|
2515
|
-
timelineSample: number;
|
|
2516
|
-
audibleTimelineSample: number;
|
|
2517
|
-
graphLatencySamplesQ8: number;
|
|
2518
|
-
value: number;
|
|
2519
|
-
}
|
|
2520
|
-
interface SonareEngineCommandRingBuffer {
|
|
2521
|
-
sharedBuffer: SharedArrayBuffer;
|
|
2522
|
-
header: Int32Array;
|
|
2523
|
-
view: DataView;
|
|
2524
|
-
capacity: number;
|
|
2525
|
-
}
|
|
2526
|
-
interface SonareEngineTelemetryRingBuffer {
|
|
2527
|
-
sharedBuffer: SharedArrayBuffer;
|
|
2528
|
-
header: Int32Array;
|
|
2529
|
-
view: DataView;
|
|
2530
|
-
capacity: number;
|
|
2531
|
-
}
|
|
2532
|
-
interface SonareEngineTelemetryRingReadResult {
|
|
2533
|
-
nextReadIndex: number;
|
|
2534
|
-
telemetry: SonareEngineTelemetryRecord[];
|
|
2535
|
-
}
|
|
2762
|
+
type SonareEngineSyncMessage = SonareEngineSyncClipsMessage | SonareEngineSyncClipsDeltaMessage | SonareEngineSyncMidiClipsMessage | SonareEngineSyncMarkersMessage | SonareEngineSyncMetronomeMessage | SonareEngineSyncAutomationMessage | SonareEngineSyncTempoMessage | SonareEngineSyncMixerMessage | SonareEngineSyncCaptureMessage | SonareEngineSyncTrackStripEqBandMessage | SonareEngineSyncMasterStripEqBandMessage | SonareEngineSyncTrackStripInsertBypassedMessage | SonareEngineSyncMasterStripInsertBypassedMessage | SonareEngineSyncTrackStripInsertParamByNameMessage | SonareEngineSyncMasterStripInsertParamByNameMessage | SonareEngineSyncTrackStripPanMessage | SonareEngineSyncTrackStripPanLawMessage | SonareEngineSyncTrackStripPanModeMessage | SonareEngineSyncTrackStripDualPanMessage | SonareEngineSyncTrackStripChannelDelaySamplesMessage | SonareEngineSyncBuiltinInstrumentMessage | SonareEngineSyncSynthInstrumentMessage | SonareEngineSyncSf2InstrumentMessage | SonareEngineSyncLoadSoundFontMessage | SonareEngineSyncMidiNoteMessage | SonareEngineSyncMidiCcMessage | SonareEngineSyncMidiPanicMessage;
|
|
2536
2763
|
interface WorkletPort {
|
|
2537
2764
|
postMessage?: (message: unknown, transfer?: Transferable[]) => void;
|
|
2538
2765
|
onmessage?: (event: {
|
|
@@ -2568,20 +2795,12 @@ interface SonareEngineTransportResponseMessage {
|
|
|
2568
2795
|
state?: EngineTransportState;
|
|
2569
2796
|
error?: string;
|
|
2570
2797
|
}
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
declare function sonareEngineCommandRingBufferByteLength(capacity: number): number;
|
|
2578
|
-
declare function sonareEngineTelemetryRingBufferByteLength(capacity: number): number;
|
|
2579
|
-
declare function createSonareEngineCommandRingBuffer(capacity?: number): SonareEngineCommandRingBuffer;
|
|
2580
|
-
declare function createSonareEngineTelemetryRingBuffer(capacity?: number): SonareEngineTelemetryRingBuffer;
|
|
2581
|
-
declare function pushSonareEngineCommandRingBuffer(ring: SonareEngineCommandRingBuffer, command: SonareEngineCommandRecord): boolean;
|
|
2582
|
-
declare function popSonareEngineCommandRingBuffer(ring: SonareEngineCommandRingBuffer): SonareEngineCommandRecord | null;
|
|
2583
|
-
declare function writeSonareEngineTelemetryRingBuffer(ring: SonareEngineTelemetryRingBuffer, telemetry: SonareEngineTelemetryRecord): void;
|
|
2584
|
-
declare function readSonareEngineTelemetryRingBuffer(ring: SonareEngineTelemetryRingBuffer, readIndex?: number): SonareEngineTelemetryRingReadResult;
|
|
2798
|
+
|
|
2799
|
+
interface SonareEngineOptions extends SonareRealtimeEngineNodeOptions {
|
|
2800
|
+
offlineEngine?: RealtimeEngine;
|
|
2801
|
+
offlineBlockSize?: number;
|
|
2802
|
+
offlineChannelCount?: number;
|
|
2803
|
+
}
|
|
2585
2804
|
/**
|
|
2586
2805
|
* AudioWorklet-style mixer bridge backed by the package's single `sonare.wasm`.
|
|
2587
2806
|
*
|
|
@@ -2633,6 +2852,7 @@ declare class SonareRealtimeEngineWorkletProcessor {
|
|
|
2633
2852
|
private commandRing?;
|
|
2634
2853
|
private telemetryRing?;
|
|
2635
2854
|
private meterRing?;
|
|
2855
|
+
private scopeRing?;
|
|
2636
2856
|
private transport?;
|
|
2637
2857
|
private meterIntervalFrames;
|
|
2638
2858
|
private lastMeterFrame;
|
|
@@ -2653,6 +2873,8 @@ declare class SonareRealtimeEngineWorkletProcessor {
|
|
|
2653
2873
|
private publishTelemetryRecord;
|
|
2654
2874
|
private publishMeters;
|
|
2655
2875
|
private writeMeterRing;
|
|
2876
|
+
private publishScope;
|
|
2877
|
+
private writeScopeRing;
|
|
2656
2878
|
private commandRingFromSharedBuffer;
|
|
2657
2879
|
private telemetryRingFromSharedBuffer;
|
|
2658
2880
|
}
|
|
@@ -2691,11 +2913,14 @@ declare class SonareRealtimeEngineNode {
|
|
|
2691
2913
|
readonly commandRing?: SonareEngineCommandRingBuffer;
|
|
2692
2914
|
readonly telemetryRing?: SonareEngineTelemetryRingBuffer;
|
|
2693
2915
|
readonly meterRing?: SonareMeterRingBuffer;
|
|
2916
|
+
readonly scopeRing?: SonareScopeRingBuffer;
|
|
2694
2917
|
readonly ready: Promise<void>;
|
|
2695
2918
|
private telemetryReadIndex;
|
|
2696
2919
|
private meterReadIndex;
|
|
2920
|
+
private scopeReadIndex;
|
|
2697
2921
|
private telemetryListeners;
|
|
2698
2922
|
private meterListeners;
|
|
2923
|
+
private scopeListeners;
|
|
2699
2924
|
private captureRequestId;
|
|
2700
2925
|
private readonly captureRequests;
|
|
2701
2926
|
private transportRequestId;
|
|
@@ -2716,11 +2941,14 @@ declare class SonareRealtimeEngineNode {
|
|
|
2716
2941
|
requestTransportState(): Promise<EngineTransportState>;
|
|
2717
2942
|
pollTelemetry(): SonareEngineTelemetryRecord[];
|
|
2718
2943
|
pollMeters(): SonareWorkletMeterSnapshot[];
|
|
2944
|
+
pollScope(): SonareWorkletScopeSnapshot[];
|
|
2719
2945
|
onTelemetry(callback: (telemetry: SonareEngineTelemetryRecord) => void): () => void;
|
|
2720
2946
|
onMeter(callback: (meter: SonareWorkletMeterSnapshot) => void): () => void;
|
|
2947
|
+
onScope(callback: (scope: SonareWorkletScopeSnapshot) => void): () => void;
|
|
2721
2948
|
destroy(): void;
|
|
2722
2949
|
private emitTelemetry;
|
|
2723
2950
|
private emitMeter;
|
|
2951
|
+
private emitScope;
|
|
2724
2952
|
private sendCaptureRequest;
|
|
2725
2953
|
private sendTransportRequest;
|
|
2726
2954
|
}
|
|
@@ -2740,6 +2968,8 @@ declare class SonareEngine {
|
|
|
2740
2968
|
private readonly markers;
|
|
2741
2969
|
private readonly trackLaneIds;
|
|
2742
2970
|
private readonly trackSends;
|
|
2971
|
+
private readonly trackOutputBus;
|
|
2972
|
+
private readonly laneSidechains;
|
|
2743
2973
|
private readonly buses;
|
|
2744
2974
|
private readonly trackStripJson;
|
|
2745
2975
|
private readonly busStripJson;
|
|
@@ -2770,6 +3000,45 @@ declare class SonareEngine {
|
|
|
2770
3000
|
setParam(nodeId: string, param: string | number, value: number): boolean;
|
|
2771
3001
|
scheduleParam(nodeId: string, param: string | number, ppq: number, value: number, curve?: number | 'linear' | 'exponential'): void;
|
|
2772
3002
|
addAutomationPoint(laneId: string | number, ppq: number, value: number, curve?: number | 'linear' | 'exponential'): void;
|
|
3003
|
+
/**
|
|
3004
|
+
* Replaces the automation lane for `paramId` with the given breakpoints.
|
|
3005
|
+
*
|
|
3006
|
+
* Unlike scheduleParam (which appends a single point), this sets the whole
|
|
3007
|
+
* lane at once; an empty array clears the lane. The points are defensively
|
|
3008
|
+
* copied and sorted by ppq before being mirrored to the offline engine and
|
|
3009
|
+
* the live worklet engine.
|
|
3010
|
+
*
|
|
3011
|
+
* @param paramId Automation target id (registered parameter or a reserved
|
|
3012
|
+
* engine mixer target from automationParamId/busAutomationParamId).
|
|
3013
|
+
* @param points Lane breakpoints; order does not matter.
|
|
3014
|
+
*/
|
|
3015
|
+
setAutomationLane(paramId: number, points: ReadonlyArray<EngineAutomationPoint>): void;
|
|
3016
|
+
/**
|
|
3017
|
+
* Returns the automation target id for a mixer strip parameter.
|
|
3018
|
+
*
|
|
3019
|
+
* The id addresses the engine's reserved mixer namespace, so it can be fed
|
|
3020
|
+
* straight to setAutomationLane to automate a fader or pan without
|
|
3021
|
+
* registering a parameter.
|
|
3022
|
+
*
|
|
3023
|
+
* @param target Track id (declares a mixer lane on first use) or 'master'.
|
|
3024
|
+
* @param kind Strip parameter to address.
|
|
3025
|
+
* @returns Reserved engine parameter id for the strip parameter.
|
|
3026
|
+
*/
|
|
3027
|
+
automationParamId(target: string | number, kind: 'faderDb' | 'pan'): number;
|
|
3028
|
+
/**
|
|
3029
|
+
* Returns the automation target id for a bus fader.
|
|
3030
|
+
*
|
|
3031
|
+
* @param busId Bus id (declares the mixer bus on first use).
|
|
3032
|
+
* @returns Reserved engine parameter id for the bus fader gain (dB).
|
|
3033
|
+
*/
|
|
3034
|
+
busAutomationParamId(busId: number): number;
|
|
3035
|
+
/**
|
|
3036
|
+
* Returns the number of automation lanes installed on the engine, including
|
|
3037
|
+
* lanes whose breakpoint list is currently empty.
|
|
3038
|
+
*
|
|
3039
|
+
* @returns Engine-side automation lane count.
|
|
3040
|
+
*/
|
|
3041
|
+
automationLaneCount(): number;
|
|
2773
3042
|
listParameters(): EngineParameterInfo[];
|
|
2774
3043
|
setSoloMute(target: string | number, solo: boolean, mute: boolean): boolean;
|
|
2775
3044
|
setStripGain(target: string | number, db: number): boolean;
|
|
@@ -2786,12 +3055,29 @@ declare class SonareEngine {
|
|
|
2786
3055
|
* @param lanes Track ids or lane descriptors in the desired lane order.
|
|
2787
3056
|
*/
|
|
2788
3057
|
setTrackLanes(lanes: ReadonlyArray<number | EngineTrackLane>): void;
|
|
3058
|
+
/**
|
|
3059
|
+
* Routes a track lane's post-fader output into a declared bus instead of
|
|
3060
|
+
* the master mix (group/folder routing); busId 0 restores the master mix.
|
|
3061
|
+
*/
|
|
3062
|
+
setTrackOutputBus(target: string | number, busId: number): void;
|
|
3063
|
+
/**
|
|
3064
|
+
* Keys one insert of a lane strip from another lane's post-strip pre-fader
|
|
3065
|
+
* audio (ducking/sidechainRouter inserts). sourceTarget null removes the
|
|
3066
|
+
* binding.
|
|
3067
|
+
*/
|
|
3068
|
+
setLaneSidechain(target: string | number, insertIndex: number, sourceTarget: string | number | null): void;
|
|
2789
3069
|
setSends(target: string | number, sends: EngineTrackSend[]): void;
|
|
2790
3070
|
setTrackBuses(buses: EngineBus[]): void;
|
|
2791
3071
|
setBusGain(busId: number, db: number): boolean;
|
|
2792
3072
|
setTrackStripJson(target: string | number, sceneJson: string): void;
|
|
2793
3073
|
setTrackStripEqBand(target: string | number, bandIndex: number, band: EqBand | string): void;
|
|
2794
3074
|
setTrackStripInsertBypassed(target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
3075
|
+
setTrackStripInsertParamByName(target: string | number, insertIndex: number, paramName: string, value: number): void;
|
|
3076
|
+
setTrackStripPan(target: string | number, pan: number): void;
|
|
3077
|
+
setTrackStripPanLaw(target: string | number, panLaw: PanLaw | number): void;
|
|
3078
|
+
setTrackStripPanMode(target: string | number, panMode: PanMode | number): void;
|
|
3079
|
+
setTrackStripDualPan(target: string | number, leftPan: number, rightPan: number): void;
|
|
3080
|
+
setTrackStripChannelDelaySamples(target: string | number, delaySamples: number): void;
|
|
2795
3081
|
setStripEq(target: string | number, bandIndex: number, band: EqBand | string): void;
|
|
2796
3082
|
setStripInsertBypassed(target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
2797
3083
|
setStripInserts(target: string | number, sceneJson: string): void;
|
|
@@ -2799,6 +3085,8 @@ declare class SonareEngine {
|
|
|
2799
3085
|
setMasterStripJson(sceneJson: string): void;
|
|
2800
3086
|
setMasterStripEqBand(bandIndex: number, band: EqBand | string): void;
|
|
2801
3087
|
setMasterStripInsertBypassed(insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
3088
|
+
setMasterStripInsertParamByName(insertIndex: number, paramName: string, value: number): void;
|
|
3089
|
+
setStripInsertParamByName(target: string | number, insertIndex: number, paramName: string, value: number): void;
|
|
2802
3090
|
setMasterChain(sceneJson: string): void;
|
|
2803
3091
|
addClip(trackId: string | number, buffer: Float32Array[], startPpq: number, opts?: Partial<Omit<EngineClip, 'channels' | 'startPpq'>>): number;
|
|
2804
3092
|
removeClip(clipId: number): void;
|
|
@@ -2857,12 +3145,15 @@ declare class SonareEngine {
|
|
|
2857
3145
|
setLoopFromMarkers(startMarkerId: number, endMarkerId: number): boolean;
|
|
2858
3146
|
renderOffline(totalFrames: number): Promise<Float32Array[]>;
|
|
2859
3147
|
onMeter(callback: (meter: SonareWorkletMeterSnapshot) => void): () => void;
|
|
3148
|
+
onScope(callback: (scope: SonareWorkletScopeSnapshot) => void): () => void;
|
|
2860
3149
|
onTelemetry(callback: (telemetry: SonareEngineTelemetryRecord) => void): () => void;
|
|
2861
3150
|
pollTelemetry(): SonareEngineTelemetryRecord[];
|
|
2862
3151
|
pollMeters(): SonareWorkletMeterSnapshot[];
|
|
3152
|
+
pollScope(): SonareWorkletScopeSnapshot[];
|
|
2863
3153
|
destroy(): void;
|
|
2864
3154
|
private syncClipsDelta;
|
|
2865
3155
|
private syncMidiClips;
|
|
3156
|
+
private mixerLanes;
|
|
2866
3157
|
private syncMixer;
|
|
2867
3158
|
private syncMarkers;
|
|
2868
3159
|
private postInstrumentSync;
|
|
@@ -3109,6 +3400,32 @@ interface ProjectBounceOptions {
|
|
|
3109
3400
|
/** Host-instrument PDC (latency) fed to the compiler. */
|
|
3110
3401
|
instrumentLatencySamples?: number;
|
|
3111
3402
|
}
|
|
3403
|
+
/**
|
|
3404
|
+
* Marker kind ordinals. Mirrors `SonareMarkerKind` in `src/sonare_c_types.h`;
|
|
3405
|
+
* the values are part of the ABI and must not be renumbered.
|
|
3406
|
+
*/
|
|
3407
|
+
declare const MarkerKind: {
|
|
3408
|
+
readonly marker: 0;
|
|
3409
|
+
readonly text: 1;
|
|
3410
|
+
readonly lyric: 2;
|
|
3411
|
+
readonly cuePoint: 3;
|
|
3412
|
+
readonly keySignature: 4;
|
|
3413
|
+
};
|
|
3414
|
+
/** A project timeline marker with its kind and (for key signatures) the key. */
|
|
3415
|
+
interface ProjectMarker {
|
|
3416
|
+
/** Stable marker id (0 when allocating a new id via {@link Project.setMarkerEx}). */
|
|
3417
|
+
id: number;
|
|
3418
|
+
/** Marker position in PPQ (quarter notes). */
|
|
3419
|
+
ppq: number;
|
|
3420
|
+
/** Marker label. */
|
|
3421
|
+
name?: string;
|
|
3422
|
+
/** {@link MarkerKind} ordinal (default 0 = marker). */
|
|
3423
|
+
kind?: number;
|
|
3424
|
+
/** Key signature only: -7..7 (sharps positive). */
|
|
3425
|
+
keyFifths?: number;
|
|
3426
|
+
/** Key signature only: false = major, true = minor. */
|
|
3427
|
+
keyMinor?: boolean;
|
|
3428
|
+
}
|
|
3112
3429
|
/** Oscillator waveform for the built-in synth. */
|
|
3113
3430
|
type BuiltinSynthWaveform = 'sine' | 'saw' | 'sawtooth' | 'square' | 'triangle' | 0 | 1 | 2 | 3;
|
|
3114
3431
|
/**
|
|
@@ -3646,6 +3963,14 @@ declare class Project {
|
|
|
3646
3963
|
* Routes through an undoable edit command.
|
|
3647
3964
|
*/
|
|
3648
3965
|
setTrackMidiDestination(trackId: number, destinationId: number): void;
|
|
3966
|
+
/** Set a track's linear playback gain (1.0 = unity; >= 0) via an undoable edit. */
|
|
3967
|
+
setTrackGain(trackId: number, gain: number): void;
|
|
3968
|
+
/** Set a track's mute flag via an undoable edit (a muted track is silent). */
|
|
3969
|
+
setTrackMute(trackId: number, mute: boolean): void;
|
|
3970
|
+
/** Set a track's solo flag via an undoable edit (when any track is soloed, only soloed tracks sound). */
|
|
3971
|
+
setTrackSolo(trackId: number, solo: boolean): void;
|
|
3972
|
+
/** Set a track's stereo balance in [-1, +1] (0 = center) via an undoable edit. */
|
|
3973
|
+
setTrackPan(trackId: number, pan: number): void;
|
|
3649
3974
|
/** Undo the most recent edit. */
|
|
3650
3975
|
undo(): void;
|
|
3651
3976
|
/** Redo the most recently undone edit. */
|
|
@@ -3827,6 +4152,16 @@ declare class Project {
|
|
|
3827
4152
|
* stable marker id (the allocated id when 0 was passed).
|
|
3828
4153
|
*/
|
|
3829
4154
|
setMarker(markerId: number, ppq: number, name: string): number;
|
|
4155
|
+
/**
|
|
4156
|
+
* Add or replace a marker from a full {@link ProjectMarker}, including its
|
|
4157
|
+
* {@link MarkerKind} and (for key signatures) the key. Pass `id` 0 to allocate
|
|
4158
|
+
* a new id; returns the stable marker id.
|
|
4159
|
+
*/
|
|
4160
|
+
setMarkerEx(marker: ProjectMarker): number;
|
|
4161
|
+
/** Read a project marker by index (0-based, in stored order). */
|
|
4162
|
+
markerByIndex(index: number): ProjectMarker;
|
|
4163
|
+
/** Number of markers in the project. */
|
|
4164
|
+
markerCount(): number;
|
|
3830
4165
|
/** Number of tracks in the project. */
|
|
3831
4166
|
trackCount(): number;
|
|
3832
4167
|
/** Number of audio sources registered on the project. */
|
|
@@ -3865,6 +4200,8 @@ type EngineFreezeOptions = WasmEngineFreezeOptions;
|
|
|
3865
4200
|
type EngineFreezeResult = WasmEngineFreezeResult;
|
|
3866
4201
|
type EngineTelemetry = WasmEngineTelemetry;
|
|
3867
4202
|
type EngineMeterTelemetry = WasmEngineMeterTelemetry;
|
|
4203
|
+
type EngineMeterTelemetryWide = WasmEngineMeterTelemetryWide;
|
|
4204
|
+
type EngineScopeTelemetry = WasmEngineScopeTelemetry;
|
|
3868
4205
|
type EngineTransportState = WasmEngineTransportState;
|
|
3869
4206
|
type EngineTempoSegment = WasmEngineTempoSegment;
|
|
3870
4207
|
type EngineTimeSignatureSegment = WasmEngineTimeSignatureSegment;
|
|
@@ -3872,14 +4209,37 @@ interface EngineTrackSend {
|
|
|
3872
4209
|
busId: number;
|
|
3873
4210
|
levelDb?: number;
|
|
3874
4211
|
enabled?: boolean;
|
|
4212
|
+
/**
|
|
4213
|
+
* Pre/post-fader tap point. Defaults to post-fader when omitted, matching the
|
|
4214
|
+
* historical lane-send behavior and the scene-JSON default.
|
|
4215
|
+
*/
|
|
4216
|
+
sendTiming?: SendTiming | number;
|
|
3875
4217
|
}
|
|
3876
4218
|
interface EngineTrackLane {
|
|
3877
4219
|
trackId: number;
|
|
3878
4220
|
sends?: EngineTrackSend[];
|
|
4221
|
+
/**
|
|
4222
|
+
* Bus the lane's post-fader output sums into instead of the master mix
|
|
4223
|
+
* (group/folder routing); 0 or absent keeps the lane on the master mix.
|
|
4224
|
+
*/
|
|
4225
|
+
outputBusId?: number;
|
|
4226
|
+
/**
|
|
4227
|
+
* Input channel layout of the source feeding this lane (`SonareChannelLayout`:
|
|
4228
|
+
* 0 mono, 1 stereo, 2 5.1, 3 7.1). Absent defaults to stereo. Stored but inert
|
|
4229
|
+
* until the surround DSP path lands.
|
|
4230
|
+
*/
|
|
4231
|
+
sourceChannelLayout?: number;
|
|
3879
4232
|
}
|
|
3880
4233
|
interface EngineBus {
|
|
3881
4234
|
busId: number;
|
|
3882
4235
|
gainDb?: number;
|
|
4236
|
+
/**
|
|
4237
|
+
* Channel layout of the bus (`SonareChannelLayout`: 0 mono, 1 stereo, 2 5.1,
|
|
4238
|
+
* 3 7.1). A surround layout makes this a surround group bus: lanes routed to
|
|
4239
|
+
* it are surround-panned and it sums into the master plane-by-plane. Defaults
|
|
4240
|
+
* to stereo.
|
|
4241
|
+
*/
|
|
4242
|
+
channelLayout?: number;
|
|
3883
4243
|
}
|
|
3884
4244
|
interface EngineMidiEvent {
|
|
3885
4245
|
renderFrame: number;
|
|
@@ -4010,6 +4370,13 @@ declare class RealtimeEngine {
|
|
|
4010
4370
|
play(renderFrame?: number): void;
|
|
4011
4371
|
stop(renderFrame?: number): void;
|
|
4012
4372
|
seekSample(timelineSample: number, renderFrame?: number): void;
|
|
4373
|
+
/**
|
|
4374
|
+
* Snaps every in-flight parameter ramp (engine-level smoothed params, mixer
|
|
4375
|
+
* lane fader/pan/gate, bus gains) to its target value. Offline renders call
|
|
4376
|
+
* this after a priming process() block so the first audible block renders at
|
|
4377
|
+
* settled values instead of ramping in from defaults.
|
|
4378
|
+
*/
|
|
4379
|
+
settleParameters(): void;
|
|
4013
4380
|
seekPpq(ppq: number, renderFrame?: number): void;
|
|
4014
4381
|
setTempo(bpm: number): void;
|
|
4015
4382
|
setTempoSegments(segments: readonly EngineTempoSegment[]): void;
|
|
@@ -4038,6 +4405,11 @@ declare class RealtimeEngine {
|
|
|
4038
4405
|
setClips(clips: EngineClip[]): void;
|
|
4039
4406
|
clipCount(): number;
|
|
4040
4407
|
setTrackLanes(lanes: Array<number | EngineTrackLane>): void;
|
|
4408
|
+
/**
|
|
4409
|
+
* Keys one insert of a lane strip from another lane's post-strip audio
|
|
4410
|
+
* (ducking/sidechainRouter inserts). sourceTrackId 0 removes the binding.
|
|
4411
|
+
*/
|
|
4412
|
+
setLaneSidechain(trackId: number, insertIndex: number, sourceTrackId: number): void;
|
|
4041
4413
|
setTrackBuses(buses: EngineBus[]): void;
|
|
4042
4414
|
setBusStripJson(busId: number, sceneJson: string): void;
|
|
4043
4415
|
setTrackStripJson(trackId: number, sceneJson: string): void;
|
|
@@ -4048,6 +4420,29 @@ declare class RealtimeEngine {
|
|
|
4048
4420
|
setMasterStripEqBand(bandIndex: number, band: EqBand | string): void;
|
|
4049
4421
|
setMasterStripEqBandJson(bandIndex: number, bandJson: string): void;
|
|
4050
4422
|
setMasterStripInsertBypassed(insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
4423
|
+
/**
|
|
4424
|
+
* Changes one track-strip insert parameter in realtime, addressed by the
|
|
4425
|
+
* processor's JSON-key parameter name (see {@link masteringInsertParamInfo}).
|
|
4426
|
+
* Applied at the next block head via the engine command queue; safe during
|
|
4427
|
+
* playback. Throws if the track, insert, or name is unknown, the param is not
|
|
4428
|
+
* realtime-safe, or the command queue is full.
|
|
4429
|
+
*/
|
|
4430
|
+
setTrackStripInsertParamByName(trackId: number, insertIndex: number, paramName: string, value: number): void;
|
|
4431
|
+
/** Master-strip counterpart of {@link setTrackStripInsertParamByName}. */
|
|
4432
|
+
setMasterStripInsertParamByName(insertIndex: number, paramName: string, value: number): void;
|
|
4433
|
+
/** Sets a track lane strip's pan position in realtime (glitch-free). */
|
|
4434
|
+
setTrackStripPan(trackId: number, pan: number): void;
|
|
4435
|
+
/** Sets a track lane strip's pan law in realtime. */
|
|
4436
|
+
setTrackStripPanLaw(trackId: number, panLaw: PanLaw | number): void;
|
|
4437
|
+
/** Sets a track lane strip's pan mode in realtime. */
|
|
4438
|
+
setTrackStripPanMode(trackId: number, panMode: PanMode | number): void;
|
|
4439
|
+
/** Sets a track lane strip's dual-pan left/right positions in realtime. */
|
|
4440
|
+
setTrackStripDualPan(trackId: number, leftPan: number, rightPan: number): void;
|
|
4441
|
+
/**
|
|
4442
|
+
* Sets a track lane strip's inter-channel alignment delay (whole samples).
|
|
4443
|
+
* Adjusts strip latency, so PDC and reported graph latency are refreshed.
|
|
4444
|
+
*/
|
|
4445
|
+
setTrackStripChannelDelaySamples(trackId: number, delaySamples: number): void;
|
|
4051
4446
|
createClipPageProvider(numChannels: number, numSamples: number, pageFrames: number): ClipPageProvider;
|
|
4052
4447
|
supplyClipPage(providerId: number, pageIndex: number, channels: Float32Array[]): void;
|
|
4053
4448
|
clearClipPage(providerId: number, pageIndex: number): void;
|
|
@@ -4088,6 +4483,24 @@ declare class RealtimeEngine {
|
|
|
4088
4483
|
freezeOffline(options: EngineFreezeOptions): EngineFreezeResult;
|
|
4089
4484
|
drainTelemetry(maxRecords?: number): EngineTelemetry[];
|
|
4090
4485
|
drainMeterTelemetry(maxRecords?: number): EngineMeterTelemetry[];
|
|
4486
|
+
/**
|
|
4487
|
+
* Drains pending meter telemetry as per-plane (wide) records for a surround
|
|
4488
|
+
* target. Use this for a surround mix target; {@link drainMeterTelemetry}
|
|
4489
|
+
* stays the stereo fast path. The two share one queue — call only one per
|
|
4490
|
+
* target. The live AudioWorklet path owns the queue via the stereo drain, so
|
|
4491
|
+
* this wide drain is for an offline (non-worklet) engine instance; per-plane
|
|
4492
|
+
* surround meters are not delivered over the live worklet meter ring.
|
|
4493
|
+
*/
|
|
4494
|
+
drainMeterTelemetryWide(maxRecords?: number): EngineMeterTelemetryWide[];
|
|
4495
|
+
/**
|
|
4496
|
+
* Enables per-target spectrum + vectorscope capture. @param intervalFrames is
|
|
4497
|
+
* the minimum render-frame gap between snapshots (0 disables). @param bandCount
|
|
4498
|
+
* is the FFT band resolution (1..64); changing it re-prepares the tap. Returns
|
|
4499
|
+
* the band count actually applied.
|
|
4500
|
+
*/
|
|
4501
|
+
configureScopeTelemetry(intervalFrames: number, bandCount: number): number;
|
|
4502
|
+
/** Drains pending spectrum + vectorscope snapshots (per mix target). */
|
|
4503
|
+
drainScopeTelemetry(maxRecords?: number): EngineScopeTelemetry[];
|
|
4091
4504
|
destroy(): void;
|
|
4092
4505
|
}
|
|
4093
4506
|
declare class ClipPageProvider {
|
|
@@ -4378,6 +4791,11 @@ interface FrameBuffer {
|
|
|
4378
4791
|
/** Number of mel bands; flat `mel` is `[nFrames * nMels]` row-major. */
|
|
4379
4792
|
nMels: number;
|
|
4380
4793
|
timestamps: Float32Array;
|
|
4794
|
+
/**
|
|
4795
|
+
* Mel spectrogram in LINEAR power (not dB) — the raw per-frame mel energies.
|
|
4796
|
+
* The quantized read paths (`readFramesU8` / `readFramesI16`) convert to dB
|
|
4797
|
+
* before packing, so their `mel` is dB-scaled; this float buffer is not.
|
|
4798
|
+
*/
|
|
4381
4799
|
mel: Float32Array;
|
|
4382
4800
|
chroma: Float32Array;
|
|
4383
4801
|
onsetStrength: Float32Array;
|
|
@@ -4410,6 +4828,7 @@ interface StreamFramesU8 {
|
|
|
4410
4828
|
nFrames: number;
|
|
4411
4829
|
nMels: number;
|
|
4412
4830
|
timestamps: Float32Array;
|
|
4831
|
+
/** Row-major `[nFrames * nMels]` mel in dB, quantized over `[melDbMin, melDbMax]`. */
|
|
4413
4832
|
mel: Uint8Array;
|
|
4414
4833
|
chroma: Uint8Array;
|
|
4415
4834
|
onsetStrength: Uint8Array;
|
|
@@ -4421,6 +4840,7 @@ interface StreamFramesI16 {
|
|
|
4421
4840
|
nFrames: number;
|
|
4422
4841
|
nMels: number;
|
|
4423
4842
|
timestamps: Float32Array;
|
|
4843
|
+
/** Row-major `[nFrames * nMels]` mel in dB, quantized over `[melDbMin, melDbMax]`. */
|
|
4424
4844
|
mel: Int16Array;
|
|
4425
4845
|
chroma: Int16Array;
|
|
4426
4846
|
onsetStrength: Int16Array;
|
|
@@ -4746,6 +5166,11 @@ declare class Mixer {
|
|
|
4746
5166
|
setVcaOffsetDb(stripIndex: number, offsetDb: number): void;
|
|
4747
5167
|
/** Set independent left/right pan positions (dual-pan mode). */
|
|
4748
5168
|
setDualPan(stripIndex: number, leftPan: number, rightPan: number): void;
|
|
5169
|
+
/**
|
|
5170
|
+
* Set the strip's surround pan position, used when it feeds a >2-channel bus.
|
|
5171
|
+
* Stored on the scene; inert until the surround DSP path applies it.
|
|
5172
|
+
*/
|
|
5173
|
+
setSurroundPan(stripIndex: number, pan: SurroundPan): void;
|
|
4749
5174
|
/**
|
|
4750
5175
|
* Add a send to a strip after construction.
|
|
4751
5176
|
*
|
|
@@ -5263,4 +5688,4 @@ declare function voiceCharacterPresetId(preset: VoicePresetId | number): string
|
|
|
5263
5688
|
*/
|
|
5264
5689
|
declare function realtimeVoiceChangerPresetConfig(preset: VoicePresetId | number): RealtimeVoiceChangerPodConfig | null;
|
|
5265
5690
|
|
|
5266
|
-
export { type EngineCaptureStatus as $, type AcousticOptions as A, type BarChord as B, type Chord as C, type CompressorDetector as D, type CompressorOptions as E, type CqtResult as F, type DeclickOptions as G, type DeclipOptions as H, type DecomposeResult as I, type DecrackleMode as J, type DecrackleOptions as K, type DehumOptions as L, type DenoiseClassicalMode as M, type DenoiseClassicalNoiseEstimator as N, type DenoiseClassicalOptions as O, type DereverbClassicalOptions as P, type DynamicRangeReport as Q, type Dynamics as R, type DynamicsAnalysisResult as S, SONARE_ENGINE_COMMAND_RECORD_BYTES, SONARE_ENGINE_RING_HEADER_INTS, SONARE_ENGINE_TELEMETRY_RECORD_BYTES, SONARE_METER_RING_HEADER_INTS, SONARE_METER_RING_RECORD_FLOATS, SONARE_SPECTRUM_RING_HEADER_INTS, SonareEngine, type SonareEngineCaptureRequestMessage, type SonareEngineCaptureResponseMessage, type SonareEngineCommandRecord, type SonareEngineCommandRingBuffer, SonareEngineCommandType, type SonareEngineOptions, type SonareEngineSyncAutomationMessage, type SonareEngineSyncBuiltinInstrumentMessage, type SonareEngineSyncCaptureMessage, type SonareEngineSyncClipsDeltaMessage, type SonareEngineSyncClipsMessage, type SonareEngineSyncLoadSoundFontMessage, type SonareEngineSyncMarkersMessage, type SonareEngineSyncMasterStripEqBandMessage, type SonareEngineSyncMasterStripInsertBypassedMessage, type SonareEngineSyncMessage, type SonareEngineSyncMetronomeMessage, type SonareEngineSyncMidiCcMessage, type SonareEngineSyncMidiClipsMessage, type SonareEngineSyncMidiNoteMessage, type SonareEngineSyncMidiPanicMessage, type SonareEngineSyncMixerMessage, type SonareEngineSyncSf2InstrumentMessage, type SonareEngineSyncSynthInstrumentMessage, type SonareEngineSyncTempoMessage, type SonareEngineSyncTrackStripEqBandMessage, type SonareEngineSyncTrackStripInsertBypassedMessage, SonareEngineTelemetryError, type SonareEngineTelemetryRecord, type SonareEngineTelemetryRingBuffer, type SonareEngineTelemetryRingReadResult, SonareEngineTelemetryType, type SonareEngineTransportFacade, type SonareEngineTransportRequestMessage, type SonareEngineTransportResponseMessage, type SonareMeterRingBuffer, type SonareMeterRingReadResult, SonareRealtimeEngineNode, type SonareRealtimeEngineNodeCapabilities, type SonareRealtimeEngineNodeOptions, SonareRealtimeEngineWorkletProcessor, type SonareRealtimeEngineWorkletProcessorOptions, type SonareRealtimeVoiceChangerDestroyMessage, type SonareRealtimeVoiceChangerMessage, type SonareRealtimeVoiceChangerResetMessage, type SonareRealtimeVoiceChangerSetConfigMessage, SonareRealtimeVoiceChangerWorkletProcessor, type SonareRealtimeVoiceChangerWorkletProcessorOptions, SonareRtRealtimeEngineRuntime, type SonareRtRealtimeEngineRuntimeOptions, type SonareSpectrumRingBuffer, type SonareSpectrumRingReadResult, type SonareWorkletDestroyMessage, type SonareWorkletMessage, type SonareWorkletMeterSnapshot, SonareWorkletProcessor, type SonareWorkletProcessorOptions, type SonareWorkletScheduleInsertAutomationMessage, type SonareWorkletSetMeterIntervalMessage, type SonareWorkletSpectrumSnapshot, type SonareWorkletTransportMessage, type DynamicsResult as T, EXPECTED_ENGINE_ABI_VERSION as U, EXPECTED_PROJECT_ABI_VERSION as V, type EngineAutomationPoint as W, type EngineBounceOptions as X, type EngineBounceResult as Y, type EngineBus as Z, type EngineCapabilities as _, type AcousticResult as a, type NoteStretchOptions as a$, type EngineClip as a0, type EngineFreezeOptions as a1, type EngineFreezeResult as a2, type EngineGraphSpec as a3, type EngineMarker as a4, type EngineMeterTelemetry as a5, type EngineMetronomeConfig as a6, type EngineMidiClipSchedule as a7, type EngineMidiEvent as a8, type EngineParameterInfo as a9, type MasteringChainResult as aA, type MasteringOptions as aB, type MasteringPreset as aC, type MasteringProcessorParams as aD, type MasteringResult as aE, type MasteringStereoChainResult as aF, type MasteringStereoResult as aG, type Matrix2dResult as aH, type MelPowerResult as aI, type MelSpectrogramResult as aJ, type MelodyOptions as aK, type MelodyPoint as aL, type MelodyResult as aM, type MeterTap as aN, type MeteringDetectClippingOptions as aO, type MeteringDynamicRangeOptions as aP, type MfccResult as aQ, type MicrophoneInputBinding as aR, type MidiCcBindOptions as aS, type MidiCcLearnOptions as aT, type MixMeterSnapshot as aU, type MixOptions as aV, type MixResult as aW, Mixer as aX, type MixerProcessResult as aY, type MixerRealtimeBuffer as aZ, Mode as a_, type EngineTelemetry as aa, type EngineTempoSegment as ab, type EngineTimeSignatureSegment as ac, type EngineTrackLane as ad, type EngineTrackSend as ae, type EngineTransportState as af, type EqBand as ag, type EqBandPhase as ah, type EqBandType as ai, type EqCoeffMode as aj, type EqMatchOptions as ak, type EqSpectrumSnapshot as al, type EqStereoPlacement as am, ErrorCode as an, type FrameBuffer as ao, type GateOptions as ap, type GoniometerPoint as aq, type HpssResult as ar, type HpssWithResidualResult as as, type Key as at, type KeyCandidate as au, type KeyDetectionOptions as av, KeyProfile as aw, type KeyProfileName as ax, type LufsResult as ay, type MasteringChainConfig as az, type AnalysisResult as b, SonareError as b$, type OpfsClipPageProviderBinding as b0, type OpfsClipPageProviderOptions as b1, type PairAnalysis as b2, type PairProcessor as b3, type PanLaw as b4, type PanMode as b5, type PatternScore as b6, type PhaseScopeReport as b7, PitchClass as b8, type PitchResult as b9, RealtimeVoiceChanger as bA, type RealtimeVoiceChangerConfigInput as bB, type RealtimeVoiceChangerInterleavedBuffer as bC, type RealtimeVoiceChangerMonoBuffer as bD, type RealtimeVoiceChangerPlanarBuffer as bE, type RealtimeVoiceChangerPodConfig as bF, type RhythmAnalysisResult as bG, type RhythmFeatures as bH, type RirResult as bI, type RirSynthOptions as bJ, type RoomEstimateOptions as bK, type RoomEstimateResult as bL, type RoomGeometryOptions as bM, type RoomMorphOptions as bN, SYNTH_BODY_TYPES as bO, SYNTH_ENGINE_MODES as bP, SYNTH_FILTER_MODELS as bQ, SYNTH_FILTER_OUTPUTS as bR, SYNTH_MOD_DESTINATIONS as bS, SYNTH_MOD_SOURCES as bT, SYNTH_OSC_WAVEFORMS as bU, type Section as bV, SectionType as bW, type SendTiming as bX, type Sf2InstrumentConfig as bY, type Sf2ProgramStatus as bZ, type SoloProcessor as b_, type ProgressiveEstimate as ba, Project as bb, type ProjectAssistSidecar as bc, type ProjectAutomationCurve as bd, type ProjectAutomationLaneDesc as be, type ProjectAutomationPoint as bf, type ProjectBounceOptions as bg, type ProjectChordSymbol as bh, type ProjectClipCompSegment as bi, type ProjectClipDesc as bj, type ProjectClipFade as bk, type ProjectClipTake as bl, type ProjectCompileResult as bm, type ProjectFadeCurve as bn, type ProjectKeySegment as bo, type ProjectLoopMode as bp, type ProjectLoopRecordingDesc as bq, type ProjectLoopRecordingResult as br, type ProjectMidiClipResult as bs, type ProjectMidiEvent as bt, type ProjectNotePairValidation as bu, type ProjectTrackDesc as bv, type ProjectTrackKind as bw, type ProjectWarpAnchor as bx, type ProjectWarpMapDesc as by, RealtimeEngine as bz, type AnalyzeBpmOptions as c, chromaCens as c$, type SourceBackend as c0, type SpectrumOptions as c1, type SpectrumReport as c2, type StereoAnalysis as c3, type StftPowerResult as c4, type StftResult as c5, StreamAnalyzer as c6, type StreamConfig as c7, type StreamConfigDefaults as c8, type StreamFramesI16 as c9, type TrimSilenceOptions as cA, type ValidateOptions as cB, type VectorscopeReport as cC, type VoiceChangeOptions as cD, type VoiceChangeRealtimeOptions as cE, type VoicePresetId as cF, type WaveformPeakPyramidOptions as cG, type WaveformPeaksOptions as cH, type WaveformPeaksReport as cI, type WebMidiBinding as cJ, type WebMidiCcBinding as cK, type WebMidiInputInfo as cL, amplitudeToDb as cM, analyze as cN, analyzeBpm as cO, analyzeDynamics as cP, analyzeImpulseResponse as cQ, analyzeMelody as cR, analyzeRhythm as cS, analyzeSections as cT, analyzeTimbre as cU, analyzeWithProgress as cV, bassChroma as cW, bindMicrophoneInput as cX, bindWebMidi as cY, chordFunctionalAnalysis as cZ, chroma as c_, type StreamFramesU8 as ca, type StreamQuantizeConfig as cb, StreamingEqualizer as cc, type StreamingEqualizerConfig as cd, StreamingMasteringChain as ce, type StreamingMasteringChainConfig as cf, type StreamingPlatform as cg, StreamingRetune as ch, type StreamingRetuneConfig as ci, type SynthBodyType as cj, type SynthEngineMode as ck, type SynthEnumTables as cl, type SynthFilterModel as cm, type SynthFilterOutput as cn, type SynthModDestination as co, type SynthModRouting as cp, type SynthModSource as cq, type SynthOscWaveform as cr, createSonareEngineCommandRingBuffer, createSonareEngineTelemetryRingBuffer, createSonareMeterRingBuffer, createSonareSpectrumRingBuffer, type SynthPatch as cs, type TempogramMode as ct, type Timbre as cu, type TimbreAnalysisResult as cv, type TimbreFrame as cw, type TimeSignature as cx, type TransientShaperOptions as cy, type TrimSilenceMode as cz, type AnalyzeDynamicsOptions as d, masteringProcessStereo as d$, cqt as d0, createOpfsClipPageProvider as d1, createOpfsClipPageWorker as d2, cyclicTempogram as d3, dbToAmplitude as d4, dbToPower as d5, decompose as d6, decomposeWithInit as d7, deemphasis as d8, detectAcoustic as d9, hzToNote as dA, isSonareError as dB, isWebMidiAvailable as dC, lufs as dD, lufsInterleaved as dE, masterAudio as dF, masterAudioStereo as dG, masterAudioStereoWithProgress as dH, masterAudioWithProgress as dI, mastering as dJ, masteringAssistantSuggest as dK, masteringAudioProfile as dL, masteringChain as dM, masteringChainStereo as dN, masteringChainStereoWithProgress as dO, masteringChainWithProgress as dP, masteringDynamicsCompressor as dQ, masteringDynamicsGate as dR, masteringDynamicsTransientShaper as dS, masteringInsertNames as dT, masteringInsertParamNames as dU, masteringPairAnalysisNames as dV, masteringPairAnalyze as dW, masteringPairProcess as dX, masteringPairProcessorNames as dY, masteringPresetNames as dZ, masteringProcess as d_, detectBeats as da, detectBpm as db, detectChords as dc, detectDownbeats as dd, detectKey as de, decodeFrame, detectKeyCandidates as df, detectOnsets as dg, ebur128LoudnessRange as dh, engineAbiVersion as di, engineCapabilities as dj, estimateRoom as dk, estimateTuning as dl, fixFrames as dm, fixLength as dn, fourierTempogram as dp, frameSignal as dq, framesToSamples as dr, framesToTime as ds, harmonic as dt, hasFfmpegSupport as du, hpss as dv, hpssWithResidual as dw, hybridCqt as dx, hzToMel as dy, hzToMidi as dz, type AnalyzeRhythmOptions as e, realtimeVoiceChangerPresetConfig as e$, masteringProcessorNames as e0, masteringRepairDeclick as e1, masteringRepairDeclip as e2, masteringRepairDecrackle as e3, masteringRepairDehum as e4, masteringRepairDenoiseClassical as e5, masteringRepairDereverbClassical as e6, masteringRepairTrimSilence as e7, masteringStereoAnalysisNames as e8, masteringStereoAnalyze as e9, mixingScenePresetNames as eA, momentaryLufs as eB, nnFilter as eC, nnlsChroma as eD, normalize as eE, noteStretch as eF, noteToHz as eG, onsetEnvelope as eH, onsetStrengthMulti as eI, opfsClipPageWorkerSource as eJ, padCenter as eK, pcen as eL, peakPick as eM, percussive as eN, phaseVocoder as eO, pitchCorrectToMidi as eP, pitchCorrectToMidiTimevarying as eQ, pitchPyin as eR, pitchShift as eS, pitchTuning as eT, pitchYin as eU, plp as eV, polyFeatures as eW, powerToDb as eX, preemphasis as eY, projectAbiVersion as eZ, pseudoCqt as e_, masteringStreamingPreview as ea, melSpectrogram as eb, melToAudio as ec, melToHz as ed, melToStft as ee, meteringCrestFactorDb as ef, meteringDcOffset as eg, meteringDetectClipping as eh, meteringDynamicRange as ei, meteringPeakDb as ej, meteringPhaseScope as ek, meteringPhaseScopeDecimated as el, meteringRmsDb as em, meteringSpectrum as en, encodeFrameHi, encodeFrameLo, meteringSpectrumFrame as eo, meteringStereoCorrelation as ep, meteringStereoWidth as eq, meteringTruePeakDb as er, meteringVectorscope as es, meteringVectorscopeDecimated as et, mfcc as eu, mfccToAudio as ev, mfccToMel as ew, midiToHz as ex, mixStereo as ey, mixingScenePresetJson as ez, type AnalyzeSectionsOptions as f, realtimeVoiceChangerPresetJson as f0, realtimeVoiceChangerPresetNames as f1, remix as f2, resample as f3, rmsEnergy as f4, roomMorph as f5, samplesToFrames as f6, scaleCorrectionSemitones as f7, scalePitchClassEnabled as f8, scaleQuantizeMidi as f9, voiceChangerAbiVersion as fA, voiceCharacterPresetId as fB, vqt as fC, waveformPeakPyramid as fD, waveformPeaks as fE, zeroCrossingRate as fF, zeroCrossings as fG, shortTermLufs as fa, spectralBandwidth as fb, spectralCentroid as fc, spectralContrast as fd, spectralFlatness as fe, spectralRolloff as ff, splitSilence as fg, stft as fh, stftDb as fi, streamAnalyzerConfigDefaults as fj, synthEnumTables as fk, synthPresetNames as fl, synthPresetPatch as fm, synthesizeRir as fn, tempogram as fo, tempogramRatio as fp, timeStretch as fq, timeToFrames as fr, tonnetz as fs, trim as ft, trimSilence as fu, validateRealtimeVoiceChangerPresetJson as fv, vectorNormalize as fw, version as fx, voiceChange as fy, voiceChangeRealtime as fz, type AnalyzeTimbreOptions as g, type AnalyzerStats as h, Audio as i, init, isInitialized, type AutomationCurve as j, type Beat as k, type BindMicrophoneInputOptions as l, type BindWebMidiOptions as m, type BpmAnalysisResult as n, type BpmCandidate as o, type BrowserAudioDecodeOptions as p, popSonareEngineCommandRingBuffer, pushSonareEngineCommandRingBuffer, type BuiltinSynthBinding as q, type BuiltinSynthConfig as r, readSonareEngineTelemetryRingBuffer, readSonareMeterRingBuffer, readSonareSpectrumRingBuffer, registerSonareRealtimeEngineWorkletProcessor, registerSonareRealtimeVoiceChangerWorkletProcessor, registerSonareWorkletProcessor, type BuiltinSynthWaveform as s, sonareEngineCommandRingBufferByteLength, sonareEngineTelemetryRingBufferByteLength, sonareMeterRingBufferByteLength, sonareSpectrumRingBufferByteLength, type ChordAnalysisResult as t, type ChordChange as u, type ChordDetectionOptions as v, ChordQuality as w, writeSonareEngineTelemetryRingBuffer, type ChromaResult as x, type ClippingRegion as y, type ClippingReport as z };
|
|
5691
|
+
export { type EngineCaptureStatus as $, type AcousticOptions as A, type BarChord as B, type Chord as C, type CompressorDetector as D, type CompressorOptions as E, type CqtResult as F, type DeclickOptions as G, type DeclipOptions as H, type DecomposeResult as I, type DecrackleMode as J, type DecrackleOptions as K, type DehumOptions as L, type DenoiseClassicalMode as M, type DenoiseClassicalNoiseEstimator as N, type DenoiseClassicalOptions as O, type DereverbClassicalOptions as P, type DynamicRangeReport as Q, type Dynamics as R, type DynamicsAnalysisResult as S, SONARE_ENGINE_COMMAND_RECORD_BYTES, SONARE_ENGINE_RING_HEADER_INTS, SONARE_ENGINE_TELEMETRY_RECORD_BYTES, SONARE_METER_RING_HEADER_INTS, SONARE_METER_RING_RECORD_FLOATS, SONARE_SCOPE_RING_HEADER_INTS, SONARE_SPECTRUM_RING_HEADER_INTS, SonareEngine, type SonareEngineCaptureRequestMessage, type SonareEngineCaptureResponseMessage, type SonareEngineCommandRecord, type SonareEngineCommandRingBuffer, SonareEngineCommandType, type SonareEngineOptions, type SonareEngineSyncAutomationMessage, type SonareEngineSyncBuiltinInstrumentMessage, type SonareEngineSyncCaptureMessage, type SonareEngineSyncClipsDeltaMessage, type SonareEngineSyncClipsMessage, type SonareEngineSyncLoadSoundFontMessage, type SonareEngineSyncMarkersMessage, type SonareEngineSyncMasterStripEqBandMessage, type SonareEngineSyncMasterStripInsertBypassedMessage, type SonareEngineSyncMessage, type SonareEngineSyncMetronomeMessage, type SonareEngineSyncMidiCcMessage, type SonareEngineSyncMidiClipsMessage, type SonareEngineSyncMidiNoteMessage, type SonareEngineSyncMidiPanicMessage, type SonareEngineSyncMixerMessage, type SonareEngineSyncSf2InstrumentMessage, type SonareEngineSyncSynthInstrumentMessage, type SonareEngineSyncTempoMessage, type SonareEngineSyncTrackStripEqBandMessage, type SonareEngineSyncTrackStripInsertBypassedMessage, SonareEngineTelemetryError, type SonareEngineTelemetryRecord, type SonareEngineTelemetryRingBuffer, type SonareEngineTelemetryRingReadResult, SonareEngineTelemetryType, type SonareEngineTransportFacade, type SonareEngineTransportRequestMessage, type SonareEngineTransportResponseMessage, type SonareMeterRingBuffer, type SonareMeterRingReadResult, SonareRealtimeEngineNode, type SonareRealtimeEngineNodeCapabilities, type SonareRealtimeEngineNodeOptions, SonareRealtimeEngineWorkletProcessor, type SonareRealtimeEngineWorkletProcessorOptions, type SonareRealtimeVoiceChangerDestroyMessage, type SonareRealtimeVoiceChangerMessage, type SonareRealtimeVoiceChangerResetMessage, type SonareRealtimeVoiceChangerSetConfigMessage, SonareRealtimeVoiceChangerWorkletProcessor, type SonareRealtimeVoiceChangerWorkletProcessorOptions, SonareRtRealtimeEngineRuntime, type SonareRtRealtimeEngineRuntimeOptions, type SonareScopeRingBuffer, type SonareScopeRingReadResult, type SonareSpectrumRingBuffer, type SonareSpectrumRingReadResult, type SonareWorkletDestroyMessage, type SonareWorkletMessage, type SonareWorkletMeterSnapshot, SonareWorkletProcessor, type SonareWorkletProcessorOptions, type SonareWorkletScheduleInsertAutomationMessage, type SonareWorkletScopeSnapshot, type SonareWorkletSetMeterIntervalMessage, type SonareWorkletSpectrumSnapshot, type SonareWorkletTransportMessage, type DynamicsResult as T, EXPECTED_ENGINE_ABI_VERSION as U, EXPECTED_PROJECT_ABI_VERSION as V, type EngineAutomationPoint as W, type EngineBounceOptions as X, type EngineBounceResult as Y, type EngineBus as Z, type EngineCapabilities as _, type AcousticResult as a, type MixOptions as a$, type EngineClip as a0, type EngineFreezeOptions as a1, type EngineFreezeResult as a2, type EngineGraphSpec as a3, type EngineMarker as a4, type EngineMeterTelemetry as a5, type EngineMeterTelemetryWide as a6, type EngineMetronomeConfig as a7, type EngineMidiClipSchedule as a8, type EngineMidiEvent as a9, type LufsResult as aA, MarkerKind as aB, type MasteringChainConfig as aC, type MasteringChainResult as aD, type MasteringChannelPolicy as aE, type MasteringInsertParamInfo as aF, type MasteringOptions as aG, type MasteringPreset as aH, type MasteringProcessorCatalogEntry as aI, type MasteringProcessorParams as aJ, type MasteringResult as aK, type MasteringStereoChainResult as aL, type MasteringStereoResult as aM, type Matrix2dResult as aN, type MelPowerResult as aO, type MelSpectrogramResult as aP, type MelodyOptions as aQ, type MelodyPoint as aR, type MelodyResult as aS, type MeterTap as aT, type MeteringDetectClippingOptions as aU, type MeteringDynamicRangeOptions as aV, type MfccResult as aW, type MicrophoneInputBinding as aX, type MidiCcBindOptions as aY, type MidiCcLearnOptions as aZ, type MixMeterSnapshot as a_, type EngineParameterInfo as aa, type EngineScopeTelemetry as ab, type EngineTelemetry as ac, type EngineTempoSegment as ad, type EngineTimeSignatureSegment as ae, type EngineTrackLane as af, type EngineTrackSend as ag, type EngineTransportState as ah, type EqBand as ai, type EqBandPhase as aj, type EqBandType as ak, type EqCoeffMode as al, type EqMatchOptions as am, type EqSpectrumSnapshot as an, type EqStereoPlacement as ao, ErrorCode as ap, type FrameBuffer as aq, type GateOptions as ar, type GoniometerPoint as as, type HpssResult as at, type HpssWithResidualResult as au, type Key as av, type KeyCandidate as aw, type KeyDetectionOptions as ax, KeyProfile as ay, type KeyProfileName as az, type AnalysisResult as b, SYNTH_OSC_WAVEFORMS as b$, type MixResult as b0, Mixer as b1, type MixerProcessResult as b2, type MixerRealtimeBuffer as b3, Mode as b4, type NoteStretchOptions as b5, type OpfsClipPageProviderBinding as b6, type OpfsClipPageProviderOptions as b7, type PairAnalysis as b8, type PairProcessor as b9, type ProjectMidiEvent as bA, type ProjectNotePairValidation as bB, type ProjectTrackDesc as bC, type ProjectTrackKind as bD, type ProjectWarpAnchor as bE, type ProjectWarpMapDesc as bF, RealtimeEngine as bG, RealtimeVoiceChanger as bH, type RealtimeVoiceChangerConfigInput as bI, type RealtimeVoiceChangerInterleavedBuffer as bJ, type RealtimeVoiceChangerMonoBuffer as bK, type RealtimeVoiceChangerPlanarBuffer as bL, type RealtimeVoiceChangerPodConfig as bM, type RhythmAnalysisResult as bN, type RhythmFeatures as bO, type RirResult as bP, type RirSynthOptions as bQ, type RoomEstimateOptions as bR, type RoomEstimateResult as bS, type RoomGeometryOptions as bT, type RoomMorphOptions as bU, SYNTH_BODY_TYPES as bV, SYNTH_ENGINE_MODES as bW, SYNTH_FILTER_MODELS as bX, SYNTH_FILTER_OUTPUTS as bY, SYNTH_MOD_DESTINATIONS as bZ, SYNTH_MOD_SOURCES as b_, type PanLaw as ba, type PanMode as bb, type PatternScore as bc, type PhaseScopeReport as bd, PitchClass as be, type PitchResult as bf, type ProgressiveEstimate as bg, Project as bh, type ProjectAssistSidecar as bi, type ProjectAutomationCurve as bj, type ProjectAutomationLaneDesc as bk, type ProjectAutomationPoint as bl, type ProjectBounceOptions as bm, type ProjectChordSymbol as bn, type ProjectClipCompSegment as bo, type ProjectClipDesc as bp, type ProjectClipFade as bq, type ProjectClipTake as br, type ProjectCompileResult as bs, type ProjectFadeCurve as bt, type ProjectKeySegment as bu, type ProjectLoopMode as bv, type ProjectLoopRecordingDesc as bw, type ProjectLoopRecordingResult as bx, type ProjectMarker as by, type ProjectMidiClipResult as bz, type AnalyzeBpmOptions as c, analyzeImpulseResponse as c$, type Section as c0, SectionType as c1, type SendTiming as c2, type Sf2InstrumentConfig as c3, type Sf2ProgramStatus as c4, type SoloProcessor as c5, SonareError as c6, type SourceBackend as c7, type SpectralEditMode as c8, type SpectralEditOptions as c9, type SynthModRouting as cA, type SynthModSource as cB, type SynthOscWaveform as cC, type SynthPatch as cD, type TempogramMode as cE, type Timbre as cF, type TimbreAnalysisResult as cG, type TimbreFrame as cH, type TimeSignature as cI, type TransientShaperOptions as cJ, type TrimSilenceMode as cK, type TrimSilenceOptions as cL, type ValidateOptions as cM, type VectorscopeReport as cN, type VoiceChangeOptions as cO, type VoiceChangeRealtimeOptions as cP, type VoicePresetId as cQ, type WaveformPeakPyramidOptions as cR, type WaveformPeaksOptions as cS, type WaveformPeaksReport as cT, type WebMidiBinding as cU, type WebMidiCcBinding as cV, type WebMidiInputInfo as cW, amplitudeToDb as cX, analyze as cY, analyzeBpm as cZ, analyzeDynamics as c_, type SpectralEditWindow as ca, type SpectralRegionOp as cb, type SpectrumOptions as cc, type SpectrumReport as cd, type StereoAnalysis as ce, type StftPowerResult as cf, type StftResult as cg, StreamAnalyzer as ch, type StreamConfig as ci, type StreamConfigDefaults as cj, type StreamFramesI16 as ck, type StreamFramesU8 as cl, type StreamQuantizeConfig as cm, StreamingEqualizer as cn, type StreamingEqualizerConfig as co, StreamingMasteringChain as cp, type StreamingMasteringChainConfig as cq, type StreamingPlatform as cr, createSonareEngineCommandRingBuffer, createSonareEngineTelemetryRingBuffer, createSonareMeterRingBuffer, createSonareScopeRingBuffer, createSonareSpectrumRingBuffer, StreamingRetune as cs, type StreamingRetuneConfig as ct, type SynthBodyType as cu, type SynthEngineMode as cv, type SynthEnumTables as cw, type SynthFilterModel as cx, type SynthFilterOutput as cy, type SynthModDestination as cz, type AnalyzeDynamicsOptions as d, masteringDynamicsCompressor as d$, analyzeMelody as d0, analyzeRhythm as d1, analyzeSections as d2, analyzeTimbre as d3, analyzeWithProgress as d4, bassChroma as d5, bindMicrophoneInput as d6, bindWebMidi as d7, chordFunctionalAnalysis as d8, chroma as d9, fourierTempogram as dA, frameSignal as dB, framesToSamples as dC, framesToTime as dD, harmonic as dE, hasFfmpegSupport as dF, hpss as dG, hpssWithResidual as dH, hybridCqt as dI, hzToMel as dJ, hzToMidi as dK, hzToNote as dL, isSonareError as dM, isWebMidiAvailable as dN, lufs as dO, lufsInterleaved as dP, masterAudio as dQ, masterAudioStereo as dR, masterAudioStereoWithProgress as dS, masterAudioWithProgress as dT, mastering as dU, masteringAssistantSuggest as dV, masteringAudioProfile as dW, masteringChain as dX, masteringChainStereo as dY, masteringChainStereoWithProgress as dZ, masteringChainWithProgress as d_, chromaCens as da, cqt as db, createOpfsClipPageProvider as dc, createOpfsClipPageWorker as dd, cyclicTempogram as de, decodeFrame, dbToAmplitude as df, dbToPower as dg, decompose as dh, decomposeWithInit as di, deemphasis as dj, detectAcoustic as dk, detectBeats as dl, detectBpm as dm, detectChords as dn, detectDownbeats as dp, detectKey as dq, detectKeyCandidates as dr, detectOnsets as ds, ebur128LoudnessRange as dt, engineAbiVersion as du, engineCapabilities as dv, estimateRoom as dw, estimateTuning as dx, fixFrames as dy, fixLength as dz, type AnalyzeRhythmOptions as e, phaseVocoder as e$, masteringDynamicsGate as e0, masteringDynamicsTransientShaper as e1, masteringInsertNames as e2, masteringInsertParamInfo as e3, masteringInsertParamNames as e4, masteringPairAnalysisNames as e5, masteringPairAnalyze as e6, masteringPairProcess as e7, masteringPairProcessorNames as e8, masteringPresetNames as e9, meteringSpectrum as eA, meteringSpectrumFrame as eB, meteringStereoCorrelation as eC, meteringStereoWidth as eD, meteringTruePeakDb as eE, meteringVectorscope as eF, meteringVectorscopeDecimated as eG, mfcc as eH, mfccToAudio as eI, mfccToMel as eJ, midiToHz as eK, mixStereo as eL, mixingScenePresetJson as eM, mixingScenePresetNames as eN, momentaryLufs as eO, nnFilter as eP, nnlsChroma as eQ, normalize as eR, noteStretch as eS, noteToHz as eT, onsetEnvelope as eU, onsetStrengthMulti as eV, opfsClipPageWorkerSource as eW, padCenter as eX, pcen as eY, peakPick as eZ, percussive as e_, masteringProcess as ea, masteringProcessStereo as eb, masteringProcessorCatalog as ec, masteringProcessorNames as ed, masteringRepairDeclick as ee, masteringRepairDeclip as ef, masteringRepairDecrackle as eg, masteringRepairDehum as eh, masteringRepairDenoiseClassical as ei, masteringRepairDereverbClassical as ej, masteringRepairTrimSilence as ek, masteringStereoAnalysisNames as el, masteringStereoAnalyze as em, masteringStreamingPreview as en, encodeFrameHi, encodeFrameLo, melSpectrogram as eo, melToAudio as ep, melToHz as eq, melToStft as er, meteringCrestFactorDb as es, meteringDcOffset as et, meteringDetectClipping as eu, meteringDynamicRange as ev, meteringPeakDb as ew, meteringPhaseScope as ex, meteringPhaseScopeDecimated as ey, meteringRmsDb as ez, type AnalyzeSectionsOptions as f, pitchCorrectToMidi as f0, pitchCorrectToMidiTimevarying as f1, pitchPyin as f2, pitchShift as f3, pitchTuning as f4, pitchYin as f5, plp as f6, polyFeatures as f7, powerToDb as f8, preemphasis as f9, synthPresetPatch as fA, synthesizeRir as fB, tempogram as fC, tempogramRatio as fD, timeStretch as fE, timeToFrames as fF, tonnetz as fG, trim as fH, trimSilence as fI, validateRealtimeVoiceChangerPresetJson as fJ, vectorNormalize as fK, version as fL, voiceChange as fM, voiceChangeRealtime as fN, voiceChangerAbiVersion as fO, voiceCharacterPresetId as fP, vqt as fQ, waveformPeakPyramid as fR, waveformPeaks as fS, zeroCrossingRate as fT, zeroCrossings as fU, projectAbiVersion as fa, pseudoCqt as fb, realtimeVoiceChangerPresetConfig as fc, realtimeVoiceChangerPresetJson as fd, realtimeVoiceChangerPresetNames as fe, remix as ff, resample as fg, rmsEnergy as fh, roomMorph as fi, samplesToFrames as fj, scaleCorrectionSemitones as fk, scalePitchClassEnabled as fl, scaleQuantizeMidi as fm, shortTermLufs as fn, spectralBandwidth as fo, spectralCentroid as fp, spectralContrast as fq, spectralEdit as fr, spectralFlatness as fs, spectralRolloff as ft, splitSilence as fu, stft as fv, stftDb as fw, streamAnalyzerConfigDefaults as fx, synthEnumTables as fy, synthPresetNames as fz, type AnalyzeTimbreOptions as g, type AnalyzerStats as h, Audio as i, init, isInitialized, type AutomationCurve as j, type Beat as k, type BindMicrophoneInputOptions as l, type BindWebMidiOptions as m, type BpmAnalysisResult as n, type BpmCandidate as o, type BrowserAudioDecodeOptions as p, popSonareEngineCommandRingBuffer, pushSonareEngineCommandRingBuffer, type BuiltinSynthBinding as q, type BuiltinSynthConfig as r, readSonareEngineTelemetryRingBuffer, readSonareMeterRingBuffer, readSonareScopeRingBuffer, readSonareSpectrumRingBuffer, registerSonareRealtimeEngineWorkletProcessor, registerSonareRealtimeVoiceChangerWorkletProcessor, registerSonareWorkletProcessor, type BuiltinSynthWaveform as s, sonareEngineCommandRingBufferByteLength, sonareEngineTelemetryRingBufferByteLength, sonareMeterRingBufferByteLength, sonareScopeRingBufferByteLength, sonareSpectrumRingBufferByteLength, type ChordAnalysisResult as t, type ChordChange as u, type ChordDetectionOptions as v, ChordQuality as w, writeSonareEngineTelemetryRingBuffer, type ChromaResult as x, type ClippingRegion as y, type ClippingReport as z };
|