Hof*_*off 7 javascript macos midi web-midi
[如果有更好的地方问这个问题,请告诉我!]
注意:我使用的是Mac。
我已使用Web MIDI API成功将MIDI键盘与浏览器(Chrome)连接。
我想知道是否还可以连接应用程序(如Ableton Live),以便当Ableton输出MIDI消息时,浏览器可以接收这些消息吗?
我看到的选项:
我更喜欢选项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);
});
});
Run Code Online (Sandbox Code Playgroud)
在Ableton中,“ Midi To”需要指向IAC设备(如果未显示,则可能需要打开MIDI首选项并将其启用为输出设备):
警告:我发现这仅适用于未连接任何乐器的MIDI轨道(请参阅本页)。
编辑:我假设该设备在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('---');
});
});
Run Code Online (Sandbox Code Playgroud)
为了将 MIDI 事件从 Ableton 发送到 OSX 上的 Web MIDI API,您需要执行以下操作:
1) 运行名为“音频 MIDI 设置”的内置 OSX 应用程序。选择“MIDI 工作室”。双击“IAC 驱动程序”。然后选中“设备在线”复选框。
2) 转到 Ableton -> 首选项 -> MIDI。在“输入:IAC 驱动程序(总线 1)”底部启用“跟踪”和“远程”。对于“输出:IAC 驱动程序(总线 1)”启用“跟踪”。
3) 现在,在您想要发送音符的 Ableton MIDI 轨道中,选择“IAC Driver”作为 MIDI 输出。
4) 现在“IAC 驱动程序(总线 1)”应该通过 Web MIDI API 显示为 Midi 输入。
此过程如下所述:https://www.youtube.com/watch ?v=MkWZ4rtRybQ
| 归档时间: |
|
| 查看次数: |
994 次 |
| 最近记录: |