2017-02-28 68 views
0

對於編寫midi(包裝)庫,我試圖弄清楚,在哪裏定義了MIDI設備的「名稱」。它是由設備提供的還是由系統連接的?Midi控制器設備名稱

例如,我從linux機器上的'amidi'獲得了以下輸出,其中連接了MIDI控制器。

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

它的名字始終是「MIDI 1」(原文如此!),我不知道如果我可以假設,這個供應商/型號的每一個設備將具有相同的名稱。

回答

0

對於PCI聲卡,驅動程序知道名稱。

對於USB設備,snd-usb-audio驅動程序查看設備描述符以獲取設備名稱,並追加「MIDI x」以獲取MIDI端口名稱。如果沒有定義設備名稱,則它會根據設備編號構造一個默認名稱,這看起來好像您的MIDI控制器顯式返回一個空字符串。這會導致您的案例中出現無意義的結果,但採用這個名稱是您圖書館能夠做到的最好的結果。

(以「root」身份運行「sudo lsusb -v 2>&1 | grep -e iManufacturer -e iProduct」以查看USB設備聲明的內容。)