p5.j​​s麦克风输入的傅立叶变换没有输出

时间:2018-12-24 15:46:29

标签: javascript fft p5.js

我尝试使用p5.sound库使用以下代码分析麦克风输入的频谱。

控制台中的输出仅为array of 1024 0's,好像它们没有声音一样。我用计算机附带的记录器软件测试了它能够记录某些东西。

所以我认为我在开始录制和分析音频之间缺少一些东西,我只是想不通。

我通过quickstaet bootstrap cdn导入了p5.js, P5.sound.js, audiosynth.js库,它也应该加载Jquery库。

var mic;
var fft;
window.onload = init;

function init() {
  mic = new p5.AudioIn();
  mic.start();
  fft = new p5.FFT();
  fft.setInput(mic);
  let frequencies = fft.analyze();
  console.log(frequencies); // always an array full of 0's
}

1 个答案:

答案 0 :(得分:0)

您可能希望在按下按钮时或经过一段时间后或每隔x秒运行分析。这是一个简单的示例,在调用init之后10秒钟调用了analyst,这应该给一些时间来收集一些数据。

    var mic;
    var fft;

    function getFreqSpectrum() {
        let frequencies = fft.analyze();
        console.log(frequencies);
    }

    window.onload = init;

    function init() {
        mic = new p5.AudioIn();
        mic.start();
        fft = new p5.FFT();
        fft.setInput(mic);
        setTimeout(getFreqSpectrum, 10000); // do this in 10 seconds
    }