Windows 10 May 2019 UpdateでMIDI over Bluetooth(BLE-MIDI)の不具合が発生している。一部のデバイスで、MIDI INが正常に動作しない。アップデート前までは普通に利用できていたものが、だ。完全に解決したとは言えないけど、ある程度解決策っぽいのが見つかったのでメモ。
MIDI IN。Windowsに入力する側が動作しない。逆のMIDI OUTは正常に動作する。それが謎。デバイスとしてはINもOUTもちゃんと認識しているし、接続されているように見えるのだけど。そうそう。前提として、UWPアプリでの話。SONARとかMIDIberryとか。
手元にあるもので、不具合が発生しているのは、以下のもの。
- Quicco Sound mi.1
- BBC micro:bit (INのみ)
- Roland A-01
逆に、問題ないのは以下のデバイス。
- ROLI Lightpad Blocks
- M5Stack M5Stack
このうち、micro:bitとM5Stackはいわゆるマイコンで、MIDIコントローラーにするためのプログラムを書いたもの、という状態。そのプラットフォームでは一般的なライブラリを使っているので、他の人もカンタンに試せるものと考えている。で、M5StackはMIDI入出力に対応するのだけど、micro:bitは純正のBLE-MIDIのライブラリが入力のみの対応なので、「INのみ」と注釈をつけている。
とりあえず、これが2019年6月初頭の状況。
アップデート前はちゃんと使えていたのが、だめになったという事実は、Windows 10のやる気のなさを感じさせるのに十分な要素だが、Windowsメインで使っているユーザーとしてはそれでもなんとかしたい。ということで、いろいろ調べた。
今回の大型アップデートでは、BLE-MIDIに限らず、USB-MIDIでも不具合が出ていることを知る。KORGのドライバーがどっちも不具合発生という話。
Windows 10 May 2019 Update(version 1903) 対応状況について – KORG app ヘルプセンター
KORG USB-MIDI Driver、KORG BLE-MIDI Driver については、同 OS との互換性に重大な問題が確認されております。
ユーザーの皆様は Windows 10 May 2019 Update に対応したドライバーがリリースされるまで、OS のアップデートはお控えくださいますことをおすすめします。
とのこと。
さらにこれに関して調べるとこうのも出てきた。
KORG MIDI Driver Uninstall Utilityを使って、1-10までの間に収まるようにしろ、という話。これは、別の不具合についての記事でも見たことがある。問題はこれの解消の仕方だ。
今回のアップデートで、midiのエイリアスが削除されたため、正常に認識されてないのだという。で、解決方法は、レジストリエディタ(Regedit)を使って手動でエントリなどを追加するというものだ。
症状こそ違うものの、なんか近いものを感じたので、Regeditで該当するあたりをチェックしてみる。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
というノードを見ろとのことだが、BLE-MIDIデバイスはここには列挙されてない。あるのはこっちだ。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\BTHLE
これを便宜上1番めのノードとする。ここで、MIDI INができないデバイスを探して、CapabilitiesとかClassGUIDといった値の名前が並んでいる画面だ。
そこには「Driver」という値の名前が左にあり、右に値の名前として「{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}\0004」みたいなのがある。これをメモしておく(テキストエディタにコピペしておけばいい)。
続いて、同画面でで、右クリック。新規で「文字列」を追加。「Alias」という名前を付け、できた項目をダブルクリックで値を入力。「midi1」とか「midi2」とかかぶらない名前をつける。不具合が出てるデバイスが3つあるならmidi1からmidi3まで。1個ならmidi1が1個でかまわない。
Driverの値をメモ、エイリアスをつける、この2つの作業をデバイスごとやるわけだ。
続いて、別のノードをチェック。見るべきはここ。これを2番目のノードとする。
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
この画面で右クリックで新規の値を追加していく。
値の名前は「midi1」、データは先にメモしたDriverの値。
これをデバイスの数分繰り返す。3個メモしてたのなら、「midi1」から「midi3」まで追加すればOK。
あとはRegeditを終了して、Windowsを再起動。これで、MIDI INが正常に動く。
と、ここまで期待させておいてあれだが、正常に動いたのは、先に挙げた不具合ありの3つのうち2つのみ。mi.1とmicro:bitだけだ。
残念ながらRoland A-01はいまだにMIDI INがだめ。Windows側からMIDIデータつっこんで鳴らすのはできるんだけども(たとえば、MIDIberryの左上ハンバーガーメニューで出るバーチャル鍵盤から鳴らせる)。
実はA-01については、今回のアップデートの前からMIDI INができないことがあった。ペアリングし直せばOKだったりしたので、あまり気にしてなかったの。しかし、May 2019ではぜんぜんだめ。前はBLEのデバイス名を変更する(本体SYSTEMメニューにある)とうまくいったりとかいうことがあったんだけど、それも今回は不可。
なんでだろうなあ。と思いながら、6月初頭のWindows 10におけるBLE-MIDIの現状メモは終わります。なにか情報がありましたら、コメントやツイッターで教えてください。
(追記)
ちなみに、KORGのUSB-MIDIデバイスでは、Windowsのインボックスドライバで動作するものの、エディターなどが動作しないという不具合が出ている。MIDIの番号が1-10に収まっていなくてはならないとか(上のリンクに詳しく書いてある)。この場合も同様の作業で問題が解決できる模様(というか、BLE-MIDIの話はこれを参考にしているので、順番が逆だ)。探すべきレジストリはおそらくここだ。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}
{4d36e96c-e325-11ce-bfc1-08002be10318} というのは、マルチメディアクラスのClassGuidだそうだ。
参考
ベンダーが使用できるシステム定義のデバイス セットアップ クラス – Windows drivers | Microsoft Docs
ここからKORGのUSB-MIDIデバイスを探して、Aliasを追加して……、という作業になる。
ウチの環境では、ここにnanoKontrolがあった。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0012
ここにAliasとして「midi4」(数字は環境により異なる) を追加。
で、以下までノードをたどる。
0012 – Drivers – midi – KORGUM64.DRV
この「KORGUM64.DRV」が、2番目のノードのmidi4の値に書くところとなる。あとはWindows再起動でOK。のはずだが、うまくいかない。むー。KORGのUSB-MIDIデバイスの問題はもう少し探ることにする。
追記
6月第2週のアップデート(KB4503293)で、mi.1が認識されない件は解決。上記の作業は不要となった。A-01の入力が不可なのは変わらず。また、進展があったら書く予定。
コメント