我正在为 Web Audio API 合成器开发基于浏览器的修补接口。频率调制(将一个振荡器与另一个振荡器的频率挂钩)在 Chrome 中按预期工作。它应该是一种科幻的声音,就像一个 300Hz 的正弦波,频率在 30Hz 上下波动。
在 Safari(和 Mobile Safari)中,它听起来像是低沉的隆隆声。听起来好像有 FM,但没有正确的基频。这只是一个浏览器怪癖,将在未来的版本中解决吗?现在有解决办法吗?
这是视觉/交互式版本: http:
//forresto.github.com/dataflow-webaudio/
还有fiddle版本,用最少的代码来演示效果:http:
//jsfiddle.net/FVaWL/28/
var mod, modGain, osc;
var out = context.destination;
var startTest = function(){
mod = context.createOscillator();
mod.frequency.value = 8;
modGain = context.createGain();
modGain.gain.value = 30;
osc = context.createOscillator();
osc.frequency.value = 300;
mod.connect(modGain);
modGain.connect(osc.frequency);
osc.connect(out);
osc.start(0);
mod.start(0);
};
var stopTest = function(){
osc.stop(0);
mod.stop(0);
mod = modGain = osc = null;
};