[如果有更好的地方提出这个问题,请告诉我!]
注意:我在Mac上。
我已经使用Web MIDI API成功将MIDI键盘连接到浏览器(Chrome)。
我想知道我是否也可以连接应用程序(如Ableton Live),这样,当Ableton输出MIDI信息时,浏览器可以接收这些信息吗?
我看到的选项:
我更喜欢选项2,所以当没有物理MIDI设备时这也可以使用,但我也很乐意了解选项1是否可行!
感谢您的任何意见!
答案 0 :(得分:2)
我发现Web MIDI API的文档有点令人困惑,所以我尝试了webmidi
(它建立在Web MIDI API之上,所以它所做的一切都应该使用& #34;原始" 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曲目(参见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('---');
});
});
答案 1 :(得分:1)
要将Midi事件从Ableton发送到OSX上的Web MIDI API,您需要执行以下操作:
1)运行名为“音频MIDI设置”的内置OSX应用。选择“ MIDI Studio”。双击“ IAC驱动程序”。然后选中“设备在线”复选框。
2)转到Ableton->首选项-> MIDI。在“输入:IAC驱动程序(总线1)”的底部,启用“跟踪”和“远程”。对于“输出:IAC驱动程序(总线1)”,启用“跟踪”。
3)现在,在要从中发送笔记的Ableton midi轨道中,选择“ IAC Driver”作为Midi输出。
4)现在,“ IAC驱动程序(总线1)”应该通过Web MIDI API作为Midi输入出现。