【问题标题】:How to get web midi output controller to work?如何让 web MIDI 输出控制器工作?
【发布时间】:2019-12-14 03:55:55
【问题描述】:

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

我正在尝试使用 Web Midi API 向这个 midi 控制器发送一个音符,作为一个输出设备,希望它会触发 midi 控制器,然后通过 Logic 触发声音。

我为此使用webmidi.js,并尝试过:

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 控制器被列为输出设备。

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

我还尝试访问此网站http://webmidi-examples.glitch.me/,在最后一个示例中也尝试发送 midi 输出,但也不起作用。有什么建议吗?

【问题讨论】:

  • 我目前认为需要启用 sysex 和 https 才能在 chrome 中工作,我正在研究这个。
  • ^ 没用..

标签: javascript macos midi web-midi


【解决方案1】:

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

Mac 上的步骤:
1. 音频 Midi 设置 -> 窗口 -> 显示 Midi Studio。 2. 在 Midi Studio 中双击 IAC Driver -> Create New Virtual Midi device with + 按钮在屏幕的左下角。勾选“设备在线”。

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

var output = WebMidi.outputs[1]; // whatever index your virtual midi device is

现在可以了。

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

【讨论】:

  • 是的,您的控制器不太可能在不进行配置的情况下回显其 MIDI 输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多