Midi 控制器设备名称
Posted
技术标签:
【中文标题】Midi 控制器设备名称【英文标题】:Midi Controller Device Names 【发布时间】:2017-02-28 22:16:27 【问题描述】:为了编写一个 midi(包装)库,我试图弄清楚 midi 设备的“名称”是在哪里定义的。是设备给定的还是它所连接的系统给定的?
例如,我在一台连接了 midi 控制器的 linux 机器上从“amidi”获得以下输出。
amidi -l
Dir Device Name
IO hw:1,0,0 MIDI 1
它的名字总是“MIDI 1”(原文如此!),我不确定我是否可以假设这个供应商/型号的每个设备都具有相同的名称。
【问题讨论】:
【参考方案1】:对于 PCI 声卡,驱动程序知道名称。
对于 USB 设备,snd-usb-audio
驱动程序查看设备的描述符以获取设备名称,并附加“MIDI x”以获取 MIDI 端口名称。如果没有定义设备名称,它会根据设备编号构造一个默认名称,因此这看起来就像您的 MIDI 控制器显式返回一个空字符串。在您的情况下,这会导致一个荒谬的结果,但是使用这个名称是您的库可以做的最好的事情。
(以 root 身份运行“sudo lsusb -v 2>&1 | grep -e iManufacturer -e iProduct
”以查看您的 USB 设备声明的内容。)
【讨论】:
以上是关于Midi 控制器设备名称的主要内容,如果未能解决你的问题,请参考以下文章
从 C# 控制台应用程序枚举 UWP MIDI API 设备?
用于虚拟 DJ 的 Arduino Usb MIDI 控制器