javascript - JS AudioContext 振荡器 - 同时播放多个音符(复调)

标签 javascript web-audio-api

我创建了一个振荡器,它实际上可以播放单个音符,但不支持同时播放两个或多个音符...我怎样才能使其成为复调?

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

相关文章:

javascript - 获取 NEW 对象参数的 HTML 输入范围值

audio - 网络音频 API : scheduling sounds and exporting the mix

javascript - 在Safari或iOS上不会触发onended()

javascript - 未捕获引用错误 BufferLoader 未定义

javascript - iOS 设备和 Node.js 服务器之间带有 ack 的 Socket.io 无法正常工作

javascript - Webaudio API ScriptProcessorNode如何输出信号

javascript - 在 typescript 中导入所有内容不起作用

javascript - 多选组合框在 Javascript 中转换为字符串

javascript - 重置 Ajax 表单提交上的 Select2 下拉菜单

javascript - 在输入元素上键入时我的状态没有更新