2017-02-28 44 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设备声明的内容。)