murmuraba
Version:
Real-time audio noise reduction with advanced chunked processing for web applications
36 lines • 1.26 kB
TypeScript
/**
* Infrastructure Layer - Web Audio API Implementation
* Handles the technical details of applying gain to audio nodes
*/
import { GainValue, GainRepository, GainPolicy } from '../../domain/gain/gain-domain';
export interface WebAudioGainOptions {
smoothingTimeConstant?: number;
enableSmoothing?: boolean;
policy?: GainPolicy;
}
export declare class WebAudioGainRepository implements GainRepository {
private readonly audioContext;
private gainNode?;
private currentGain;
private readonly options;
private presets;
constructor(audioContext: AudioContext, options?: WebAudioGainOptions);
getCurrentGain(): Promise<GainValue>;
setGain(gain: GainValue): Promise<void>;
savePreset(name: string, gain: GainValue): Promise<void>;
loadPreset(name: string): Promise<GainValue | null>;
/**
* Get the actual Web Audio API gain node for connection to audio graph
*/
getGainNode(): GainNode;
/**
* Connect this gain repository to an audio processing chain
*/
connectTo(sourceNode: AudioNode, destinationNode: AudioNode): void;
/**
* Clean up resources
*/
destroy(): void;
private createGainNode;
}
//# sourceMappingURL=web-audio-gain-repository.d.ts.map