定制振荡器的任意波表

时间:2014-07-14 18:55:12

标签: fft web-audio sound-synthesis

我需要为振荡器创建一个特定的自定义波形,以便与Web Audio API一起使用。

我有一个Javascript函数来输出所需的波形(对于任何给定的x计算y在-1和1之间),绘制的结果如下所示:

Custom wave shape

但是,Web Audio API documentation只允许您通过createPeriodicWave函数基于谐波表创建自定义波表,然后可以通过setPeriodicWave配置自定义振荡器。是否有一种通用技术可用于根据我的波形函数计算谐波表?

1 个答案:

答案 0 :(得分:5)

长度恰好为自定义波形的一个周期的DFT(或FFT)将产生一个谐波表。只需低通滤波器并对波形进行2 ^ N次采样,然后将其输入通用库FFT。 (选择足够大的2 ^ N至少是低通滤波器的2倍或波形的固有最高频率内容)。 FFT产生的复杂箱的大小将是您的谐波功率水平。