【发布时间】:2018-04-14 10:30:34
【问题描述】:
我想在浏览器中以
普通 Web Audio AnalyzerNode 的最大值 FFT_SIZE 为 32768。这导致普通采样率 (48kHz) 的分辨率约为 1.4Hz。
现在我想使用 jsfft 或类似的东西来做频率变换。我想收集 65536 个音频样本,因为这个 fft 大小应该达到 ~0.7Hz 的分辨率。 (时间分辨率没那么重要)
不幸的是,ScriptProcessorNode 的最大 bufferSize 也只有 16384 我想将它的 4 个缓冲区合并为一个 Float32Array。 我以为会有类似的东西
copyChannelData(array, offset, length)
但只有
getChannelData(array)
因此,如果我理解正确,我必须先复制更大数组中的所有数据,然后才能执行 fft。
只是为了确保我不会遗漏任何东西...有没有办法将数据直接检索到我更大的数组中?
【问题讨论】:
标签: javascript fft web-audio-api arraybuffer