let ctx = new AudioContext(),
analyser = ctx.createAnalyser(),
oscillator = ctx.createOscillator(),
data = new Float32Array(analyser.frequencyBinCount);
oscillator.connect(analyser);
oscillator.start();
setTimeout(()=>{
analyser.getFloatFrequencyData(data);
console.log(oscillator.frequency, data);
}, 1000);
Осциллятор по умолчанию генерирует синусоидальный сигнал 440 Гц (детали oscillator.frequency
), но анализатор не определяет его как основную волну.В моем случае значения около 440 Гц - это -200 дБ, а около 220 Гц - это -180 дБ, что громче.
Как определить основную частоту с помощью анализатора?В моем случае я использовал микрофон, но генератор не работает.Что не так с FFT?