我正试图在本页的钢琴应用程序中同时淡出2个声音:
http://www.intmath.com/trigonometric-graphs/music-note-frequencies-interactive.php
我正在使用“声音”方法,指数淡出在单音符模式下正常工作;
vca.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 1);
oscillator.stop(audioContext.currentTime + 1);
然而,在选择“组合信号:是”(您听到220 Hz音符加上播放的音符)后,上述内容将正确淡出非220 Hz音符,但基本A-220以全音量播放关键时刻后整整1秒的持续时间。这很难看,特别是在小型扬声器上。
我现在已经在“合并”情况下禁用了淡出(两种声音都会立即停止,这比没有消失的情况更好。)
这是在按键上调用的函数:
function doUp(thisKey, e) {
if(audioContext) {
for(i=-1; i<18; i++) {
if( typeof(active_voices['key'+i]) != "undefined") {
active_voices['key'+i].stop();
delete active_voices['key'+i];
}
}
}
audioOn = false;
}
我尝试将中间“if”的第一行更改为以下内容,但它没有改进:
active_voices['key'+i].stop(audioContext.currentTime + 1);
如何同时淡出2个声音?
TIA。