【Win10】VST MIDI Synthが再起動するたびに消える

雑記
広告だよ!!!たくさんクリックしてね

Windows10 Ver2004以降でVST MIDI Synthが再起動のたびに表示されなくなるので,解決策を調べました。S-YXG50を使うには必要なソフトウェアなので,困っていたのですが,以下のようにすれば解決できました。

レジストリを操作したり,Windowsフォルダ内のデータをいじるので,リスクを伴います。十分に理解した上でお試しください。

レジストリキーをいじる

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]
"MIDI_PORT"="vstmididrv.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
"MIDI_PORT"="vstmididrv.dll"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\DRV_ID]
"DriverDesc"="VST MIDI Synth"
"ProviderName"="Generic"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\DRV_ID\Drivers]
"SubClasses"="midi"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\DRV_ID\Drivers\midi\vstmididrv.dll]
"Alias"="MIDI_PORT"
"Description"="VST MIDI Synth"
"Driver"="vstmididrv.dll"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ROOT\MEDIA\MIDI_DRV_ID]
"DeviceDesc"="VST MIDI Synth"
"ClassGUID"="{4d36e96c-e325-11ce-bfc1-08002be10318}"
"Capabilities"=dword:00000000
"ConfigFlags"=dword:00000804
"FriendlyName"="VST MIDI Synth Virtual Driver"
"Mfg"="Generic"
"HardwareID"=hex(7):56,00,53,00,54,00,4d,00,49,00,44,00,49,00,53,00,59,00,4e,\
  00,54,00,48,00,56,00,49,00,52,00,54,00,55,00,41,00,4c,00,44,00,52,00,56,00,\
  00,00,00,00
"Driver"="{4d36e96c-e325-11ce-bfc1-08002be10318}\\DRV_ID"

上のようなレジストリキーを登録することで直るのですが,このままでは動かない(最悪レジストリが壊れます!)ので,以下のように内容を書き換えてください。

「MIDI_PORT」を書き換える

まず,レジストリエディターで,「コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32」を開いてください。

そうすると,「midi1」から「midi9」までのキーが出てくると思うのですが,データが「wdmaud.drv」になっている一番若い数字の値を探してください。ほとんどの環境では「midi1」だと思いますが,Coolsoft VirtualMIDISynth等を入れている場合はまた違ってくると思います。

見つけられたら,上のコード中にある「MIDI_PORT」と書かれている部分を,一番若かった値(midi1等)に全て書き換えてください。

「DRV_ID」 を書き換える

レジストリエディターで,「コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class{4d36e96c-e325-11ce-bfc1-08002be10318}」を開いてください。

左のツリー(フォルダー一覧みたいなやつ)のところに,0000からずらっと数字のキーが並んでいると思います。一番大きな数字のキーをみつけてください。

見つけたら, 上のコード中にある 「DRV_ID」と書かれている部分を,その数字+1(一番大きな数字が0034なら,0035)にすべて書き換えてください。

「MIDI_DRV_ID」 を書き換える

レジストリエディターで,「コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ROOT\MEDIA」を開いてください。

左のツリー(フォルダー一覧みたいなやつ)のところに,0000から数字のキーが並んでいると思います。一番大きな数字のキーをみつけてください。

見つけたら, 上のコード中にある 「MIDI_DRV_ID」と書かれている部分を,その数字+1(一番大きな数字が0001なら,0002)に書き換えてください。見つけられなければ,「0000」に書き換えてください。

ファイルをコピー,移動する

「C:\Windows\System32\vstmididrv」の中身を全て「C:\Windows\System32」にコピーします。

64bit版のWindowsをお使いの場合は,「C:\Windows\SysWOW64\vstmididrv」の中身も全て「 C:\Windows\SysWOW64」にコピーします。

レジストリファイルを適用して再起動する

上で作った(書き換えた)レジストリファイルのコードを「vstmidisynth.reg」の名前で保存して,ダブルクリックし開いてください。

こういうメッセージが表示されると思いますが,「はい」をクリックしてください。

あとは再起動すれば使えるようになるはずです。

何をやっているのか

Windows10のVer2004以降では,デバイスリストに登録されていない(デバイスマネージャーに表示されていない)仮想MIDIデバイスは,オーディオエンドポイントビルダーによって自動でMIDIデバイスの登録から削除されてしまうようになりました。

なので,解決するにはデバイスリストに登録(認証済みのドライバーを適用する)すれば良いのですが,それはソフトウェアを作った人にしかできません。

そこで,この方法ではドライバの適用はせずにデバイスリストに登録する(見せかけだけってことです)ことでオーディオエンドポイントビルダーによる削除を回避できるようにしています。

この方法はCoolSoft VirtualMIDISynthのフォーラム(https://coolsoft.altervista.org/en/forum/post/4775)で見つけました。興味のある人は読んでみてください。

また,自分はデバイスドライバーに関する知識はほぼ皆無ですので,こうしたほうがいい という指摘があればTwitter(@_avaice)までご連絡ください。

タイトルとURLをコピーしました