/** * AudioAnalyzer.ts * * Real-time audio analysis: FFT spectrum, beat detection, * loudness metering, and audio-reactive parameter extraction. * * @module audio */ export interface SpectrumData { frequencies: Float32Array; binCount: number; sampleRate: number; peakFrequency: number; peakMagnitude: number; } export interface BeatDetectionConfig { sensitivity: number; minInterval: number; energyThreshold: number; frequencyRange: { low: number; high: number; }; } export interface BeatEvent { timestamp: number; energy: number; bpm: number; strength: number; } export interface LoudnessMetrics { rms: number; peak: number; lufs: number; dynamicRange: number; } export interface AudioBand { name: string; low: number; high: number; energy: number; } export declare const DEFAULT_BANDS: AudioBand[]; export declare class AudioAnalyzer { private fftSize; private sampleRate; private currentSpectrum; private bands; private beatConfig; private beatHistory; private energyHistory; private lastBeatTime; private smoothedEnergy; private loudness; constructor(fftSize?: number, sampleRate?: number, beatConfig?: Partial); /** * Analyze a buffer of audio samples. */ analyze(samples: Float32Array, currentTimeMs: number): void; private computeBands; private computeLoudness; private detectBeat; private estimateBPM; getSpectrum(): SpectrumData | null; getBands(): AudioBand[]; getBandEnergy(bandName: string): number; getLoudness(): LoudnessMetrics; getBeats(): BeatEvent[]; getLastBeat(): BeatEvent | null; getEstimatedBPM(): number; getSmoothedEnergy(): number; /** * Get a normalized 0-1 value for audio-reactive use. * Combines bass energy with beat strength. */ getReactiveValue(): number; reset(): void; } //# sourceMappingURL=AudioAnalyzer.d.ts.map