我通过这真棒文章的工作:https://jackschaedler.github.io/circles-sines-signals/dft_introduction.html自定义波形
我想利用网络音频API的PeriodicWave对象来实现这个演示:
然而,当我设置周期波与这些设置:
var real = new Float32Array([0,0,1,0,1]);
var imag = new Float32Array(real.length);
var customWave = context.createPeriodicWave(real,imag);
osc.setPeriodicWave(customWave);
我输出波看起来像这样:
这里是完整的代码:http://jsbin.com/zaqojavixo/4/edit 要查看波形,请按数次播放声音。
我相信这些应该投其所好,所以这里是我的问题:
- 我失去了一些关于这里的理论基础还是我只是实现它是否有误? PeriodicWave对象应该如文章所述做同样的事情吗?
- 如果我采取了错误的做法,我将如何在Web Audio API中实现此图表?通过将不同频率的两个不同正弦波连接到相同的增益节点,我能够进行匹配 - 这与使用PeriodicWave对象有什么不同?
- 我是DSP和Web Audio API的新手 - 任何建议阅读将不胜感激!其次,在我的例子中,在将正确的数据绘制到画布之前,我必须推动'播放声音'按钮几次 - 分析器似乎在振荡器后面,即使analyser.getFloatTimeDomainData()在我启动振荡器后,在这里发生了什么?
编辑:正如在评论中指出,我的图是倒挂(画布0,0是左上角)。