murmuraba
Version:
Real-time audio noise reduction with advanced chunked processing for web applications
58 lines • 1.68 kB
TypeScript
/**
* Centralized Gain Control Utilities
* Eliminates code duplication and provides consistent gain management
*/
export interface GainConfig {
min: number;
max: number;
default: number;
step: number;
}
export declare const DEFAULT_GAIN_CONFIG: GainConfig;
export declare const GAIN_PRESETS: {
readonly LOW: 0.7;
readonly NORMAL: 1;
readonly HIGH: 1.5;
readonly BOOST: 2;
};
/**
* Validates and clamps gain value within acceptable range
*/
export declare function validateGain(gain: number, config?: GainConfig): number;
/**
* Converts gain value to decibels for UI display
*/
export declare function gainToDb(gain: number): number;
/**
* Converts decibels to gain value
*/
export declare function dbToGain(db: number): number;
/**
* Gets gain preset by name
*/
export declare function getGainPreset(preset: keyof typeof GAIN_PRESETS): number;
/**
* Gets descriptive text for gain level
*/
export declare function getGainDescription(gain: number): string;
/**
* Advanced Gain Controller Class
* Encapsulates gain control logic with validation and events
*/
export declare class GainController {
private _currentGain;
private readonly config;
private listeners;
constructor(initialGain?: number, config?: GainConfig);
get currentGain(): number;
setGain(gain: number): boolean;
incrementGain(): number;
decrementGain(): number;
applyPreset(preset: keyof typeof GAIN_PRESETS): void;
getDescription(): string;
getDbValue(): number;
onGainChange(callback: (gain: number) => void): () => void;
private notifyListeners;
destroy(): void;
}
//# sourceMappingURL=gain-control.d.ts.map