@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,164 @@
|
|
|
1
|
+
import type { HrtfSet } from './playback_renderer';
|
|
2
|
+
/**
|
|
3
|
+
* The playback renderer configuration document, in the schema
|
|
4
|
+
* `schemas/playback-renderer-config.schema.json` (also shipped as the
|
|
5
|
+
* `./schemas/playback-renderer-config.schema.json` package export). Field
|
|
6
|
+
* spelling is the schema's own (snake_case, dotted nesting) rather than this
|
|
7
|
+
* binding's usual camelCase: the document is parsed by the shared C++ core, so
|
|
8
|
+
* every surface has to agree on one literal spelling.
|
|
9
|
+
*
|
|
10
|
+
* Every key is either a "prepare" key (fixed at {@link PlaybackRenderer}
|
|
11
|
+
* construction; changing one through `setConfig` throws) or a "realtime" key
|
|
12
|
+
* (adopted at the next processed block). Omitted keys take the schema defaults
|
|
13
|
+
* documented on each field below.
|
|
14
|
+
*/
|
|
15
|
+
export interface PlaybackRendererConfig {
|
|
16
|
+
input?: PlaybackInputConfig;
|
|
17
|
+
target?: PlaybackTargetConfig;
|
|
18
|
+
/** LFE level folded into L/R when the output has no LFE plane or no subwoofer. Realtime, default 0. */
|
|
19
|
+
lfe_mix_db?: number;
|
|
20
|
+
upmix?: PlaybackUpmixConfig;
|
|
21
|
+
/** Static gain on the discrete centre of 5.1 / 7.1 input. Realtime, [-12, 12], default 0. */
|
|
22
|
+
dialogue_level_db?: number;
|
|
23
|
+
loudness?: PlaybackLoudnessConfig;
|
|
24
|
+
night_mode?: PlaybackNightModeConfig;
|
|
25
|
+
room?: PlaybackRoomConfig;
|
|
26
|
+
head_tracking?: PlaybackHeadTrackingConfig;
|
|
27
|
+
output_limiter?: PlaybackOutputLimiterConfig;
|
|
28
|
+
}
|
|
29
|
+
/** A speaker role name (`schemas/playback-renderer-config.schema.json` `$defs.role`). */
|
|
30
|
+
export type PlaybackChannelRole = 'L' | 'R' | 'C' | 'LFE' | 'Ls' | 'Rs' | 'Lss' | 'Rss';
|
|
31
|
+
export interface PlaybackInputConfig {
|
|
32
|
+
/** Prepare. `"auto"` follows the channel count of each processed block (1, 2, 6 or 8). Default `"auto"`. */
|
|
33
|
+
layout?: 'auto' | 'mono' | 'stereo' | '5.1' | '7.1';
|
|
34
|
+
/**
|
|
35
|
+
* Prepare. Role of each input channel, covering the fixed layout's roles
|
|
36
|
+
* exactly once; requires a fixed `layout`. `null` means canonical order.
|
|
37
|
+
*/
|
|
38
|
+
channel_map?: PlaybackChannelRole[] | null;
|
|
39
|
+
}
|
|
40
|
+
export interface PlaybackSpeakerConfig {
|
|
41
|
+
/** Prepare. Listener distance in metres, [0.1, 30]; `null` disables distance compensation. Default `null`. */
|
|
42
|
+
distance_m?: number | null;
|
|
43
|
+
/** Realtime. Level trim in dB, [-20, 20]. Default 0. */
|
|
44
|
+
trim_db?: number;
|
|
45
|
+
/** Prepare. A `"small"` speaker is high-passed at the crossover when bass management is enabled. Default `"large"`. */
|
|
46
|
+
size?: 'large' | 'small';
|
|
47
|
+
}
|
|
48
|
+
export interface PlaybackBassManagementConfig {
|
|
49
|
+
/** Prepare. Default false. */
|
|
50
|
+
enabled?: boolean;
|
|
51
|
+
/** Prepare. LR4 crossover frequency, [40, 200]. Default 80. */
|
|
52
|
+
crossover_hz?: number;
|
|
53
|
+
/** Prepare. false folds the low band and LFE into the large L/R pair; L and R must then be large. Default true. */
|
|
54
|
+
subwoofer?: boolean;
|
|
55
|
+
/** Realtime. LFE gain when feeding the subwoofer, [-10, 15]. Default 10. */
|
|
56
|
+
lfe_gain_db?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface PlaybackTargetConfig {
|
|
59
|
+
/** Prepare. Default `"headphones"`. */
|
|
60
|
+
kind?: 'headphones' | 'speakers';
|
|
61
|
+
/** Prepare. Required for `kind: "speakers"`, forbidden for `"headphones"`. */
|
|
62
|
+
layout?: 'stereo' | '5.1' | '7.1';
|
|
63
|
+
/** Per-speaker calibration keyed by role; only the non-LFE roles of the output layout. */
|
|
64
|
+
speakers?: Partial<Record<Exclude<PlaybackChannelRole, 'LFE'>, PlaybackSpeakerConfig>>;
|
|
65
|
+
bass_management?: PlaybackBassManagementConfig;
|
|
66
|
+
}
|
|
67
|
+
export interface PlaybackUpmixConfig {
|
|
68
|
+
/** Realtime. Stereo input only; the latency does not change. Default true. */
|
|
69
|
+
enabled?: boolean;
|
|
70
|
+
/** Realtime. Width of the centre window on the panning index, [0.05, 1]. Default 0.2. */
|
|
71
|
+
center_width?: number;
|
|
72
|
+
/** Realtime. Power share of the ambience kept in the front pair, [0, 1]. Default 0.5. */
|
|
73
|
+
front_ambience?: number;
|
|
74
|
+
/** Realtime. Derive LFE from the low-passed L/R sum. Default false. */
|
|
75
|
+
lfe_from_upmix?: boolean;
|
|
76
|
+
}
|
|
77
|
+
export interface PlaybackLoudnessConfig {
|
|
78
|
+
/** Realtime. Measured program loudness, [-70, 0]; `null` means no alignment gain. Default `null`. */
|
|
79
|
+
program_lufs?: number | null;
|
|
80
|
+
/** Realtime. [-40, -5]. Default -24. */
|
|
81
|
+
target_lufs?: number;
|
|
82
|
+
}
|
|
83
|
+
export interface PlaybackNightModeConfig {
|
|
84
|
+
/** Realtime. 0 disables the dynamic range control. [0, 1]. Default 0. */
|
|
85
|
+
amount?: number;
|
|
86
|
+
}
|
|
87
|
+
export interface PlaybackRoomConfig {
|
|
88
|
+
/** Prepare. Headphones only. Default `"living_room"`. */
|
|
89
|
+
preset?: 'none' | 'living_room' | 'home_theater' | 'screening_room';
|
|
90
|
+
/** Realtime. Level of the early reflections and the late reverberation, [-30, 6]. Default -6. */
|
|
91
|
+
mix_db?: number;
|
|
92
|
+
/** Realtime. Default true. */
|
|
93
|
+
enabled?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface PlaybackHeadTrackingConfig {
|
|
96
|
+
/** Realtime. false treats the head pose as zero. Default true. */
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
}
|
|
99
|
+
export interface PlaybackOutputLimiterConfig {
|
|
100
|
+
/** Realtime. The latency does not change. Default true. */
|
|
101
|
+
enabled?: boolean;
|
|
102
|
+
/** Realtime. [-12, 0]. Default -1. */
|
|
103
|
+
ceiling_db?: number;
|
|
104
|
+
}
|
|
105
|
+
/** A stage name used in {@link PlaybackDiagnostics.inactive_stages} and `.latency.stages`. */
|
|
106
|
+
export type PlaybackStageName = 'reorder' | 'dialogue_level' | 'upmix' | 'loudness' | 'night_mode' | 'layout_convert' | 'speaker_calibration' | 'bass_management' | 'binaural' | 'room_early' | 'room_late' | 'output_limiter';
|
|
107
|
+
/** Per-stage reported latency, in samples and in Q8 fixed-point. */
|
|
108
|
+
export interface PlaybackStageLatency {
|
|
109
|
+
samples: number;
|
|
110
|
+
q8: number;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The renderer's diagnostics document, a plain object that can be sent through
|
|
114
|
+
* `postMessage` as is. Field spelling is the core's own (snake_case), the same
|
|
115
|
+
* pass-through convention as {@link PlaybackRendererConfig}.
|
|
116
|
+
*/
|
|
117
|
+
export interface PlaybackDiagnostics {
|
|
118
|
+
active_input_layout: 'mono' | 'stereo' | '5.1' | '7.1';
|
|
119
|
+
layout_switches: number;
|
|
120
|
+
truncated_drains: number;
|
|
121
|
+
/** Stages this configuration does not exercise (e.g. `room_early` for a speakers target). */
|
|
122
|
+
inactive_stages: PlaybackStageName[];
|
|
123
|
+
latency: {
|
|
124
|
+
samples: number;
|
|
125
|
+
/** Every stage name reports an entry, whether or not it is currently active. */
|
|
126
|
+
stages: Record<PlaybackStageName, PlaybackStageLatency>;
|
|
127
|
+
};
|
|
128
|
+
loudness_gain_db: number;
|
|
129
|
+
loudness_gain_clamped: boolean;
|
|
130
|
+
/** True when an `hrtf` was supplied to a speakers target, which ignores it. */
|
|
131
|
+
hrtf_ignored: boolean;
|
|
132
|
+
limiter_gain_reduction_db: number;
|
|
133
|
+
non_finite_discards: number;
|
|
134
|
+
}
|
|
135
|
+
/** Request shape for the {@link PlaybackRenderer} constructor. */
|
|
136
|
+
export interface PlaybackRendererOptions {
|
|
137
|
+
config: PlaybackRendererConfig | string;
|
|
138
|
+
/**
|
|
139
|
+
* Required for a headphones target: this build embeds no HRTF data. Load the
|
|
140
|
+
* package asset `./hrtf/default.shrf` (or any SHRF v1 file) and pass it
|
|
141
|
+
* through `HrtfSet.fromBytes`. Ignored by a speakers target.
|
|
142
|
+
*/
|
|
143
|
+
hrtf?: HrtfSet;
|
|
144
|
+
/** Default 48000. */
|
|
145
|
+
sampleRate?: number;
|
|
146
|
+
/** Upper bound on the frames of every process call. Default 1024. */
|
|
147
|
+
maxBlockSize?: number;
|
|
148
|
+
}
|
|
149
|
+
/** Request shape for the one-shot `renderPlayback`. */
|
|
150
|
+
export interface RenderPlaybackRequest {
|
|
151
|
+
/** Interleaved input, `channels` samples per frame. */
|
|
152
|
+
samples: Float32Array;
|
|
153
|
+
channels: number;
|
|
154
|
+
sampleRate: number;
|
|
155
|
+
config: PlaybackRendererConfig | string;
|
|
156
|
+
/** Required for a headphones target; see {@link PlaybackRendererOptions.hrtf}. */
|
|
157
|
+
hrtf?: HrtfSet;
|
|
158
|
+
}
|
|
159
|
+
/** `renderPlayback`'s result: interleaved output with the target's own channel count. */
|
|
160
|
+
export interface RenderPlaybackResult {
|
|
161
|
+
samples: Float32Array;
|
|
162
|
+
channels: number;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=public_types_playback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public_types_playback.d.ts","sourceRoot":"","sources":["../src/public_types_playback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Realtime equalizer snapshot.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the C++ `EqualizerSpectrumSnapshot`: `preLeft`/`preRight` and
|
|
5
|
+
* `postLeft`/`postRight` are the pre- and post-EQ waveform streams (uniformly
|
|
6
|
+
* decimated time-domain samples, trimmed to their valid count), so they are a
|
|
7
|
+
* scope feed rather than a spectral estimate. `bandGainDb` holds per-band
|
|
8
|
+
* applied gain (24 entries). `profileDb` is the frequency-domain view: the
|
|
9
|
+
* post-EQ signal is Hann-windowed, transformed and its bin powers summed into
|
|
10
|
+
* 16 geometrically spaced bands covering 20 Hz to 20 kHz, in amplitude decibels
|
|
11
|
+
* relative to full scale (a full-scale sine reads about 0 dB in its own band),
|
|
12
|
+
* rising immediately and falling smoothly. `lastAutoGainDb` is the latest
|
|
13
|
+
* auto-gain compensation, and `seq` increments each time a new snapshot is
|
|
14
|
+
* published.
|
|
15
|
+
*/
|
|
16
|
+
export interface EqSpectrumSnapshot {
|
|
17
|
+
preLeft: Float32Array;
|
|
18
|
+
preRight: Float32Array;
|
|
19
|
+
postLeft: Float32Array;
|
|
20
|
+
postRight: Float32Array;
|
|
21
|
+
bandGainDb: Float32Array;
|
|
22
|
+
profileDb: Float32Array;
|
|
23
|
+
lastAutoGainDb: number;
|
|
24
|
+
seq: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Equalizer band type (string union mirroring `sonare::mastering::eq::EqBandType`).
|
|
28
|
+
*/
|
|
29
|
+
export type EqBandType = 'Peak' | 'LowShelf' | 'HighShelf' | 'LowPass' | 'HighPass' | 'BandPass' | 'Notch' | 'TiltShelf' | 'FlatTilt' | 'AllPass';
|
|
30
|
+
/** Biquad coefficient design mode. */
|
|
31
|
+
export type EqCoeffMode = 'Rbj' | 'Vicanek';
|
|
32
|
+
/** Stereo placement for an EQ band. */
|
|
33
|
+
export type EqStereoPlacement = 'Stereo' | 'Left' | 'Right' | 'Mid' | 'Side';
|
|
34
|
+
/** Per-band phase behaviour. */
|
|
35
|
+
export type EqBandPhase = 'Inherit' | 'ZeroLatency' | 'NaturalPhase' | 'LinearPhase';
|
|
36
|
+
/**
|
|
37
|
+
* Equalizer band configuration accepted by {@link StreamingEqualizer.setBand}.
|
|
38
|
+
*
|
|
39
|
+
* All fields are optional; omitted values fall back to the C++ band defaults
|
|
40
|
+
* (Peak, 1000 Hz, 0 dB gain, Butterworth Q, disabled).
|
|
41
|
+
*/
|
|
42
|
+
export interface EqBand {
|
|
43
|
+
type?: EqBandType;
|
|
44
|
+
frequencyHz?: number;
|
|
45
|
+
gainDb?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Resonance/slope. Ignored for a LowShelf/HighShelf band once `phase:
|
|
48
|
+
* 'NaturalPhase'` forces Vicanek coefficients (the Vicanek matched-Z shelf
|
|
49
|
+
* design has no Q/S parameter) -- the value is still stored and read back
|
|
50
|
+
* verbatim, so a reflected `q` on such a band does not describe the applied
|
|
51
|
+
* response. Set `coeffMode: 'Rbj'` for a Q-controllable shelf.
|
|
52
|
+
*/
|
|
53
|
+
q?: number;
|
|
54
|
+
enabled?: boolean;
|
|
55
|
+
coeffMode?: EqCoeffMode;
|
|
56
|
+
/**
|
|
57
|
+
* Slope in dB/octave. 6 selects a first-order section on a pass or shelf
|
|
58
|
+
* band; a first-order shelf's frequency is its half-gain point and its `q`
|
|
59
|
+
* is unused.
|
|
60
|
+
*/
|
|
61
|
+
slopeDbOct?: number;
|
|
62
|
+
placement?: EqStereoPlacement;
|
|
63
|
+
/**
|
|
64
|
+
* `'NaturalPhase'` forces `coeffMode: 'Vicanek'` for this band, which
|
|
65
|
+
* ignores `q` for LowShelf/HighShelf (see `q`'s doc).
|
|
66
|
+
*/
|
|
67
|
+
phase?: EqBandPhase;
|
|
68
|
+
soloed?: boolean;
|
|
69
|
+
bypassed?: boolean;
|
|
70
|
+
proportionalQ?: boolean;
|
|
71
|
+
proportionalQStrength?: number;
|
|
72
|
+
dynamic?: boolean;
|
|
73
|
+
thresholdDb?: number;
|
|
74
|
+
autoThreshold?: boolean;
|
|
75
|
+
ratio?: number;
|
|
76
|
+
rangeDb?: number;
|
|
77
|
+
attackMs?: number;
|
|
78
|
+
releaseMs?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Delays the detector's view of the signal by this many ms; a larger value
|
|
81
|
+
* makes the band react LATER, not earlier -- this is a detector delay, not
|
|
82
|
+
* true look-ahead, and adds no latency to the audio path.
|
|
83
|
+
*/
|
|
84
|
+
detectorDelayMs?: number;
|
|
85
|
+
/** Former (misleading) spelling of `detectorDelayMs`, still accepted; `detectorDelayMs` wins if both are set. */
|
|
86
|
+
lookaheadMs?: number;
|
|
87
|
+
externalSidechain?: boolean;
|
|
88
|
+
sidechainFreqHz?: number;
|
|
89
|
+
sidechainQ?: number;
|
|
90
|
+
}
|
|
91
|
+
/** Construction options for {@link StreamingEqualizer}. */
|
|
92
|
+
export interface StreamingEqualizerConfig {
|
|
93
|
+
sampleRate?: number;
|
|
94
|
+
maxBlockSize?: number;
|
|
95
|
+
}
|
|
96
|
+
/** Configuration for {@link StreamingRetune}. */
|
|
97
|
+
export interface StreamingRetuneConfig {
|
|
98
|
+
/** Pitch shift in semitones, clamped by the native processor to +/-24. */
|
|
99
|
+
semitones?: number;
|
|
100
|
+
/** Wet/dry mix, clamped by the native processor to 0..1. */
|
|
101
|
+
mix?: number;
|
|
102
|
+
/** Grain size in samples. Use 0/omit to derive it from the sample rate. */
|
|
103
|
+
grainSize?: number;
|
|
104
|
+
}
|
|
105
|
+
/** Options for {@link StreamingEqualizer.match}. */
|
|
106
|
+
export interface EqMatchOptions {
|
|
107
|
+
sampleRate?: number;
|
|
108
|
+
maxBands?: number;
|
|
109
|
+
}
|
|
110
|
+
export type VoicePresetId = 'neutral-monitor' | 'bright-idol' | 'soft-whisper' | 'deep-narrator' | 'robot-mascot' | 'dark-villain';
|
|
111
|
+
export type VoicePresetCategory = 'monitor' | 'bright' | 'soft' | 'deep' | 'robot' | 'dark' | 'custom';
|
|
112
|
+
export interface RealtimeVoiceChangerPresetMetadata {
|
|
113
|
+
schemaVersion: 1;
|
|
114
|
+
id: string;
|
|
115
|
+
name: string;
|
|
116
|
+
description?: string;
|
|
117
|
+
category: VoicePresetCategory;
|
|
118
|
+
}
|
|
119
|
+
export type RealtimeVoiceChangerPreset = (RealtimeVoiceChangerPresetMetadata & {
|
|
120
|
+
dsp: Record<string, unknown>;
|
|
121
|
+
macros?: never;
|
|
122
|
+
}) | (RealtimeVoiceChangerPresetMetadata & {
|
|
123
|
+
macros: Record<string, number>;
|
|
124
|
+
dsp?: never;
|
|
125
|
+
});
|
|
126
|
+
export type RealtimeVoiceChangerConfigInput = VoicePresetId | RealtimeVoiceChangerPreset;
|
|
127
|
+
/**
|
|
128
|
+
* Flat (POD) realtime voice-changer configuration. Keys are camelCase to match
|
|
129
|
+
* the Node addon getter, so a preset config reads identically across both JS
|
|
130
|
+
* surfaces (the underlying C ABI / Python POD uses the snake_case equivalents).
|
|
131
|
+
*/
|
|
132
|
+
export interface RealtimeVoiceChangerPodConfig {
|
|
133
|
+
inputGainDb: number;
|
|
134
|
+
outputGainDb: number;
|
|
135
|
+
wetMix: number;
|
|
136
|
+
retuneSemitones: number;
|
|
137
|
+
retuneMix: number;
|
|
138
|
+
retuneGrainSize: number;
|
|
139
|
+
formantFactor: number;
|
|
140
|
+
formantAmount: number;
|
|
141
|
+
formantBody: number;
|
|
142
|
+
formantBrightness: number;
|
|
143
|
+
formantNasal: number;
|
|
144
|
+
eqHighpassHz: number;
|
|
145
|
+
eqBodyDb: number;
|
|
146
|
+
eqPresenceDb: number;
|
|
147
|
+
eqAirDb: number;
|
|
148
|
+
gateThresholdDb: number;
|
|
149
|
+
gateAttackMs: number;
|
|
150
|
+
gateReleaseMs: number;
|
|
151
|
+
gateRangeDb: number;
|
|
152
|
+
compressorThresholdDb: number;
|
|
153
|
+
compressorRatio: number;
|
|
154
|
+
compressorAttackMs: number;
|
|
155
|
+
compressorReleaseMs: number;
|
|
156
|
+
compressorMakeupGainDb: number;
|
|
157
|
+
deesserFrequencyHz: number;
|
|
158
|
+
deesserThresholdDb: number;
|
|
159
|
+
deesserRatio: number;
|
|
160
|
+
deesserRangeDb: number;
|
|
161
|
+
reverbMix: number;
|
|
162
|
+
reverbTimeMs: number;
|
|
163
|
+
reverbDamping: number;
|
|
164
|
+
reverbSeed: number;
|
|
165
|
+
limiterCeilingDb: number;
|
|
166
|
+
limiterReleaseMs: number;
|
|
167
|
+
/** Non-zero enables the 4x-oversampled inter-sample-peak limiter (default enabled). */
|
|
168
|
+
limiterEnableIspLimiter: boolean;
|
|
169
|
+
/** True-peak ceiling in dBTP applied by the ISP limiter (default -1.0). */
|
|
170
|
+
limiterIspCeilingDbtp: number;
|
|
171
|
+
}
|
|
172
|
+
/** One raw UMP message: 1 to 4 words, most significant word first. */
|
|
173
|
+
export type UmpWords = Uint32Array | readonly number[];
|
|
174
|
+
//# sourceMappingURL=public_types_realtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public_types_realtime.d.ts","sourceRoot":"","sources":["../src/public_types_realtime.ts"],"names":[],"mappings":"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"}
|