我继承了一个Java项目,该项目从连接到计算机的钢琴中使用了an old C++ dll to receive MIDI data。
既然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();