Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows下的USB Midi设备名称问题_Usb_Midi - Fatal编程技术网

Windows下的USB Midi设备名称问题

Windows下的USB Midi设备名称问题,usb,midi,Usb,Midi,我一直在为特斯拉线圈设计一个小型合成器,但在USB Midi实现方面存在一些问题。我需要支持多个设备连接到同一台PC,每个设备都有一个昵称,可以通过配置软件为其命名。我可以成功地从固件更改端口名,但只要我连接多个,windows就会决定它们都应该具有相同的名称 例如: 棒1被称为“foo”; 杆2称为“杆”; ->当只插入stick 1或stick 2时,midi端口具有正确的名称,但当连接这两个端口时,它们都显示为“foo”或“bar” 奇怪的是,当midi软件只有一个插件打开时,我连接了第二

我一直在为特斯拉线圈设计一个小型合成器,但在USB Midi实现方面存在一些问题。我需要支持多个设备连接到同一台PC,每个设备都有一个昵称,可以通过配置软件为其命名。我可以成功地从固件更改端口名,但只要我连接多个,windows就会决定它们都应该具有相同的名称

例如: 棒1被称为“foo”; 杆2称为“杆”; ->当只插入stick 1或stick 2时,midi端口具有正确的名称,但当连接这两个端口时,它们都显示为“foo”或“bar”

奇怪的是,当midi软件只有一个插件打开时,我连接了第二个,它们都列出了正确的名称,直到我重新启动程序

这些设备都有一个单独的USB序列号,USBDEVIEW和windows设备管理器显示它们具有正确的名称,但在任何midi软件中,端口都存在上述命名问题。这是我的实现中的问题,还是因为windows midi子系统变得混乱

我并不是想找到一个操作系统级的解决方法,而是想让它开箱即用


编辑:我刚刚意识到,在windows中,Midi端口和设备不一定是同一件事,如果是这样,windows从什么来源获得Midi端口的名称?

您是否尝试过其他Midi软件,以查看它是否是您使用的软件中的错误?我的目标是MIDI-OX,但它不喜欢热插拔设备,所以每次都需要重新启动它才能看到新端口。Windows上的MIDI设备在命名为同一事物时会出现一些问题,因为它们变得模棱两可,但我从未注意到您描述的问题。我想知道您正在使用的软件是否试图通过检查VID/PID或其他描述符来绕过Windows MIDI设备名称的模糊性。我在Anvil studio、FL studio、MIDI ox、synthfont和VMPK中尝试过这一点(已知同名MIDI端口存在问题),它们都有命名问题。我还尝试更改其中一个设备上的PID(这显然不是一个可接受的解决方案:P),然后它工作了,端口有不同的名称。具体来说,配置软件在做什么?我打赌它只是用新名称写一个新的INF文件并安装驱动程序。在这种情况下,可能发生的情况是两个INF文件匹配同一个VID/PID,并且只使用一个。在设备管理器中看到正确的名称是很奇怪的,但这些名称可能来自描述符。这超出了我的知识范围。。。我只是猜测,根据我过去对其他MIDI设备及其INF文件所做的一些胡闹,配置软件会为每个设备写一个昵称(可以更改)。目前,这些设备用这个昵称响应USB接口和产品字符串描述符请求。这并不理想,因为它需要重新连接以更新操作系统中的名称,但这是可以接受的。我还尝试使用USBDevView完全卸载设备,以防某些命名仍然被缓存,但这并没有改变任何事情。您正在引用哪些INF文件?也许通过查看这些文件中的名称可以告诉我更多关于问题来源的信息。您是否尝试过其他MIDI软件,以查看它是否是您正在使用的软件中的错误?我的目标是MIDI-OX,但它不喜欢热插拔设备,所以每次都需要重新启动它才能看到新端口。Windows上的MIDI设备在命名为同一事物时会出现一些问题,因为它们变得模棱两可,但我从未注意到您描述的问题。我想知道您正在使用的软件是否试图通过检查VID/PID或其他描述符来绕过Windows MIDI设备名称的模糊性。我在Anvil studio、FL studio、MIDI ox、synthfont和VMPK中尝试过这一点(已知同名MIDI端口存在问题),它们都有命名问题。我还尝试更改其中一个设备上的PID(这显然不是一个可接受的解决方案:P),然后它工作了,端口有不同的名称。具体来说,配置软件在做什么?我打赌它只是用新名称写一个新的INF文件并安装驱动程序。在这种情况下,可能发生的情况是两个INF文件匹配同一个VID/PID,并且只使用一个。在设备管理器中看到正确的名称是很奇怪的,但这些名称可能来自描述符。这超出了我的知识范围。。。我只是猜测,根据我过去对其他MIDI设备及其INF文件所做的一些胡闹,配置软件会为每个设备写一个昵称(可以更改)。目前,这些设备用这个昵称响应USB接口和产品字符串描述符请求。这并不理想,因为它需要重新连接以更新操作系统中的名称,但这是可以接受的。我还尝试使用USBDevView完全卸载设备,以防某些命名仍然被缓存,但这并没有改变任何事情。您正在引用哪些INF文件?也许通过查看其中的名字可以告诉我更多关于问题起源的信息