@libraz/libsonare 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -845,6 +845,77 @@ export interface StreamingEqualizerConfig {
845
845
  maxBlockSize?: number;
846
846
  }
847
847
 
848
+ /** Configuration for {@link StreamingRetune}. */
849
+ export interface StreamingRetuneConfig {
850
+ /** Pitch shift in semitones, clamped by the native processor to +/-24. */
851
+ semitones?: number;
852
+ /** Wet/dry mix, clamped by the native processor to 0..1. */
853
+ mix?: number;
854
+ /** Grain size in samples. Use 0/omit to derive it from the sample rate. */
855
+ grainSize?: number;
856
+ }
857
+
858
+ export type VoicePresetId =
859
+ | 'neutral-monitor'
860
+ | 'bright-idol'
861
+ | 'soft-whisper'
862
+ | 'deep-narrator'
863
+ | 'robot-mascot'
864
+ | 'dark-villain';
865
+
866
+ export interface RealtimeVoiceChangerPreset {
867
+ schemaVersion: 1;
868
+ id?: string;
869
+ name?: string;
870
+ description?: string;
871
+ macros?: Record<string, number>;
872
+ dsp?: Record<string, unknown>;
873
+ }
874
+
875
+ export type RealtimeVoiceChangerConfigInput = VoicePresetId | RealtimeVoiceChangerPreset;
876
+
877
+ /**
878
+ * Flat (POD) realtime voice-changer configuration. Field names mirror the
879
+ * C ABI `SonareRealtimeVoiceChangerConfig` / Python POD exactly (snake_case),
880
+ * so a config can be round-tripped across bindings without renaming.
881
+ */
882
+ export interface RealtimeVoiceChangerPodConfig {
883
+ input_gain_db: number;
884
+ output_gain_db: number;
885
+ wet_mix: number;
886
+ retune_semitones: number;
887
+ retune_mix: number;
888
+ retune_grain_size: number;
889
+ formant_factor: number;
890
+ formant_amount: number;
891
+ formant_body: number;
892
+ formant_brightness: number;
893
+ formant_nasal: number;
894
+ eq_highpass_hz: number;
895
+ eq_body_db: number;
896
+ eq_presence_db: number;
897
+ eq_air_db: number;
898
+ gate_threshold_db: number;
899
+ gate_attack_ms: number;
900
+ gate_release_ms: number;
901
+ gate_range_db: number;
902
+ compressor_threshold_db: number;
903
+ compressor_ratio: number;
904
+ compressor_attack_ms: number;
905
+ compressor_release_ms: number;
906
+ compressor_makeup_gain_db: number;
907
+ deesser_frequency_hz: number;
908
+ deesser_threshold_db: number;
909
+ deesser_ratio: number;
910
+ deesser_range_db: number;
911
+ reverb_mix: number;
912
+ reverb_time_ms: number;
913
+ reverb_damping: number;
914
+ reverb_seed: number;
915
+ limiter_ceiling_db: number;
916
+ limiter_release_ms: number;
917
+ }
918
+
848
919
  /** Options for {@link StreamingEqualizer.match}. */
849
920
  export interface EqMatchOptions {
850
921
  sampleRate?: number;