-2

我只是想弄清楚将 MIDI 键盘连接到网络的整个过程。我在那里找到了一些东西,但它们已经 3 岁左右了,我认为从那以后发生了相当大的变化。

为了有一个开始的地方,我想创建一个 Web 应用程序,当我按下它时,它只显示我在 MIDI 键盘上敲击的音符。

我找到了这个线程并让它工作和所有:如何在 web midi api 中发现 midi 键盘?

我想我被困在如何注册笔记上。我对这样的事情是半新的,我能找到的任何答案对我来说都没有多大意义。谢谢。

4

2 回答 2

0

我发现这很有帮助:http ://webaudiodemos.appspot.com/monosynth/

我稍微添加了一点以显示正在播放的音符:https ://github.com/danhogan/monosynth

于 2014-07-24T17:47:43.587 回答
0

您链接到的线程显示了如何获得 MIDI 访问权限,但没有向您展示如何在获得访问权限后处理 MIDI 消息。该示例中缺少的是这样的:

midiAccess.inputs()[0].onmidimessage = function(event){
    console.log(event.receivedTime, event.data)
    // do cool stuff with midi data here
}

我写了一个库,Wad.js,我认为在这种情况下它对你来说是完美的。https://github.com/rserota/wad#midi-input

基本上,当 Wad.js 初始化时,它会自动检测所有连接的 MIDI 设备,然后将它们发送的所有 MIDI 消息记录到控制台。一旦熟悉了设备数据的样子,就可以编写 MIDI 事件处理函数来处理这些消息,例如

Wad.midiInputs[0].onmidimessage = function(event){
    console.log(event.receivedTime, event.data);
};
Wad.midiInputs[1].onmidimessage = anotherMidiHandlerFunction // If you have multiple MIDI devices that you would like to use simultaneously, you will need multiple MIDI handler functions.

在撰写本文时,我认为 MIDI 仅在 Chrome 中作为“实验功能”提供,因此您必须手动启用它。此外,您还需要安装 jazz-plugin ( http://jazz-soft.net/doc/Jazz-Plugin/ ) 来为您的浏览器提供低级 MIDI 访问权限。如果您仍然无法检测 MIDI

于 2014-10-02T20:56:24.990 回答