ポケミクで MIDI(SMF)を鳴らしてみた(2)

「webmidi player」で検索すると、上記のページが引っかかりますが、WebMIDI API の仕様が変わってもう動かないので、その対応をしました。

注意点として以前は複数 MIDI 機器が繋がっていてもポケミクを選んでましたが、他機種でも使いたくなったのでポケミク以外から鳴る事もあります。ポケミクで鳴らしたい場合はポケミク以外のMIDI機器を繋げないで下さい。そのうちメニューを作るなど改善します。

復習

  • Chrome が入ってなかったらインストール
  • chrome://flags/#enable-web-midi で有効にして再起動

仕様変更

少し前の Chrome から MIDIAccess の outputs が function でなく Iterator になってます。
なんで、とりあえず回すだけ。

if (typeof midi.outputs === "function") {
    var outputs = midi.outputs();
} else {
    var outputs = [];
    var it = midi.outputs.values();
    for (var o = it.next(); !o.done; o = it.next()) {
        outputs.push(o.value);
    }
}