我创建了一个振荡器,它实际上可以演奏单个音符,但是不能同时支持两个或多个音符...我该如何使它复音?

$(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/

10-12 00:06