x-webmidiとして公開していたPolymerのエレメントをES6 Modulesに変更しxwebmidi.jsとすることにました。
理由は簡単でHTML ImportがChromeから削除されてしまうからです。
コードはGitHubにあります。
xwebmidi.jsでできることは以下です。
- コンピュータに接続されているMIDIデバイスのリスト化
- 接続・切断したMIDIデバイスを自動でデバイスリストから追加・削除
- MIDI InputデバイスからのMIDIメッセージの受け取り
- MIDI OutputデバイスへのMIDIメッセージの送信
- MIDI Messageを自動でParse
まだあるかもしれませんが、これくらいが主な機能になります。
できる限り今までのx-webmidiと同じように簡単に実装できるようしています。詳細なREADMEを出来ていませんが、このHTML、JavaScriptを書くとブラウザ上に↑の機能を実装の土台ができあがります。
<html>
  <head>
    <link rel="stylesheet" href="./xwebmidi.css">
  </head>
  <body>
    INPUT: <select id="midiin" class="xwebmidi-select-midi"></select>
    <br>
    OUTPUT: <select id="midiout" class="xwebmidi-select-midi"></select>
    <script type="module">
     import { xWebMIDI } from "./xwebmidi.js";
     (async () => {
       const xwm = new xWebMIDI();
       await xwm.requestMIDIAccess(true);
       xwm.initInput('midiin');
       xwm.initOutput('midiout');
       window.addEventListener('midiin-event:midiin', event => {
         console.log(event.detail.data);
         xwm.sendRawMessage(event.detail.data)
       });
     })();
    </script>
  </body>
</html>
ということで、快適なWeb Musicな生活を!!!
