定制振荡器的任意波表

Cla*_*fou 2 fft sound-synthesis web-audio-api

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

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

自定义波形

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

hot*_*aw2 5

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

  • 采样率是采样数除以波形周期,但不需要,因为您将使用原始FFT bin输出,而不是每个bin表示的频率值.要使用实数据的复数输入FFT,只需将虚数组件或数组设置为零. (2认同)