3

我正在尝试使用振荡器将音高颤音应用于 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 中运行吗?

4

1 回答 1

2

不,你没有做错任何事。Blink 有一个我们不支持的错误,上周有人向我报告了这个错误,我提交了:https ://code.google.com/p/chromium/issues/detail?id=311284 。我们会解决这个问题。

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

于 2013-11-01T01:07:42.353 回答