如何在网络音频 api 或任何其他工具中使用反向 FFT 制作波表

How to make a wavetable with Inverse FFT in web-audio api or any other tool

我想知道如何从 wav 文件生成波表。

我知道可以在网络音频中使用波表 api setPerdiodic wave 并且我知道如何使用它。

但是我需要做什么才能创建自己的波表?我阅读了有关反向 FFT 的信息,但几乎什么也没找到。我不需要任何代码,只需要一个关于如何将波表从 wav 文件获取到缓冲区的想法或公式。

这里有一些限制,我不确定结果有多好。

  • 你的wav文件源不能太长; PeriodicWave 对象 仅支持最大大小为 8192 左右的数组。
  • 我假设你的波形是周期性的。如果 最后一个样本和第一个样本不是很接近, 会有一个难以重现的跳跃。
  • 波形必须具有零均值,因此如果不是,则应删除 平均值。

考虑到这一点,select 大于长度的 2 的幂 你的波形文件(不是严格需要的,但大多数 FFT 期望的权力 二)。如果长度不是 2 的幂,则对 wave 文件进行零填充。 然后计算 FFT。你要么得到一系列复杂的 数字或两个数组。将这些区分为实部和虚部 数组并使用它们构造 PeriodicWave。