javascript - AnalyserNode 在什么时候执行 FFT?

标签 javascript web-audio-api

我正在尝试使用 Web Audio API 编写自相关算法。自相关仅依赖于时域中的数据,而不依赖于频域中的数据,因此我仅使用 getByteTimeDomainData()。我很难找到有关 AnalyserNode 如何实现的信息。从我在MDN Docs中读到的内容来看我不清楚 FFT 是否仅在调用 getByteFrequencyData() 时运行,或者是否无论如何都会运行。大型 FFT 非常昂贵,所以我不希望它们随意运行。

最佳答案

根据规范,我认为期望是在您要求时计算 FFT。
getByteFrequencyData() :

The most recent fftSize frames are used in computing the frequency data.

如果您过于频繁地请求它,它甚至会返回缓存的结果:

If another call to getByteFrequencyData() or getFloatFrequencyData() occurs within the same render quantum as a previous call, the current frequency data is not updated with the same data. Instead, the previously computed data is returned.

这种措辞还表明计算应该根据请求进行。

关于javascript - AnalyserNode 在什么时候执行 FFT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57827830/

相关文章:

javascript - Highcharts,将总数据显示为实时流

javascript - 如何在 Web Audio API 中为 OscillatorNode 设置相位偏移?

javascript - 如何使用 JS WebAudioAPI 进行节拍检测?

javascript - 我应该如何在所有蜱虫触发的行为树的所有执行之间共享状态?

javascript - Sequelize 获取上次更新或创造值(value)

javascript - 实现具有快速更新脉冲响应的卷积混响

node.js - Electron 无法在 Raspberry Pi 3b+ 中使用 <audio> Html5 标签播放 mp3 音频文件

javascript - 遵循 API 时出现 Web Audio OfflineAudioContext 语法错误

javascript - 尝试消除搜索函数调用会导致没有事件传递给函数

javascript - 从字符串创建类定义