Javascript 如何让网络midi输出控制器工作?

Javascript 如何让网络midi输出控制器工作?,javascript,macos,midi,web-midi,Javascript,Macos,Midi,Web Midi,所以我有一个midi控制器连接到我的机器上,我让它在mac上用Logic Pro X成功播放 我正在尝试使用WebMIDIAPI向这个Midi控制器发送一个注释,作为一个输出设备,希望它能触发Midi控制器,而Midi控制器又会通过逻辑触发声音 我正在使用它,我尝试: WebMidi.enable(function (err) { if (err) { console.log("WebMidi could not be enabled.", err); } else {

所以我有一个midi控制器连接到我的机器上,我让它在mac上用Logic Pro X成功播放

我正在尝试使用WebMIDIAPI向这个Midi控制器发送一个注释,作为一个输出设备,希望它能触发Midi控制器,而Midi控制器又会通过逻辑触发声音

我正在使用它,我尝试:

WebMidi.enable(function (err) {

  if (err) {
    console.log("WebMidi could not be enabled.", err);
  } else {
    console.log("WebMidi enabled!");
      console.log(WebMidi.inputs);
    console.log(WebMidi.outputs);
    var output = WebMidi.outputs[0];
    output.playNote("C3");
  }

});
但我没有听到音符在演奏。我确实确保我的midi控制器被列为输出设备

奇怪的是,当我播放playNote时,它实际上点亮了控制器上的LED键。但我还是听不到声音。我还尝试了一种不同的控制器,它的按键上没有LED,但我也听不到声音


我还尝试访问这个网站,在上一个示例中,该网站也尝试发送midi输出,但也不起作用。有什么建议吗?

我找到的唯一方法是创建一个虚拟midi设备作为输出,并在我的daw中使用这个虚拟midi设备作为输入。然后使用上面的代码,但选择输出作为这个新的虚拟midi设备

Mac上的步骤:
1.音频Midi设置->窗口->显示Midi工作室。 2.在Midi Studio中,双击IAC驱动程序->使用屏幕左下角的+按钮创建新的虚拟Midi设备。选中“设备已联机”

转到您选择的DAW,并更改此新midi设备的输入。 现在在javascript中,使用上面的代码,更改为新的输出:

var output = WebMidi.outputs[1]; // whatever index your virtual midi device is
现在它起作用了


根据我的经验,我不需要启用sysex,也不需要使用https。我刚刚在node.js/express服务器上运行了localhost上的html。

我目前认为需要启用sysex和https才能在chrome中运行,我正在对此进行研究。^不起作用..是的,如果不配置控制器,控制器不太可能回显其MIDI输入。