Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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
如何在JavaMIDI中检测特定的MIDI控制器?_Java_Audio_Midi - Fatal编程技术网

如何在JavaMIDI中检测特定的MIDI控制器?

如何在JavaMIDI中检测特定的MIDI控制器?,java,audio,midi,Java,Audio,Midi,我正在试验以下代码: 操作我的更新启动板MIDI控制器 基本上,我感兴趣的是打开LED,只发送MIDI音符/cc 这一部分是有效的——在更改代码以将适当的MIDI发送到Launchpad之后——我能够实现我的效果。然而,它只在我使用默认的MIDI设备时起作用 我想用Java代码编写检测Lanchpad的代码,并直接向他们发送信号 我希望它足够清晰:)正如其他人所建议的,您可以通过USB总线上的设备名称来检测到这一点。为此,有一个项目。它的最后一个版本是2008年发布的,所以我不确定它有多少可用

我正在试验以下代码:

操作我的更新启动板MIDI控制器

基本上,我感兴趣的是打开LED,只发送MIDI音符/cc

这一部分是有效的——在更改代码以将适当的MIDI发送到Launchpad之后——我能够实现我的效果。然而,它只在我使用默认的MIDI设备时起作用

我想用Java代码编写检测Lanchpad的代码,并直接向他们发送信号


我希望它足够清晰:)

正如其他人所建议的,您可以通过USB总线上的设备名称来检测到这一点。为此,有一个项目。它的最后一个版本是2008年发布的,所以我不确定它有多少可用性或生命力

我看过Launchpad程序员参考资料(在中提供),其中没有提到SysEx for discovery

如果您不想篡改USB,并且满足“半自动”检测,您可以要求用户按下启动板上的按钮,然后在所有MIDI设备上收听生成按钮的消息90(注意)或B0(控制更改)(启动板程序员参考,第11页)。消息来自哪个接口,即已连接的启动板


您可以使用B0消息获得更好的结果,因为这是控件更改,其值在启动板上的范围为68-6F(十六进制),这比消息上的注释更具体到控制器。

据我所知,在Windows上,使用MIDI设备的唯一方法是按名称。更新是否显示为“USB MIDI设备”以外的任何内容?嗯。。。我会查。。。设备数量如何?在其他应用程序中,它们会用数字表示。不管怎样,我会查一查的,谢谢。任何数字都是按它们的顺序排列的。你会发现,如果你有几个同名的设备,它们的顺序往往会混淆,软件也无法分辨哪个是哪个。某些设备可以使用SysEx进行探测。例如,APC40有一个可选的握手过程