我创建了一个振荡器,它实际上可以播放单个音符,但不支持同时播放两个或多个音符...我怎样才能使其成为复调?
$(window).load(function(){
window.AudioContext = window.AudioContext || window.webkitAudioContext;
ctx = new AudioContext();
$('path').on('touchstart mousedown', function(){
$(this).css('fill','lime');
noteON( $(this).attr('data-noteKEY') );
});
$('path').on('touchend mouseup', function(){
$(this).css('fill','');
noteOFF();
});
function noteON(noteKEY){
osc = ctx.createOscillator();
osc.type = 'sine';
osc.frequency.value = noteKEY;
osc.connect(ctx.destination);
osc.start(0);
//osc.connect(ctx.destination);
}
function noteOFF(){
osc.stop(0);
}
});
最佳答案
就像真正的物理振荡器一样,您无法使单个振荡器同时输出两个单独的音高。您必须为要演奏的每个音符创建一个振荡器。在您的情况下,这意味着使用您想要同时播放的单独的 noteKEY 调用 noteON 两次。
关于javascript - JS AudioContext 振荡器 - 同时播放多个音符(复调),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170472/