【问题标题】:MIDI Keyboard with Javascript [closed]带有 Javascript 的 MIDI 键盘 [关闭]
【发布时间】:2014-07-23 18:54:53
【问题描述】:

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

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

我找到了这个帖子并让它工作了:How to discover midi keyboard in web midi api?

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

【问题讨论】:

    标签: javascript audio midi web-audio-api web-midi


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您链接到的线程显示了如何获得 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 2017-03-14
        相关资源
        最近更新 更多