UNPKG

murmuraba

Version:

Real-time audio noise reduction with advanced chunked processing for web applications

50 lines 1.56 kB
/** * Simple Automatic Gain Control - REFACTORED * Based on WebSearch results for Web Audio API AGC * * Key findings from WebSearch: * - Use DynamicsCompressorNode for reducing dynamics range * - Use AnalyserNode + GainNode for manual AGC * - Always use setTargetAtTime to prevent clicks * - RMS calculation for accurate level detection */ export declare class SimpleAGC { private readonly analyser; private readonly gainNode; private readonly bufferLength; private readonly dataArray; private readonly targetLevel; private readonly attackTime; private readonly releaseTime; private readonly maxGain; private readonly audioContext; constructor(audioContext: AudioContext, targetLevel?: number); /** * Update gain based on current audio level * Implements attack/release timing as recommended by WebSearch */ updateGain(): void; /** * Calculate RMS (Root Mean Square) level * Formula from WebSearch MDN examples */ private calculateRMS; /** * Calculate target gain with safety limits */ private calculateTargetGain; /** * Apply gain with proper timing to prevent clicks * Uses exponential ramp as per WebSearch recommendation */ private applyGainSmoothing; /** * Get current gain value for monitoring */ getCurrentGain(): number; /** * Connect source -> analyser -> gain -> destination */ connect(source: AudioNode, destination: AudioNode): void; } //# sourceMappingURL=simple-agc.d.ts.map