Java MIDI - 从钢琴获取数据? [英] Java MIDI - getting data from piano?

查看:290
本文介绍了Java MIDI - 从钢琴获取数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've inherited a Java project that used an old C++ dll to receive MIDI data from a piano connected to the computer.

既然Java内置了对MIDI设备的支持,我想摆脱传统的C ++ DLL并且只使用纯Java。 Java是否支持从连接到计算机的钢琴接收数据?我搜索过Google的示例无效。

Now that Java has built-in support for MIDI devices, I want to get rid of the legacy C++ dll and just use pure Java. Does Java support receiving data from a piano connected to the computer? I've searched Google for examples to no avail.

推荐答案

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

Yes, the JavaSound API can be used to read MIDI data from a MIDI device.

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

JFugue is a Java API for music programming that uses the JavaSound API, and can help simplify your interaction with JavaSound. In JFugue 5.x, sample code to capture 10 seconds of MIDI data from a MIDI device is as follows:

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

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

You can also start and stop listening to a device:

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

这篇关于Java MIDI - 从钢琴获取数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆