2017-02-28 2 views
0

midi(ラッパー)ライブラリーを書くために、私はmidiデバイスの "名前"が定義されているところを見つけようとしています。それはデバイスによって与えられるものか、それが接続されているシステムによって与えられたものですか?MIDIコントローラーのデバイス名

たとえば、midiコントローラが接続されているLinuxマシンで、次の出力を 'amidi'から取得しています。

amidi -l 
Dir Device Name 
IO hw:1,0,0 MIDI 1 

その名前は常に「MIDI 1」(原文のまま!)と私は、このベンダー/モデルのすべての単一のデバイスが同じ名前を持つことを、私が想定できるかはわかりません。

答えて

0

PCIサウンドカードの場合、ドライバはその名前を知っています。

USBデバイスの場合、snd-usb-audioドライバはデバイスのディスクリプタを調べてデバイス名を取得し、 "MIDI x"を追加してMIDIポート名を取得します。デバイス名が定義されていない場合は、デバイス番号からデフォルトの名前が作成されるため、MIDIコントローラが空の文字列を明示的に返すかのように見えます。あなたのケースでは無意味な結果に終わりますが、この名前をとることはあなたの図書館が行うことができる最高のものです。

(あなたのUSBデバイスが何を宣言しているのかを知るには、 "sudo lsusb -v 2>&1 | grep -e iManufacturer -e iProduct"を実行してください)

関連する問題