同じタイプのハードウェアの複数の USB MIDI デバイスを使用しようとすると、デバイスの名前付けのあいまいな動作に直面しています。これはハードウェア/システム/ドライバーに関連している可能性があるため、一般的な設定は次のとおりです。
- ホスト: Windows 8.1 x64 (複数のマシンでテスト済み)
- USB デバイス: 2x Livid Brain V2 (汎用の usb-midi インターフェイス)
2 つのデバイス (同じハードウェア、デバイス X および Y と呼びましょう) は、2 つの異なるファームウェア フレーバーでフラッシュされるため、MIDI 列挙では異なる名前で表示されます。デバイス X のみを接続すると、「Brain2」と表示され、デバイス Y のみを接続すると「Brain2B」と表示されます。これらは、MIDIINCAPS / MIDIOUTCAPS (winmm.dll) から取得した名前です。ここまでは順調ですね。
両方のデバイスを同時に接続するとすぐに問題が発生し、両方が(後者が接続された)同じ名前を取得するため、列挙が変更されます。
- 最初に X、次に Y => 両方とも「Brain2B」という名前を取得します
- 最初に Y、次に X => 両方とも「Brain2」という名前を取得します
ただし、デバイスにアクセスして使用することはできますが、それらを区別することはできません (これは基本的に、両方のデバイスで同じファームウェアを使用する場合と同じ開始位置です)。
誰かが私を正しい方向に向けることができれば幸いです。誰かが似たようなことに遭遇しましたか? これはシステム関連の問題でしょうか? (それともドライバーが悪いのでしょうか?) よろしくお願いします!
編集:
USB Device Tree Viewer (USBView に類似)というツールを使用して USB のプロパティを詳しく調べたところ、識別子が正しいことがわかりました。では、 winmm.dllはどのようにして midi 列挙を取得するのでしょうか - そこにバグがあるのでしょうか? (ありそうもない)
モリッツ
(ところで: 製造元のフォーラムの関連トピック/投稿は次のとおりです:リンク)