我正在使用带有 javascript 的 Web Audio API。
我创建了一个振荡器,将其连接到音量(gainNode),将其连接到目的地。
行。好的。
我想要一个延迟效果,我把它放在振荡器和音量之间。
好吧,那不起作用,我只听到延迟。虽然,很干净。
好的,所以我将 osc 连接到卷的延迟,将 osc 连接到卷,然后将卷连接到目的地。
现在它似乎被扭曲了。
我尝试将 osc 延迟到目的地的音量,将 osc 延迟到目的地,因此有两个到目的地的连接。这也是扭曲的。
那是在铬上。
在我不得不尝试的一小段时间里,它似乎在 iOS6 上运行良好。不知道野生动物园。
通过访问http://cloudmusiccompany.appspot.com/watch.jsp并单击红色和绘图来尝试。这是一个正常的正弦振荡器。现在单击白色并绘制,这与延迟相同,并且在 chrome(Ubuntu)上它被扭曲了。不知道萨法尔。
显然,您可以在链接中看到完整的源代码,因为它是 javascript。
相关来源:
function makeNewChannel(color){
var info = getInstrumentInfo(color);
var chan = {osc: acontext.createOscillator(),
freqs: [],
times: [],
pxdata: [],
i: 0,
muted: true,
finishedLoop: false,
volume: acontext.createGainNode(),
gate: acontext.createGainNode(),
delay: acontext.createDelayNode(),
delayGain: acontext.createGainNode(),
mute: function(){
this.muted = true;
this.volume.gain.value = 0;
},
unmute: function(){
this.muted = false;
this.volume.gain.value = player.defaultGain / (info.soft ? 2 : 1);
}
}
chan.osc.type = info.type;
// chan.osc.connect(chan.gate);
chan.osc.connect(chan.volume);
chan.delayGain.gain.value = player.defaultGain ;
/* ugh , the wet sounds ok, but somehow its distorting or doubling the dry signal
* although it seems ok on iphone?
* */
if (info.delay){
chan.delay.delayTime.value = 0.5;
chan.volume.connect(chan.delay)
chan.delay.connect(chan.delayGain);
chan.delayGain.connect(acontext.destination);
}
chan.volume.gain.value = 0; //player.defaultGain;
chan.gate.gain.value = 0;
chan.volume.connect(acontext.destination);
chan.osc.frequency.value = 0;
chan.osc.noteOn(0);
return chan;
}