我已经用Java设计了自己的合成器,现在我想将其与Midi键盘连接。我在下面的课程搜索所有带有发射器的Midi设备。它成功找到了我的Midi键盘。我将自己的接收器添加到每个设备的每个发送器中,以便它可以接收所有可能的信息。通过阅读所有帮助文档和Java文档,我知道Transmitter将MidiEvents发送到Receiver,然后由Receiver处理send方法。因此,我编写了自己的内部类来实现Receiver,并仅使用了一个println语句来检查send方法中是否检测到任何东西。但是什么也没捡到。做这种简单的事情似乎几乎没有帮助,我查看了每个帮助文件,javadoc和论坛。我敢肯定,这一定是我确实以某种方式错过的东西。
我的合成器不应与界面合成器混淆,它也不是Midi乐器。它使用合成算法并具有回放方法。基本上,我只需要让Midi键盘发送有关事件的便笺,便会调用播放方法。
import javax.sound.midi.*;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
public class MidiHandler
{
//ArrayList of MidiDevices
private ArrayList devices = new ArrayList();
public MidiHandler()
{
MidiDevice device;
MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
for (int i = 0; i < infos.length;