如何在网络音频 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。
我想知道如何从 wav 文件生成波表。
我知道可以在网络音频中使用波表 api setPerdiodic wave 并且我知道如何使用它。
但是我需要做什么才能创建自己的波表?我阅读了有关反向 FFT 的信息,但几乎什么也没找到。我不需要任何代码,只需要一个关于如何将波表从 wav 文件获取到缓冲区的想法或公式。
这里有一些限制,我不确定结果有多好。
- 你的wav文件源不能太长;
PeriodicWave
对象 仅支持最大大小为 8192 左右的数组。 - 我假设你的波形是周期性的。如果 最后一个样本和第一个样本不是很接近, 会有一个难以重现的跳跃。
- 波形必须具有零均值,因此如果不是,则应删除 平均值。
考虑到这一点,select 大于长度的 2 的幂 你的波形文件(不是严格需要的,但大多数 FFT 期望的权力 二)。如果长度不是 2 的幂,则对 wave 文件进行零填充。 然后计算 FFT。你要么得到一系列复杂的 数字或两个数组。将这些区分为实部和虚部 数组并使用它们构造 PeriodicWave。