我正在尝试使用振荡器将音调颤音应用于AudioBufferSource。

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中运行吗?

最佳答案

不,您没有做错任何事情。眨眼有一个错误,我们不支持此错误,该错误已于上周由其他人报告给我,我提交了该文件:https://code.google.com/p/chromium/issues/detail?id=311284。我们将解决该问题。

同时,使用LFO对任何音频连接(不仅是buffersourcenodes)进行颤音效果实际上相对容易,使用LFO来驱动delayNode的delayTime振荡-检查我添加到http://webaudiodemos.appspot.com/input/index.html末尾的“颤音”效果,还有我设置的节点链:https://github.com/cwilso/Audio-Input-Effects/blob/master/js/effects.js#L478是颤音子图的创建例程。

关于javascript - WebAudio:振荡AudioBufferSource的播放速率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19714702/

10-10 08:25