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();