@libraz/libsonare 1.7.2 → 1.8.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/NOTICE +178 -0
- package/README.md +26 -203
- package/dist/_chain_config.d.ts +14 -0
- package/dist/_chain_config.d.ts.map +1 -0
- package/dist/_effects_common.d.ts +6 -0
- package/dist/_effects_common.d.ts.map +1 -0
- package/dist/_feature_validation.d.ts +8 -0
- package/dist/_feature_validation.d.ts.map +1 -0
- package/dist/_fft_options.d.ts +24 -0
- package/dist/_fft_options.d.ts.map +1 -0
- package/dist/align_take.d.ts +50 -0
- package/dist/align_take.d.ts.map +1 -0
- package/dist/analysis.d.ts +29 -5840
- package/dist/analysis.d.ts.map +1 -0
- package/dist/analysis.js +873 -722
- package/dist/analysis.js.map +1 -1
- package/dist/analysis_helpers.d.ts +9 -0
- package/dist/analysis_helpers.d.ts.map +1 -0
- package/dist/audio.d.ts +163 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/clip_page_streamer.d.ts +133 -0
- package/dist/clip_page_streamer.d.ts.map +1 -0
- package/dist/codes.d.ts +44 -0
- package/dist/codes.d.ts.map +1 -0
- package/dist/effects_mastering.d.ts +23 -0
- package/dist/effects_mastering.d.ts.map +1 -0
- package/dist/effects_note_ops.d.ts +477 -0
- package/dist/effects_note_ops.d.ts.map +1 -0
- package/dist/effects_percussive.d.ts +185 -0
- package/dist/effects_percussive.d.ts.map +1 -0
- package/dist/effects_separation.d.ts +65 -0
- package/dist/effects_separation.d.ts.map +1 -0
- package/dist/effects_spectral.d.ts +28 -0
- package/dist/effects_spectral.d.ts.map +1 -0
- package/dist/effects_timepitch.d.ts +129 -0
- package/dist/effects_timepitch.d.ts.map +1 -0
- package/dist/effects_voice_change.d.ts +53 -0
- package/dist/effects_voice_change.d.ts.map +1 -0
- package/dist/errors.d.ts +51 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/feature_core.d.ts +341 -0
- package/dist/feature_core.d.ts.map +1 -0
- package/dist/feature_decompose.d.ts +278 -0
- package/dist/feature_decompose.d.ts.map +1 -0
- package/dist/feature_inverse.d.ts +128 -0
- package/dist/feature_inverse.d.ts.map +1 -0
- package/dist/feature_loudness.d.ts +66 -0
- package/dist/feature_loudness.d.ts.map +1 -0
- package/dist/feature_music.d.ts +307 -0
- package/dist/feature_music.d.ts.map +1 -0
- package/dist/feature_pitch.d.ts +108 -0
- package/dist/feature_pitch.d.ts.map +1 -0
- package/dist/feature_resample.d.ts +16 -0
- package/dist/feature_resample.d.ts.map +1 -0
- package/dist/feature_spectral.d.ts +137 -0
- package/dist/feature_spectral.d.ts.map +1 -0
- package/dist/feature_spectrogram.d.ts +198 -0
- package/dist/feature_spectrogram.d.ts.map +1 -0
- package/dist/features.d.ts +10 -0
- package/dist/features.d.ts.map +1 -0
- package/dist/hrtf/default.shrf +0 -0
- package/dist/index.d.ts +74 -7431
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3758 -1362
- package/dist/index.js.map +1 -1
- package/dist/instrument_types.d.ts +517 -0
- package/dist/instrument_types.d.ts.map +1 -0
- package/dist/live_audio.d.ts +35 -0
- package/dist/live_audio.d.ts.map +1 -0
- package/dist/mastering_chain.d.ts +213 -0
- package/dist/mastering_chain.d.ts.map +1 -0
- package/dist/mastering_core.d.ts +457 -0
- package/dist/mastering_core.d.ts.map +1 -0
- package/dist/mastering_dynamics.d.ts +80 -0
- package/dist/mastering_dynamics.d.ts.map +1 -0
- package/dist/metering.d.ts +287 -0
- package/dist/metering.d.ts.map +1 -0
- package/dist/mixer.d.ts +464 -0
- package/dist/mixer.d.ts.map +1 -0
- package/dist/mixing_assistant.d.ts +62 -0
- package/dist/mixing_assistant.d.ts.map +1 -0
- package/dist/mixing_oneshot.d.ts +40 -0
- package/dist/mixing_oneshot.d.ts.map +1 -0
- package/dist/module_state.d.ts +15 -0
- package/dist/module_state.d.ts.map +1 -0
- package/dist/opfs_clip_pages.d.ts +28 -0
- package/dist/opfs_clip_pages.d.ts.map +1 -0
- package/dist/playback_renderer.d.ts +128 -0
- package/dist/playback_renderer.d.ts.map +1 -0
- package/dist/polyphony.d.ts +202 -0
- package/dist/polyphony.d.ts.map +1 -0
- package/dist/project.d.ts +8 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project_class.d.ts +562 -0
- package/dist/project_class.d.ts.map +1 -0
- package/dist/project_internal.d.ts +194 -0
- package/dist/project_internal.d.ts.map +1 -0
- package/dist/project_synth.d.ts +74 -0
- package/dist/project_synth.d.ts.map +1 -0
- package/dist/project_types.d.ts +652 -0
- package/dist/project_types.d.ts.map +1 -0
- package/dist/public_types.d.ts +185 -0
- package/dist/public_types.d.ts.map +1 -0
- package/dist/public_types_acoustic.d.ts +215 -0
- package/dist/public_types_acoustic.d.ts.map +1 -0
- package/dist/public_types_mastering.d.ts +510 -0
- package/dist/public_types_mastering.d.ts.map +1 -0
- package/dist/public_types_mixing.d.ts +436 -0
- package/dist/public_types_mixing.d.ts.map +1 -0
- package/dist/public_types_music.d.ts +619 -0
- package/dist/public_types_music.d.ts.map +1 -0
- package/dist/public_types_playback.d.ts +164 -0
- package/dist/public_types_playback.d.ts.map +1 -0
- package/dist/public_types_realtime.d.ts +174 -0
- package/dist/public_types_realtime.d.ts.map +1 -0
- package/dist/public_types_repair.d.ts +424 -0
- package/dist/public_types_repair.d.ts.map +1 -0
- package/dist/public_types_spectral.d.ts +697 -0
- package/dist/public_types_spectral.d.ts.map +1 -0
- package/dist/quick_analysis.d.ts +445 -0
- package/dist/quick_analysis.d.ts.map +1 -0
- package/dist/realtime_engine.d.ts +850 -0
- package/dist/realtime_engine.d.ts.map +1 -0
- package/dist/realtime_voice_changer.d.ts +158 -0
- package/dist/realtime_voice_changer.d.ts.map +1 -0
- package/dist/repair_dereverb.d.ts +187 -0
- package/dist/repair_dereverb.d.ts.map +1 -0
- package/dist/repair_impulsive.d.ts +186 -0
- package/dist/repair_impulsive.d.ts.map +1 -0
- package/dist/repair_noise.d.ts +239 -0
- package/dist/repair_noise.d.ts.map +1 -0
- package/dist/repair_trim.d.ts +123 -0
- package/dist/repair_trim.d.ts.map +1 -0
- package/dist/sample_bank.d.ts +84 -0
- package/dist/sample_bank.d.ts.map +1 -0
- package/dist/scale.d.ts +10 -0
- package/dist/scale.d.ts.map +1 -0
- package/dist/schemas/mixer-scene.schema.json +393 -0
- package/dist/schemas/playback-renderer-config.schema.json +392 -0
- package/dist/sonare-analysis.d.ts +8 -0
- package/dist/sonare-analysis.js +2 -2
- package/dist/sonare-analysis.wasm +0 -0
- package/dist/sonare.d.ts +3909 -0
- package/dist/sonare.js +2 -2
- package/dist/sonare.wasm +0 -0
- package/dist/stream_analyzer.d.ts +163 -0
- package/dist/stream_analyzer.d.ts.map +1 -0
- package/dist/stream_types.d.ts +214 -0
- package/dist/stream_types.d.ts.map +1 -0
- package/dist/streaming_mixing.d.ts +6 -0
- package/dist/streaming_mixing.d.ts.map +1 -0
- package/dist/streaming_processors.d.ts +335 -0
- package/dist/streaming_processors.d.ts.map +1 -0
- package/dist/transcribe.d.ts +77 -0
- package/dist/transcribe.d.ts.map +1 -0
- package/dist/validation.d.ts +140 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/web_midi.d.ts +77 -0
- package/dist/web_midi.d.ts.map +1 -0
- package/dist/worker.d.ts +5 -48
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +94 -41
- package/dist/worker.js.map +1 -1
- package/dist/worker_client.d.ts +96 -0
- package/dist/worker_client.d.ts.map +1 -0
- package/dist/worker_protocol.d.ts +43 -0
- package/dist/worker_protocol.d.ts.map +1 -0
- package/dist/worklet/audio_types.d.ts +21 -0
- package/dist/worklet/audio_types.d.ts.map +1 -0
- package/dist/worklet/engine-automation.d.ts +29 -0
- package/dist/worklet/engine-automation.d.ts.map +1 -0
- package/dist/worklet/engine-capture-facade.d.ts +35 -0
- package/dist/worklet/engine-capture-facade.d.ts.map +1 -0
- package/dist/worklet/engine-clips.d.ts +23 -0
- package/dist/worklet/engine-clips.d.ts.map +1 -0
- package/dist/worklet/engine-markers.d.ts +40 -0
- package/dist/worklet/engine-markers.d.ts.map +1 -0
- package/dist/worklet/engine-mixer-facade.d.ts +128 -0
- package/dist/worklet/engine-mixer-facade.d.ts.map +1 -0
- package/dist/worklet/engine-node.d.ts +81 -0
- package/dist/worklet/engine-node.d.ts.map +1 -0
- package/dist/worklet/engine-offline.d.ts +81 -0
- package/dist/worklet/engine-offline.d.ts.map +1 -0
- package/dist/worklet/engine-options.d.ts +12 -0
- package/dist/worklet/engine-options.d.ts.map +1 -0
- package/dist/worklet/engine-parameter-facade.d.ts +106 -0
- package/dist/worklet/engine-parameter-facade.d.ts.map +1 -0
- package/dist/worklet/engine-processor.d.ts +68 -0
- package/dist/worklet/engine-processor.d.ts.map +1 -0
- package/dist/worklet/engine-register.d.ts +2 -0
- package/dist/worklet/engine-register.d.ts.map +1 -0
- package/dist/worklet/engine-strips.d.ts +73 -0
- package/dist/worklet/engine-strips.d.ts.map +1 -0
- package/dist/worklet/engine-sync.d.ts +37 -0
- package/dist/worklet/engine-sync.d.ts.map +1 -0
- package/dist/worklet/engine-tempo-facade.d.ts +48 -0
- package/dist/worklet/engine-tempo-facade.d.ts.map +1 -0
- package/dist/worklet/engine.d.ts +397 -0
- package/dist/worklet/engine.d.ts.map +1 -0
- package/dist/worklet/guards.d.ts +47 -0
- package/dist/worklet/guards.d.ts.map +1 -0
- package/dist/worklet/messages.d.ts +710 -0
- package/dist/worklet/messages.d.ts.map +1 -0
- package/dist/worklet/mixer-processor.d.ts +46 -0
- package/dist/worklet/mixer-processor.d.ts.map +1 -0
- package/dist/worklet/playback-processor.d.ts +62 -0
- package/dist/worklet/playback-processor.d.ts.map +1 -0
- package/dist/worklet/protocol.d.ts +323 -0
- package/dist/worklet/protocol.d.ts.map +1 -0
- package/dist/worklet/voice-changer-processor.d.ts +41 -0
- package/dist/worklet/voice-changer-processor.d.ts.map +1 -0
- package/dist/worklet.d.ts +16 -2515
- package/dist/worklet.d.ts.map +1 -0
- package/dist/worklet.js +2763 -501
- package/dist/worklet.js.map +1 -1
- package/package.json +23 -12
- package/src/_effects_common.ts +17 -0
- package/src/_feature_validation.ts +34 -0
- package/src/_fft_options.ts +39 -0
- package/src/align_take.ts +64 -0
- package/src/analysis.ts +56 -3
- package/src/analysis_helpers.ts +7 -0
- package/src/audio.ts +106 -3
- package/src/codes.ts +39 -2
- package/src/effects_mastering.ts +97 -22
- package/src/effects_note_ops.ts +635 -0
- package/src/effects_percussive.ts +217 -0
- package/src/effects_separation.ts +150 -0
- package/src/effects_spectral.ts +60 -0
- package/src/effects_timepitch.ts +377 -0
- package/src/errors.ts +23 -1
- package/src/feature_core.ts +127 -2
- package/src/feature_decompose.ts +633 -0
- package/src/feature_inverse.ts +454 -0
- package/src/feature_loudness.ts +125 -0
- package/src/feature_music.ts +107 -14
- package/src/feature_pitch.ts +96 -1
- package/src/feature_spectral.ts +16 -611
- package/src/feature_spectrogram.ts +63 -450
- package/src/features.ts +36 -22
- package/src/index.ts +282 -30
- package/src/instrument_types.ts +645 -0
- package/src/live_audio.ts +27 -1
- package/src/mastering_chain.ts +184 -0
- package/src/mastering_core.ts +346 -32
- package/src/mastering_dynamics.ts +22 -11
- package/src/metering.ts +67 -24
- package/src/mixer.ts +212 -3
- package/src/mixing_assistant.ts +138 -0
- package/src/mixing_oneshot.ts +10 -5
- package/src/module_state.ts +24 -2
- package/src/playback_renderer.ts +252 -0
- package/src/polyphony.ts +279 -0
- package/src/project.ts +61 -24
- package/src/project_class.ts +450 -27
- package/src/project_internal.ts +149 -42
- package/src/project_synth.ts +67 -1
- package/src/project_types.ts +268 -270
- package/src/public_types.ts +122 -3
- package/src/public_types_acoustic.ts +112 -3
- package/src/public_types_mastering.ts +254 -73
- package/src/public_types_mixing.ts +363 -1
- package/src/public_types_music.ts +312 -2
- package/src/public_types_playback.ts +195 -0
- package/src/public_types_realtime.ts +39 -7
- package/src/public_types_repair.ts +446 -0
- package/src/public_types_spectral.ts +487 -1
- package/src/quick_analysis.ts +203 -26
- package/src/realtime_engine.ts +711 -28
- package/src/realtime_voice_changer.ts +55 -1
- package/src/repair_dereverb.ts +299 -0
- package/src/repair_impulsive.ts +395 -0
- package/src/repair_noise.ts +425 -0
- package/src/repair_trim.ts +226 -0
- package/src/sample_bank.ts +113 -0
- package/src/sonare.js.d.ts +1122 -30
- package/src/stream_analyzer.ts +36 -4
- package/src/stream_types.ts +37 -0
- package/src/streaming_mixing.ts +1 -1
- package/src/streaming_processors.ts +194 -10
- package/src/transcribe.ts +89 -0
- package/src/validation.ts +285 -11
- package/src/web_midi.ts +1 -6
- package/src/worker.ts +18 -2
- package/src/worklet/audio_types.ts +37 -0
- package/src/worklet/engine-mixer-facade.ts +444 -10
- package/src/worklet/engine-node.ts +78 -26
- package/src/worklet/engine-offline.ts +14 -8
- package/src/worklet/engine-parameter-facade.ts +21 -0
- package/src/worklet/engine-processor.ts +272 -83
- package/src/worklet/engine-register.ts +32 -18
- package/src/worklet/engine-strips.ts +280 -9
- package/src/worklet/engine-sync.ts +14 -6
- package/src/worklet/engine.ts +365 -31
- package/src/worklet/guards.ts +140 -44
- package/src/worklet/messages.ts +227 -2
- package/src/worklet/mixer-processor.ts +109 -47
- package/src/worklet/playback-processor.ts +300 -0
- package/src/worklet/protocol.ts +53 -3
- package/src/worklet/voice-changer-processor.ts +17 -11
- package/src/worklet.ts +17 -0
- package/src/effects_transform.ts +0 -718
- package/src/mastering_repair.ts +0 -273
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
import { type OpfsClipStreamOptions } from '../clip_page_streamer';
|
|
2
|
+
import type { EngineAutomationPoint, EngineBus, EngineCaptureStatus, EngineClip, EngineMarker, EngineMetronomeConfig, EngineMidiClipSchedule, EngineParameterInfo, EngineTempoSegment, EngineTimeSignatureSegment, EngineTrackLane, EngineTrackMonitorMode, EngineTrackSend, EngineTransportState, EqBand, MidiCcBindOptions, PanLaw, PanMode, SidechainSourceKind } from '../index';
|
|
3
|
+
import { type OpfsClipPageProviderBinding } from '../opfs_clip_pages';
|
|
4
|
+
import type { ClipPageProvider } from '../realtime_engine';
|
|
5
|
+
import { type CaptureOptions } from './engine-offline';
|
|
6
|
+
import type { SonareEngineOptions } from './engine-options';
|
|
7
|
+
import type { SonareEngineTransportFacade, SonareRealtimeEngineNodeCapabilities, SonareWorkletExternalMidiEvent } from './messages';
|
|
8
|
+
import { type SonareEngineTelemetryRecord, type SonareWorkletMeterSnapshot, type SonareWorkletScopeSnapshot } from './protocol';
|
|
9
|
+
export declare class SonareEngine {
|
|
10
|
+
readonly node: AudioWorkletNode;
|
|
11
|
+
readonly capabilities: SonareRealtimeEngineNodeCapabilities;
|
|
12
|
+
readonly transport: SonareEngineTransportFacade;
|
|
13
|
+
private readonly realtimeNode;
|
|
14
|
+
private readonly offlineEngine;
|
|
15
|
+
private readonly context;
|
|
16
|
+
private readonly sampleRate;
|
|
17
|
+
private readonly offlineBlockSize;
|
|
18
|
+
private readonly offlineChannelCount;
|
|
19
|
+
private readonly automationLanes;
|
|
20
|
+
private readonly insertAutomationIdsByTarget;
|
|
21
|
+
private readonly clips;
|
|
22
|
+
private readonly midiClips;
|
|
23
|
+
private readonly markers;
|
|
24
|
+
private readonly trackLaneIds;
|
|
25
|
+
private readonly trackSends;
|
|
26
|
+
private readonly trackOutputBus;
|
|
27
|
+
private readonly laneSidechains;
|
|
28
|
+
private readonly busSidechains;
|
|
29
|
+
private readonly masterSidechains;
|
|
30
|
+
private readonly buses;
|
|
31
|
+
private readonly trackStripJson;
|
|
32
|
+
private readonly busStripJson;
|
|
33
|
+
private readonly insertParamOverrides;
|
|
34
|
+
private masterStripJson;
|
|
35
|
+
private captureConfig;
|
|
36
|
+
private tempoBpm;
|
|
37
|
+
private timeSignature;
|
|
38
|
+
private tempoSegments;
|
|
39
|
+
private timeSignatureSegments;
|
|
40
|
+
private latestTransportState;
|
|
41
|
+
private nextClipId;
|
|
42
|
+
private nextMarkerId;
|
|
43
|
+
private transportPlaying;
|
|
44
|
+
private readonly pendingInstrumentSync;
|
|
45
|
+
private readonly workletClipPageRequests;
|
|
46
|
+
private readonly workletPageProviderClipIds;
|
|
47
|
+
private workletClipStreamer;
|
|
48
|
+
private workletClipPump;
|
|
49
|
+
private workletClipPagePollTimer;
|
|
50
|
+
private unsubscribeWorkletClipRequests;
|
|
51
|
+
private destroyed;
|
|
52
|
+
private constructor();
|
|
53
|
+
static create(context: BaseAudioContext, options?: SonareEngineOptions): Promise<SonareEngine>;
|
|
54
|
+
suspend(): Promise<void>;
|
|
55
|
+
resume(): Promise<void>;
|
|
56
|
+
setTempo(bpm: number): void;
|
|
57
|
+
setTempoSegments(segments: readonly EngineTempoSegment[]): void;
|
|
58
|
+
setTimeSignature(numerator: number, denominator: number): void;
|
|
59
|
+
setTimeSignatureSegments(segments: readonly EngineTimeSignatureSegment[]): void;
|
|
60
|
+
setLoop(startPpq: number, endPpq: number, enabled?: boolean): boolean;
|
|
61
|
+
countInEndSample(startSample: number, bars: number): number;
|
|
62
|
+
getTransportState(): Promise<EngineTransportState>;
|
|
63
|
+
cachedTransportState(): EngineTransportState | undefined;
|
|
64
|
+
setParam(nodeId: string, param: string | number, value: number): boolean;
|
|
65
|
+
scheduleParam(nodeId: string, param: string | number, ppq: number, value: number, curve?: number | 'linear' | 'exponential'): void;
|
|
66
|
+
addAutomationPoint(laneId: string | number, ppq: number, value: number, curve?: number | 'linear' | 'exponential'): void;
|
|
67
|
+
/**
|
|
68
|
+
* Replaces the automation lane for `paramId` with the given breakpoints. An
|
|
69
|
+
* empty array clears the lane; the points are defensively copied and sorted
|
|
70
|
+
* by ppq before mirroring to the offline and live worklet engines.
|
|
71
|
+
*/
|
|
72
|
+
setAutomationLane(paramId: number, points: ReadonlyArray<EngineAutomationPoint>): void;
|
|
73
|
+
/**
|
|
74
|
+
* Returns the automation target id for a mixer strip parameter.
|
|
75
|
+
*
|
|
76
|
+
* The id addresses the engine's reserved mixer namespace, so it can be fed
|
|
77
|
+
* straight to setAutomationLane to automate a fader or pan without
|
|
78
|
+
* registering a parameter.
|
|
79
|
+
*
|
|
80
|
+
* @param target Track id (declares a mixer lane on first use) or 'master'.
|
|
81
|
+
* @param kind Strip parameter to address.
|
|
82
|
+
* @returns Reserved engine parameter id for the strip parameter.
|
|
83
|
+
*/
|
|
84
|
+
automationParamId(target: string | number, kind: 'faderDb' | 'pan'): number;
|
|
85
|
+
/**
|
|
86
|
+
* Returns the automation target id for a bus fader.
|
|
87
|
+
*
|
|
88
|
+
* @param busId Bus id (declares the mixer bus on first use).
|
|
89
|
+
* @returns Reserved engine parameter id for the bus fader gain (dB).
|
|
90
|
+
*/
|
|
91
|
+
busAutomationParamId(busId: number): number;
|
|
92
|
+
/**
|
|
93
|
+
* Resolves a track-lane insert parameter (JSON-key name) to the reserved
|
|
94
|
+
* insert-automation id fed straight to setAutomationLane. Declares the track's
|
|
95
|
+
* mixer lane first (like automationParamId) so the offline engine resolves the
|
|
96
|
+
* same strip selector the realtime engine uses.
|
|
97
|
+
*
|
|
98
|
+
* @param target Track id (declares a mixer lane on first use).
|
|
99
|
+
* @param insertIndex Index into the strip's combined insert sequence.
|
|
100
|
+
* @param paramName Processor JSON-key parameter name.
|
|
101
|
+
* @returns Reserved insert-automation id, or -1 when strip/insert/key unknown.
|
|
102
|
+
*/
|
|
103
|
+
resolveTrackInsertAutomationId(target: string | number, insertIndex: number, paramName: string): number;
|
|
104
|
+
/**
|
|
105
|
+
* Resolves a master-strip insert parameter to its reserved insert-automation
|
|
106
|
+
* id.
|
|
107
|
+
*
|
|
108
|
+
* @param insertIndex Index into the master strip's insert sequence.
|
|
109
|
+
* @param paramName Processor JSON-key parameter name.
|
|
110
|
+
* @returns Reserved insert-automation id, or -1 when insert/key unknown.
|
|
111
|
+
*/
|
|
112
|
+
resolveMasterInsertAutomationId(insertIndex: number, paramName: string): number;
|
|
113
|
+
/**
|
|
114
|
+
* Resolves a bus-strip insert parameter to its reserved insert-automation id.
|
|
115
|
+
* Declares the mixer bus first so the offline engine resolves the same bus
|
|
116
|
+
* selector.
|
|
117
|
+
*
|
|
118
|
+
* @param busId Bus id (declares the mixer bus on first use).
|
|
119
|
+
* @param insertIndex Index into the bus strip's insert sequence.
|
|
120
|
+
* @param paramName Processor JSON-key parameter name.
|
|
121
|
+
* @returns Reserved insert-automation id, or -1 when bus/insert/key unknown.
|
|
122
|
+
*/
|
|
123
|
+
resolveBusInsertAutomationId(busId: number, insertIndex: number, paramName: string): number;
|
|
124
|
+
/**
|
|
125
|
+
* Resolves a hosted instrument's continuous parameter to its reserved
|
|
126
|
+
* instrument-automation id, so an instrument parameter follows a breakpoint
|
|
127
|
+
* lane at audio-block precision like a strip insert. Bind the instrument
|
|
128
|
+
* (`setSynthInstrument`) before resolving.
|
|
129
|
+
*
|
|
130
|
+
* @param destinationId MIDI destination the instrument is bound to.
|
|
131
|
+
* @param paramName Instrument JSON-key parameter name (e.g. `cutoffHz`).
|
|
132
|
+
* @returns Reserved instrument-automation id, or -1 when destination/key unknown.
|
|
133
|
+
*/
|
|
134
|
+
resolveInstrumentAutomationId(destinationId: number, paramName: string): number;
|
|
135
|
+
/**
|
|
136
|
+
* Returns the number of automation lanes installed on the engine, including
|
|
137
|
+
* lanes whose breakpoint list is currently empty.
|
|
138
|
+
*
|
|
139
|
+
* @returns Engine-side automation lane count.
|
|
140
|
+
*/
|
|
141
|
+
automationLaneCount(): number;
|
|
142
|
+
listParameters(): EngineParameterInfo[];
|
|
143
|
+
/** Registers a custom parameter on the offline mirror and worklet engine. */
|
|
144
|
+
addParameter(info: EngineParameterInfo): void;
|
|
145
|
+
/** Clears custom parameters and their automation lanes on both engines. */
|
|
146
|
+
clearParameters(): void;
|
|
147
|
+
setSoloMute(target: string | number, solo: boolean, mute: boolean): boolean;
|
|
148
|
+
/** Queues a per-track PFL/AFL monitor tap mode change. */
|
|
149
|
+
setTrackMonitorMode(target: string | number, mode: EngineTrackMonitorMode, renderFrame?: number): boolean;
|
|
150
|
+
setStripGain(target: string | number, db: number): boolean;
|
|
151
|
+
setStripPan(target: string | number, pan: number): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Declares the mixer track lanes in an explicit order.
|
|
154
|
+
*
|
|
155
|
+
* Lane indices are append-only: once a track id occupies a lane, its index
|
|
156
|
+
* stays fixed for the engine's lifetime. The given list must therefore start
|
|
157
|
+
* with the already-declared lane ids in their current order and may only
|
|
158
|
+
* append new track ids after them. Entries carrying `sends` replace that
|
|
159
|
+
* track's send list; entries without `sends` leave existing sends untouched.
|
|
160
|
+
*
|
|
161
|
+
* @param lanes Track ids or lane descriptors in the desired lane order.
|
|
162
|
+
*/
|
|
163
|
+
setTrackLanes(lanes: ReadonlyArray<number | EngineTrackLane>): void;
|
|
164
|
+
/**
|
|
165
|
+
* Routes a track lane's post-fader output into a declared bus instead of
|
|
166
|
+
* the master mix (group/folder routing); busId 0 restores the master mix.
|
|
167
|
+
*/
|
|
168
|
+
setTrackOutputBus(target: string | number, busId: number): void;
|
|
169
|
+
/**
|
|
170
|
+
* Keys one insert of a lane strip from another lane's post-strip pre-fader
|
|
171
|
+
* audio (ducking/sidechainRouter inserts). sourceTarget null removes the
|
|
172
|
+
* binding.
|
|
173
|
+
*/
|
|
174
|
+
setLaneSidechain(target: string | number, insertIndex: number, sourceTarget: string | number | null): void;
|
|
175
|
+
setSends(target: string | number, sends: EngineTrackSend[]): void;
|
|
176
|
+
setTrackBuses(buses: EngineBus[]): void;
|
|
177
|
+
/**
|
|
178
|
+
* Keys one insert of a bus strip from a track lane or another bus
|
|
179
|
+
* (ducking/sidechainRouter inserts). `sourceId` 0 removes the binding.
|
|
180
|
+
*/
|
|
181
|
+
setBusSidechain(busId: number, insertIndex: number, sourceKind: SidechainSourceKind | number, sourceId: number): void;
|
|
182
|
+
/**
|
|
183
|
+
* Keys one insert of the master strip from a track lane or a bus. Same
|
|
184
|
+
* source rules as {@link setBusSidechain}.
|
|
185
|
+
*/
|
|
186
|
+
setMasterSidechain(insertIndex: number, sourceKind: SidechainSourceKind | number, sourceId: number): void;
|
|
187
|
+
setBusGain(busId: number, db: number): boolean;
|
|
188
|
+
setTrackStripJson(target: string | number, sceneJson: string): void;
|
|
189
|
+
setTrackStripEqBand(target: string | number, bandIndex: number, band: EqBand | string): void;
|
|
190
|
+
setTrackStripInsertBypassed(target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
191
|
+
setTrackStripInsertParamByName(target: string | number, insertIndex: number, paramName: string, value: number): void;
|
|
192
|
+
setTrackStripPan(target: string | number, pan: number): void;
|
|
193
|
+
setTrackStripPanLaw(target: string | number, panLaw: PanLaw | number): void;
|
|
194
|
+
setTrackStripPanMode(target: string | number, panMode: PanMode | number): void;
|
|
195
|
+
setTrackStripDualPan(target: string | number, leftPan: number, rightPan: number): void;
|
|
196
|
+
setTrackStripChannelDelaySamples(target: string | number, delaySamples: number): void;
|
|
197
|
+
setStripEq(target: string | number, bandIndex: number, band: EqBand | string): void;
|
|
198
|
+
setStripInsertBypassed(target: string | number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
199
|
+
setStripInserts(target: string | number, sceneJson: string): void;
|
|
200
|
+
setBusStripJson(busId: number, sceneJson: string): void;
|
|
201
|
+
setMasterStripJson(sceneJson: string): void;
|
|
202
|
+
setMasterStripEqBand(bandIndex: number, band: EqBand | string): void;
|
|
203
|
+
setMasterStripInsertBypassed(insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
204
|
+
setMasterStripInsertParamByName(insertIndex: number, paramName: string, value: number): void;
|
|
205
|
+
setBusStripInsertParamByName(busId: number, insertIndex: number, paramName: string, value: number): void;
|
|
206
|
+
/**
|
|
207
|
+
* Bus-strip counterpart of {@link setStripInsertBypassed}. A bus is addressed
|
|
208
|
+
* by its numeric id, which the `target` of the track/master form cannot
|
|
209
|
+
* express, so it is its own method exactly like
|
|
210
|
+
* {@link setBusStripInsertParamByName}. Bypassing keeps the insert's internal
|
|
211
|
+
* state (reverb tail, compressor envelope) unless `resetOnBypass` is set;
|
|
212
|
+
* re-posting the bus scene JSON, the only workaround before this existed,
|
|
213
|
+
* rebuilds the chain and loses it.
|
|
214
|
+
*/
|
|
215
|
+
setBusStripInsertBypassed(busId: number, insertIndex: number, bypassed: boolean, resetOnBypass?: boolean): void;
|
|
216
|
+
/** Bus-strip counterpart of {@link setTrackStripEqBand}. */
|
|
217
|
+
setBusStripEqBand(busId: number, bandIndex: number, band: EqBand | string): void;
|
|
218
|
+
/** Bus-strip counterpart of {@link setTrackStripPan}; refused on a surround bus. */
|
|
219
|
+
setBusStripPan(busId: number, pan: number): void;
|
|
220
|
+
setBusStripPanLaw(busId: number, panLaw: PanLaw | number): void;
|
|
221
|
+
setBusStripPanMode(busId: number, panMode: PanMode | number): void;
|
|
222
|
+
setBusStripDualPan(busId: number, leftPan: number, rightPan: number): void;
|
|
223
|
+
setStripInsertParamByName(target: string | number, insertIndex: number, paramName: string, value: number): void;
|
|
224
|
+
setMasterChain(sceneJson: string): void;
|
|
225
|
+
/**
|
|
226
|
+
* Creates and primes an OPFS-backed page provider for this live worklet
|
|
227
|
+
* engine. Pass the returned `provider` to {@link addClip} in place of a
|
|
228
|
+
* `Float32Array[]`; the `clipId` in `options` must equal that clip's explicit
|
|
229
|
+
* `opts.id`. Subsequent cache misses are fetched on the main thread and
|
|
230
|
+
* supplied back to the worklet through its bounded pull protocol.
|
|
231
|
+
*/
|
|
232
|
+
attachOpfsClipStream(options: OpfsClipStreamOptions): Promise<{
|
|
233
|
+
binding: OpfsClipPageProviderBinding;
|
|
234
|
+
provider: ClipPageProvider;
|
|
235
|
+
}>;
|
|
236
|
+
/**
|
|
237
|
+
* Sets the clip-page look-ahead window in timeline frames on both the worklet
|
|
238
|
+
* engine and this thread's offline engine.
|
|
239
|
+
*
|
|
240
|
+
* The audio thread reports the pages it is *about to* read that are not
|
|
241
|
+
* resident yet, so the sliding-window streamer can service them before the
|
|
242
|
+
* playhead reaches them. Without look-ahead a page miss is only reported
|
|
243
|
+
* after the read already produced silence, which costs one block of silence
|
|
244
|
+
* at every page boundary that was not primed.
|
|
245
|
+
*
|
|
246
|
+
* Defaults to half a second at the engine's sample rate. `0` disables it.
|
|
247
|
+
* Safe to call during playback.
|
|
248
|
+
*/
|
|
249
|
+
setClipPagePrefetchFrames(frames: number): void;
|
|
250
|
+
/**
|
|
251
|
+
* Sets the number of concurrent time-stretch voices on both this thread's
|
|
252
|
+
* offline engine and the live worklet engine. `voices` must be an integer
|
|
253
|
+
* in `[0, 64]`; a non-integer, negative, or larger value throws and leaves
|
|
254
|
+
* the capacity unchanged on both engines. Default is 8. Capacity 0 disables
|
|
255
|
+
* time-stretch, so every warped clip plays resampled instead. A change
|
|
256
|
+
* applied while the engine is running restarts the splice state of any clip
|
|
257
|
+
* stretching through a voice at that moment.
|
|
258
|
+
*/
|
|
259
|
+
setWarpVoiceCapacity(voices: number): void;
|
|
260
|
+
/** Reads the current time-stretch voice capacity (default 8). */
|
|
261
|
+
warpVoiceCapacity(): number;
|
|
262
|
+
addClip(trackId: string | number, buffer: Float32Array[] | ClipPageProvider, startPpq: number, opts?: Partial<Omit<EngineClip, 'channels' | 'pageProvider' | 'startPpq'>>): number;
|
|
263
|
+
removeClip(clipId: number): void;
|
|
264
|
+
setMidiClips(schedules: readonly EngineMidiClipSchedule[]): void;
|
|
265
|
+
setBuiltinInstrument(trackId: string | number, config?: {
|
|
266
|
+
destinationId?: number;
|
|
267
|
+
} & Record<string, unknown>): void;
|
|
268
|
+
setSynthInstrument(trackId: string | number, patch?: Record<string, unknown> | string): void;
|
|
269
|
+
loadSoundFont(data: Uint8Array): void;
|
|
270
|
+
setSf2Instrument(trackId: string | number, config?: {
|
|
271
|
+
destinationId?: number;
|
|
272
|
+
gain?: number;
|
|
273
|
+
polyphony?: number;
|
|
274
|
+
preferModelForModeledFamilies?: boolean;
|
|
275
|
+
clearBankRig?: boolean;
|
|
276
|
+
gsEfxRealization?: 'modern' | 'classic';
|
|
277
|
+
}): void;
|
|
278
|
+
/**
|
|
279
|
+
* Route a track's MIDI to the external output (drained via {@link onMidiOut})
|
|
280
|
+
* instead of an internal instrument, so the track plays an external device.
|
|
281
|
+
* Pass `external=false` to restore internal-synth playback.
|
|
282
|
+
*/
|
|
283
|
+
setMidiDestinationExternal(trackId: string | number, external: boolean): void;
|
|
284
|
+
/**
|
|
285
|
+
* Enable/disable forwarding MIDI clock + transport (start/continue/stop) to
|
|
286
|
+
* the external output so external gear tracks the transport tempo. The bytes
|
|
287
|
+
* arrive through {@link onMidiOut} tagged with the transport destination.
|
|
288
|
+
*/
|
|
289
|
+
setExternalMidiClockEnabled(enabled: boolean): void;
|
|
290
|
+
/**
|
|
291
|
+
* Install or replace a live, non-destructive MIDI-FX insert for one
|
|
292
|
+
* destination. The insert transforms the destination's MIDI before
|
|
293
|
+
* synthesis (transpose, quantize, velocity shaping, humanize, harmonize,
|
|
294
|
+
* arpeggiate) without rewriting any stored notes, so it can be bypassed by
|
|
295
|
+
* {@link clearMidiFx}. The config JSON is the flat object the engine's
|
|
296
|
+
* MIDI-FX accepts (the same schema as the offline `Project.bakeMidiFx`).
|
|
297
|
+
*/
|
|
298
|
+
setMidiFx(trackId: string | number, configJson: string): void;
|
|
299
|
+
/** Remove the live MIDI-FX insert from one destination (a no-op when none). */
|
|
300
|
+
clearMidiFx(trackId: string | number): void;
|
|
301
|
+
pushMidiNoteOn(trackId: string | number, group: number, channel: number, note: number, velocity: number, renderFrame?: number): void;
|
|
302
|
+
pushMidiNoteOff(trackId: string | number, group: number, channel: number, note: number, velocity?: number, renderFrame?: number): void;
|
|
303
|
+
pushMidiCc(trackId: string | number, group: number, channel: number, controller: number, value: number, renderFrame?: number): void;
|
|
304
|
+
pushMidiPitchBend(trackId: string | number, group: number, channel: number, bend14: number, renderFrame?: number): void;
|
|
305
|
+
pushMidiChannelPressure(trackId: string | number, group: number, channel: number, pressure: number, renderFrame?: number): void;
|
|
306
|
+
pushMidiPolyPressure(trackId: string | number, group: number, channel: number, note: number, pressure: number, renderFrame?: number): void;
|
|
307
|
+
pushMidiUmp(trackId: string | number, word0: number, renderFrame?: number): void;
|
|
308
|
+
pushMidiSysex(trackId: string | number, data: Uint8Array, renderFrame?: number): void;
|
|
309
|
+
bindMidiCc(channel: number, controller: number, paramId: number, options?: MidiCcBindOptions): void;
|
|
310
|
+
setMidiInputSource(destinationId?: number): void;
|
|
311
|
+
clearMidiInputSource(): void;
|
|
312
|
+
pushMidiInputNoteOn(group: number, channel: number, note: number, velocity: number, portTimeSamples?: number): void;
|
|
313
|
+
pushMidiInputNoteOff(group: number, channel: number, note: number, velocity?: number, portTimeSamples?: number): void;
|
|
314
|
+
pushMidiInputCc(group: number, channel: number, controller: number, value: number, portTimeSamples?: number): void;
|
|
315
|
+
pushMidiInputPitchBend(group: number, channel: number, bend14: number, portTimeSamples?: number): void;
|
|
316
|
+
pushMidiInputChannelPressure(group: number, channel: number, pressure: number, portTimeSamples?: number): void;
|
|
317
|
+
pushMidiInputPolyPressure(group: number, channel: number, note: number, pressure: number, portTimeSamples?: number): void;
|
|
318
|
+
pushMidiPanic(renderFrame?: number): void;
|
|
319
|
+
configureCapture(options: CaptureOptions): void;
|
|
320
|
+
/**
|
|
321
|
+
* Arms the engine-global capture path. `trackId` is retained for source
|
|
322
|
+
* compatibility and must be `0`; per-track capture is not implemented.
|
|
323
|
+
*/
|
|
324
|
+
armRecord(trackId: string | number, enabled: boolean): boolean;
|
|
325
|
+
punch(inPpq: number, outPpq: number): boolean;
|
|
326
|
+
captureStatus(): Promise<EngineCaptureStatus>;
|
|
327
|
+
capturedAudio(): Promise<Float32Array[]>;
|
|
328
|
+
resetCapture(): Promise<void>;
|
|
329
|
+
setMetronome(opts: EngineMetronomeConfig): void;
|
|
330
|
+
addMarker(ppq: number, name?: string): number;
|
|
331
|
+
/**
|
|
332
|
+
* Replaces the whole marker set in one call. Entries without an `id` are
|
|
333
|
+
* assigned fresh ids; entries carrying an `id` keep it. Returns the resolved
|
|
334
|
+
* markers in the order given.
|
|
335
|
+
*/
|
|
336
|
+
setMarkers(entries: ReadonlyArray<{
|
|
337
|
+
ppq: number;
|
|
338
|
+
name?: string;
|
|
339
|
+
id?: number;
|
|
340
|
+
}>): EngineMarker[];
|
|
341
|
+
markerCount(): number;
|
|
342
|
+
markerByIndex(index: number): EngineMarker;
|
|
343
|
+
marker(markerId: number): EngineMarker;
|
|
344
|
+
seekMarker(markerId: number): boolean;
|
|
345
|
+
setLoopFromMarkers(startMarkerId: number, endMarkerId: number): boolean;
|
|
346
|
+
renderOffline(totalFrames: number): Promise<Float32Array[]>;
|
|
347
|
+
/**
|
|
348
|
+
* Subscribe to external-MIDI batches (already lowered to MIDI 1.0 bytes) for
|
|
349
|
+
* delivery to Web MIDI output ports. Fires once per render block that
|
|
350
|
+
* produced events. Returns an unsubscribe function.
|
|
351
|
+
*/
|
|
352
|
+
onMidiOut(callback: (events: SonareWorkletExternalMidiEvent[]) => void): () => void;
|
|
353
|
+
onMeter(callback: (meter: SonareWorkletMeterSnapshot) => void): () => void;
|
|
354
|
+
onScope(callback: (scope: SonareWorkletScopeSnapshot) => void): () => void;
|
|
355
|
+
onTelemetry(callback: (telemetry: SonareEngineTelemetryRecord) => void): () => void;
|
|
356
|
+
pollTelemetry(): SonareEngineTelemetryRecord[];
|
|
357
|
+
pollMeters(): SonareWorkletMeterSnapshot[];
|
|
358
|
+
pollScope(): SonareWorkletScopeSnapshot[];
|
|
359
|
+
destroy(): void;
|
|
360
|
+
private ensureWorkletClipStreamer;
|
|
361
|
+
/**
|
|
362
|
+
* SAB requests have no postMessage wake-up by design. Polling on the main
|
|
363
|
+
* thread is therefore intentionally outside the audio callback; 8 ms keeps
|
|
364
|
+
* the bounded OPFS prefetch frontier responsive without adding worklet GC.
|
|
365
|
+
*/
|
|
366
|
+
private startWorkletClipPagePolling;
|
|
367
|
+
private pumpWorkletClipPages;
|
|
368
|
+
private enqueueWorkletClipPageRequest;
|
|
369
|
+
private popWorkletClipPageRequest;
|
|
370
|
+
private commitWorkletClipPageProvider;
|
|
371
|
+
private mixerLanes;
|
|
372
|
+
private syncMixer;
|
|
373
|
+
private insertAutomationTargetKey;
|
|
374
|
+
private rememberInsertAutomationId;
|
|
375
|
+
private clearInsertAutomationLanes;
|
|
376
|
+
private postInstrumentSync;
|
|
377
|
+
private flushPendingInstrumentSync;
|
|
378
|
+
private postSync;
|
|
379
|
+
private flushOfflineMirror;
|
|
380
|
+
private sendMirroredCommand;
|
|
381
|
+
private get mixerContext();
|
|
382
|
+
private get stripContext();
|
|
383
|
+
private get automationContext();
|
|
384
|
+
private get captureContext();
|
|
385
|
+
private get parameterContext();
|
|
386
|
+
private get tempoContext();
|
|
387
|
+
private get clipContext();
|
|
388
|
+
private get markerContext();
|
|
389
|
+
private stripParamId;
|
|
390
|
+
private sendSmoothedParam;
|
|
391
|
+
private resolveParamId;
|
|
392
|
+
private syncParameters;
|
|
393
|
+
private resolveTargetId;
|
|
394
|
+
private ensureTrackLane;
|
|
395
|
+
private ensureBus;
|
|
396
|
+
}
|
|
397
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/worklet/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,MAAM,EACN,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAA8B,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3D,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,kBAAkB,CAAC;AAQrF,OAAO,KAAK,EAIV,2BAA2B,EAC3B,oCAAoC,EACpC,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EAML,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAChC,MAAM,YAAY,CAAC;AAoBpB,qBAAa,YAAY;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,oCAAoC,CAAC;IAC5D,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8C;IAC9E,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAkC;IAC9E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG3B;IACJ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;IACJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG7B;IACJ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;IAC1E,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,qBAAqB,CAE3B;IACF,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2C;IAIjF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA8C;IACtF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA6B;IACxE,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,wBAAwB,CAA6C;IAC7E,OAAO,CAAC,8BAA8B,CAA2B;IACjE,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;WAqCM,MAAM,CACjB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC;IA8BlB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI3B,gBAAgB,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI;IAI/D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI9D,wBAAwB,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,GAAG,IAAI;IAI/E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,OAAO;IAIlE,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3D,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAIlD,oBAAoB,IAAI,oBAAoB,GAAG,SAAS;IAIxD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIxE,aAAa,CACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,aAAwB,GAClD,IAAI;IAIP,kBAAkB,CAChB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,aAAwB,GAClD,IAAI;IAIP;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAAG,IAAI;IAItF;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM;IAI3E;;;;;OAKG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI3C;;;;;;;;;;OAUG;IACH,8BAA8B,CAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM;IAcT;;;;;;;OAOG;IACH,+BAA+B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAY/E;;;;;;;;;OASG;IACH,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAa3F;;;;;;;;;OASG;IACH,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAI/E;;;;;OAKG;IACH,mBAAmB,IAAI,MAAM;IAI7B,cAAc,IAAI,mBAAmB,EAAE;IAIvC,6EAA6E;IAC7E,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAI7C,2EAA2E;IAC3E,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAI3E,0DAA0D;IAC1D,mBAAmB,CACjB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,EAAE,sBAAsB,EAC5B,WAAW,SAAK,GACf,OAAO;IAIV,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ1D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ1D;;;;;;;;;;OAUG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,IAAI;IAInE;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/D;;;;OAIG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACnC,IAAI;IAIP,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAIjE,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAIvC;;;OAGG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,mBAAmB,GAAG,MAAM,EACxC,QAAQ,EAAE,MAAM,GACf,IAAI;IAIP;;;OAGG;IACH,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,mBAAmB,GAAG,MAAM,EACxC,QAAQ,EAAE,MAAM,GACf,IAAI;IAIP,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAgBnE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI5F,2BAA2B,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,aAAa,UAAQ,GACpB,IAAI;IAUP,8BAA8B,CAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,IAAI;IAIP,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5D,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAI9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAItF,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAIrF,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQnF,sBAAsB,CACpB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,aAAa,UAAQ,GACpB,IAAI;IAQP,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQjE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAe3C,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpE,4BAA4B,CAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,aAAa,UAAQ,GACpB,IAAI;IAIP,+BAA+B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5F,4BAA4B,CAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,IAAI;IAKP;;;;;;;;OAQG;IACH,yBAAyB,CACvB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,aAAa,UAAQ,GACpB,IAAI;IAWP,4DAA4D;IAC5D,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKhF,oFAAoF;IACpF,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK/D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAKlE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK1E,yBAAyB,CACvB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,IAAI;IAQP,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC;;;;;;OAMG;IACG,oBAAoB,CACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAkEhF;;;;;;;;;;;;OAYG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAW/C;;;;;;;;OAQG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1C,iEAAiE;IACjE,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CACL,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC,CAAM,GAC7E,MAAM;IAIT,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAAG,IAAI;IAIhE,oBAAoB,CAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAChE,IAAI;IAIP,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAW,GAAG,IAAI;IAIhG,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIrC,gBAAgB,CACd,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,GAAE;QACN,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;KACpC,GACL,IAAI;IAIP;;;;OAIG;IACH,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7E;;;;OAIG;IACH,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInD;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI7D,+EAA+E;IAC/E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3C,cAAc,CACZ,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,IAAI;IAIP,eAAe,CACb,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,WAAW,SAAK,GACf,IAAI;IAIP,UAAU,CACR,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,WAAW,SAAK,GACf,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,SAAK,GACf,IAAI;IAIP,uBAAuB,CACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,IAAI;IAWP,oBAAoB,CAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,IAAI;IAYP,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,IAAI;IAI5E,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,SAAK,GAAG,IAAI;IAIjF,UAAU,CACR,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,IAAI;IAOP,kBAAkB,CAAC,aAAa,SAAI,GAAG,IAAI;IAK3C,oBAAoB,IAAI,IAAI;IAK5B,mBAAmB,CACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,SAAI,GAClB,IAAI;IAYP,oBAAoB,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,eAAe,SAAI,GAClB,IAAI;IAYP,eAAe,CACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,eAAe,SAAI,GAClB,IAAI;IAYP,sBAAsB,CACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,eAAe,SAAI,GAClB,IAAI;IAYP,4BAA4B,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,eAAe,SAAI,GAClB,IAAI;IAYP,yBAAyB,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,SAAI,GAClB,IAAI;IAYP,aAAa,CAAC,WAAW,SAAK,GAAG,IAAI;IAKrC,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI/C;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAI9D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAI7C,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI7C,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIlC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAa/C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM;IAIzC;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,YAAY,EAAE;IAI/F,WAAW,IAAI,MAAM;IAIrB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAI1C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAItC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAIjE,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IASjE;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAInF,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI;IAI1E,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI;IAI1E,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,2BAA2B,KAAK,IAAI,GAAG,MAAM,IAAI;IAInF,aAAa,IAAI,2BAA2B,EAAE;IAI9C,UAAU,IAAI,0BAA0B,EAAE;IAI1C,SAAS,IAAI,0BAA0B,EAAE;IAIzC,OAAO,IAAI,IAAI;IAoBf,OAAO,CAAC,yBAAyB;IASjC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAanC,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,6BAA6B;IAoBrC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,KAAK,YAAY,GA2BvB;IAKD,OAAO,KAAK,YAAY,GAavB;IAKD,OAAO,KAAK,iBAAiB,GAO5B;IAKD,OAAO,KAAK,cAAc,GAYzB;IAMD,OAAO,KAAK,gBAAgB,GAW3B;IAKD,OAAO,KAAK,YAAY,GA2BvB;IAKD,OAAO,KAAK,WAAW,GAWtB;IAKD,OAAO,KAAK,aAAa,GAYxB;IAID,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,SAAS;CAclB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { SonareEngineCaptureRequestMessage, SonareEngineCaptureResponseMessageInternal, SonareEngineClipPageRequestMessage, SonareEngineSyncMessage, SonareEngineTransportRequestMessage, SonareEngineTransportResponseMessage, SonarePlaybackMessage, SonareRealtimeVoiceChangerMessage, SonareWorkletExternalMidiMessage, SonareWorkletMessage } from './messages';
|
|
2
|
+
import { type SonareEngineCommandRecord, type SonareEngineTelemetryRecord, type SonareWorkletMeterSnapshot } from './protocol';
|
|
3
|
+
export declare function isWorkletMessage(value: unknown): value is SonareWorkletMessage;
|
|
4
|
+
export declare function isEngineCommandRecord(value: unknown): value is SonareEngineCommandRecord;
|
|
5
|
+
/**
|
|
6
|
+
* Every discriminant the worklet accepts on the control plane, derived from the
|
|
7
|
+
* `SonareEngineSyncMessage` union rather than restated as literals.
|
|
8
|
+
*
|
|
9
|
+
* The `Record<SonareEngineSyncMessage['type'], true>` annotation rejects a
|
|
10
|
+
* missing key and the object literal's excess-property check rejects a stale
|
|
11
|
+
* one, so a union member that never reaches this table is a compile error
|
|
12
|
+
* instead of a message the port drops in silence.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ENGINE_SYNC_MESSAGE_TYPES: Record<SonareEngineSyncMessage['type'], true>;
|
|
15
|
+
export declare function isEngineSyncMessage(value: unknown): value is SonareEngineSyncMessage;
|
|
16
|
+
export declare function isEngineCaptureRequestMessage(value: unknown): value is SonareEngineCaptureRequestMessage;
|
|
17
|
+
/** Return a request ID even when the response payload itself is malformed. */
|
|
18
|
+
export declare function engineCaptureResponseRequestId(value: unknown): number | undefined;
|
|
19
|
+
export declare function isEngineCaptureResponseMessage(value: unknown): value is SonareEngineCaptureResponseMessageInternal;
|
|
20
|
+
/**
|
|
21
|
+
* Check that a strict success response belongs to the requested operation.
|
|
22
|
+
* Failure responses are operation-independent and are therefore valid for
|
|
23
|
+
* every pending request (the node rejects them after this check).
|
|
24
|
+
*/
|
|
25
|
+
export declare function isEngineCaptureResponseForOperation(response: SonareEngineCaptureResponseMessageInternal, op: SonareEngineCaptureRequestMessage['op']): boolean;
|
|
26
|
+
export declare function isEngineTransportRequestMessage(value: unknown): value is SonareEngineTransportRequestMessage;
|
|
27
|
+
export declare function isEngineTransportResponseMessage(value: unknown): value is SonareEngineTransportResponseMessage;
|
|
28
|
+
export declare function isRealtimeVoiceChangerMessage(value: unknown): value is SonareRealtimeVoiceChangerMessage;
|
|
29
|
+
export declare function isPlaybackMessage(value: unknown): value is SonarePlaybackMessage;
|
|
30
|
+
export declare function isEngineTelemetryRecord(value: unknown): value is SonareEngineTelemetryRecord;
|
|
31
|
+
export declare function isExternalMidiBatchMessage(value: unknown): value is SonareWorkletExternalMidiMessage;
|
|
32
|
+
export declare function isClipPageRequestMessage(value: unknown): value is SonareEngineClipPageRequestMessage;
|
|
33
|
+
export declare function isMeterSnapshot(value: unknown): value is SonareWorkletMeterSnapshot;
|
|
34
|
+
/**
|
|
35
|
+
* Resolves an integer option, refusing anything the field's own domain cannot
|
|
36
|
+
* hold instead of rounding it into range.
|
|
37
|
+
*
|
|
38
|
+
* Rounding hands the caller a working object configured with a value they never
|
|
39
|
+
* asked for, and nothing downstream can tell that apart from the value they
|
|
40
|
+
* meant. A ceiling, where one exists, stays with the layer that owns it.
|
|
41
|
+
*/
|
|
42
|
+
export declare function requireIntegerOption(value: number | undefined, fallback: number, name: string, minimum: number): number;
|
|
43
|
+
/** As {@link requireIntegerOption}, for a field whose domain admits either sign. */
|
|
44
|
+
export declare function requireInteger(value: number | undefined, fallback: number, name: string): number;
|
|
45
|
+
/** Resolves the channel count every worklet entry point accepts on its options. */
|
|
46
|
+
export declare function requireChannelCount(channelCount: number | undefined, fallback: number): number;
|
|
47
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/worklet/guards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iCAAiC,EACjC,0CAA0C,EAC1C,kCAAkC,EAClC,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,EACpC,qBAAqB,EACrB,iCAAiC,EACjC,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAChC,MAAM,YAAY,CAAC;AAEpB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAS9E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAExF;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,IAAI,CA+DnF,CAAC;AAMF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAIpF;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iCAAiC,CAO5C;AAwCD,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUjF;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,0CAA0C,CAyBrD;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,0CAA0C,EACpD,EAAE,EAAE,iCAAiC,CAAC,IAAI,CAAC,GAC1C,OAAO,CAYT;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mCAAmC,CAO9C;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oCAAoC,CAO/C;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iCAAiC,CAK5C;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAoBhF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,2BAA2B,CAW5F;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,gCAAgC,CAE3C;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kCAAkC,CAY7C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,0BAA0B,CAYnF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,MAAM,CAMR;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhG;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9F"}
|