为了编写midi(包装器)库,我试图找出midi设备的“名称”的定义。它是由设备给出的还是由系统提供的东西连接到?
例如,我在linux机器上从'amidi'获得以下输出,midi控制器连接到该机器上。
Add(Child)
它的名字总是“MIDI 1”(原文!),我不确定我是否可以假设这个供应商/型号的每个设备都有相同的名称。
答案 0 :(得分:0)
对于PCI声卡,驱动程序知道名称。
对于USB设备,snd-usb-audio
驱动程序会查看设备的描述符以获取设备名称,并附加“MIDI x”以获取MIDI端口名称。如果没有定义设备名称,它会从设备编号构造默认名称,因此看起来好像您的MIDI控制器显式返回一个空字符串。这会导致您的案例产生无意义的结果,但使用此名称是您的库可以做到的最佳结果。
(以root身份运行“sudo lsusb -v 2>&1 | grep -e iManufacturer -e iProduct
”以查看USB设备的声明。)