我需要为振荡器创建一个特定的自定义波形,以便与Web Audio API一起使用。
我有一个Javascript函数来输出所需的波形(对于任何给定的x计算y在-1和1之间),绘制的结果如下所示:
但是,Web Audio API documentation只允许您通过createPeriodicWave
函数基于谐波表创建自定义波表,然后可以通过setPeriodicWave
配置自定义振荡器。是否有一种通用技术可用于根据我的波形函数计算谐波表?
答案 0 :(得分:5)
长度恰好为自定义波形的一个周期的DFT(或FFT)将产生一个谐波表。只需低通滤波器并对波形进行2 ^ N次采样,然后将其输入通用库FFT。 (选择足够大的2 ^ N至少是低通滤波器的2倍或波形的固有最高频率内容)。 FFT产生的复杂箱的大小将是您的谐波功率水平。