2013-10-31 111 views
3

我想使用振盪器應用音調顫音到AudioBufferSource。WebAudio:振盪AudioBufferSource playbackRate

var source = context.createBufferSource(); 
source.connect(context.destination); 
source.buffer = buffer; 
source.loop = true; 
source.start(0); 

// None of the below seems to have any effect in Chrome 

var osc = context.createOscillator(); 
osc.type = "sine"; 
osc.frequency.value = 0.5; 
osc.start(0); 

var osc_gain = context.createGain(); 
osc_gain.connect(source.playbackRate); 
osc.connect(osc_gain); 
// osc_gain.gain.value = 0.1 doesn't work 
osc_gain.gain.setValueAtTime(0.1, 0); 

這是小提琴。 http://jsfiddle.net/HRkcE/12/

振盪器在Chrome中似乎沒有任何效果,但在Firefox中工作(一旦我發現設置osc_gain.gain.value直接不起作用)。

我做錯了什麼使它無法在Chrome中工作嗎?

回答

2

不,你沒有做錯任何事。 Blink有一個錯誤,我們不支持這個,上週有人向我彙報,我提交了:https://code.google.com/p/chromium/issues/detail?id=311284。我們會得到解決的。同時,使用LFO在delayNode的delayTime上驅動振盪,可以在任何音頻連接(不僅僅是buffersourcenodes)上進行顫音效果,這實際上相對容易 - 請查看我添加到「顫音」效果中的「顫音」效果http://webaudiodemos.appspot.com/input/index.html的結尾,以及我設置的節點鏈:https://github.com/cwilso/Audio-Input-Effects/blob/master/js/effects.js#L478是顫音子圖創建例程。

+0

非常感謝! –