我通過這真棒文章的工作: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是左上角)。