gpt4 book ai didi

javascript - 如何将 Web Midi API 连接到 native 应用程序(如 Ableton live)

转载 作者:数据小太阳 更新时间:2023-10-29 05:21:31 29 4
gpt4 key购买 nike

[如果有更好的地方可以问这个问题,请告诉我!]

注意:我使用的是 Mac。

我已经使用 Web MIDI API 成功地将 MIDI 键盘连接到我的浏览器 (Chrome)。

我想知道我是否也可以连接应用程序(如 Ableton Live),以便当 Ableton 输出 MIDI 消息时,浏览器可以接收这些消息?

我看到的选项:

  1. 将 Midi 从 Ableton 发送到我的 MIDI 键盘,后者将它们转发到 Web MIDI API(任何人都可以阐明如何设置它吗?)
  2. 使用 Mac OS 中的 IAC(应用程序间通信)驱动程序,“可以这么说,允许您在盒子内的应用程序之间创建虚拟 MIDI 电缆。”我不知道如何设置它,因为“web midi api”没有出现在 Midi Studio 中。

我更喜欢选项 2,这样在没有物理 MIDI 设备的情况下它也可以工作,但我也很乐意了解选项 1 是否可以工作!

感谢您对此的任何意见!

最佳答案

我发现 Web MIDI API 的文档有点困惑,所以我尝试了 webmidi相反(它建立在 Web MIDI API 之上,因此它所做的一切也应该可以使用“原始”API 实现)。

要接收 MIDI 消息,这对我有用:

WebMidi.enable(function(err) {
if (err) throw err;
console.log("WebMidi enabled!");
WebMidi.getInputByName('IAC Driver Bus 1').addListener('noteon', 'all', function(e) {
console.log('note on', e);
});
});

在 Ableton 中,“Midi To” 需要指向 IAC 设备(如果没有显示,您可能需要打开 MIDI 首选项并将其启用为输出设备):

MIDI output

警告:我发现这只适用于没有任何乐器的 MIDI 音轨(参见 this page)。

编辑:我假设该设备在您的 Mac 上的名称相似,否则这是我用来枚举输入和输出设备的代码:

WebMidi.enable(function(err) {
if (err) throw err;
WebMidi.inputs.forEach(input => {
console.log('- id :', input.id);
console.log('- name:', input.name);
console.log('- manu:', input.manufacturer);
console.log('- conn:', input.connection);
console.log('---');
});
console.log('outputs:', WebMidi.outputs);
WebMidi.outputs.forEach(output => {
console.log('- id :', output.id);
console.log('- name:', output.name);
console.log('- manu:', output.manufacturer);
console.log('- conn:', output.connection);
console.log('---');
});
});

关于javascript - 如何将 Web Midi API 连接到 native 应用程序(如 Ableton live),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43544357/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com