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

3
我正在尝试使用以下代码:http://www.jsresources.org/examples/MidiNote.java.html,来操作我的Novation Launchpad MIDI控制器。
基本上我只想通过发送MIDI音符/控制器信息来点亮LED灯。这部分已经实现了 - 在将代码更改为向Launchpad发送适当的MIDI之后 - 我能够实现我的效果。但是,仅在使用默认MIDI设备时才有效。
我希望能够在Java代码中检测到Lanchpad并直接向其发送信号。
希望以上内容清晰明了 :)

1
据我所知,在Windows上使用MIDI设备的唯一方法是通过名称。Novation除了“USB MIDI设备”之外还会显示为其他名称吗? - Brad
嗯...我会查一下...设备数量呢?在其他应用程序中,它们通常以数字表示。无论如何,我会查一下,谢谢。 - bluszcz
1
任何数字只是它们被枚举的顺序。如果您有几个同名设备,您会发现它们的顺序经常会混乱,软件将无法区分哪个是哪个。一些设备可以使用SysEx进行探测。例如,APC40具有可选的握手过程。 - Brad
1个回答

1

正如其他人建议的那样,您可以通过USB总线上的设备名称来检测它。为此,有一个项目http://javax-usb.org。它的最后一个版本发布于2008年,因此我不确定它有多少可用性或活力。

我查看了Launchpad程序员参考(可在Launchpad下载中获得),其中没有提到SysEx以进行发现。

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

您可以使用B0消息获得更好的结果,因为这是控制更改,其值范围在Launchpad上为68-6F(十六进制),这比音符消息更具体。


按下按钮的聪明想法 :) - bluszcz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接