2013-10-31 52 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

非常感谢! –