Java MIDI-从钢琴获取数据?


问题内容

我继承了一个Java项目,项目使用旧的C ++
dll
从连接到计算机的钢琴接收MIDI数据

既然Java内置了对MIDI设备的支持,我想摆脱旧的C ++ dll,而只使用纯Java。 Java是否支持从连接到计算机的钢琴接收数据?
我已经在Google上搜索了一些示例,但都无济于事。


问题答案:

是的,JavaSound API可用于从MIDI设备读取MIDI数据。

JFugue是用于音乐编程的Java API,它使用JavaSound
API,可以帮助简化与JavaSound的交互。在JFugue 5.x中,从MIDI设备捕获10秒MIDI数据的示例代码如下:

MidiDevice device = /* specify a MIDI device */
MusicTransmitterToSequence transmitter = new MusicTransmitterToSequence(device); 
transmitter.listenForMillis(10000); 
Sequence music = transmitter.getSequence();

您还可以开始和停止收听设备:

MidiDevice device = /* specify a MIDI device */
MusicTransmitterToSequence transmitter = new MusicTransmitterToSequence(device); 
transmitter.startListening(); 
// Do stuff
transmitter.stopListening(); 
Sequence music = transmitter.getSequence();