我在C#中使用open source library创建一个简单的MIDI应用程序,允许用户指定通道,音高和速度,并将它们添加到时钟。然后,此时钟可以按照添加的顺序播放所有音符。
一切都很好,现在我正在创建一个Java版本的应用程序,我似乎唯一的麻烦是我找不到任何简单的教程或解释时钟系统如何在MIDI中工作Java的。
时钟是否存在于Java Sound Framework中,或者这是我必须自己实现的?
谢谢!
答案 0 :(得分:1)
自从我触及Java Midi之后已经很长时间了,但一般来说,要以编程方式构建MIDI,您需要执行以下步骤。
假设import javax.sound.midi;
:
您需要创建一个Sequencer
对象:
Sequence seq = new Sequence(Squence.PPQ, 500000);
接下来,您需要创建一个Track
对象(每个频道一个或一个用于所有内容,取决于您):
Track track = seq.createTrack();
现在,您可以向其添加事件:
track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_ON, 0, 60, 127), 0));
track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_OFF, 0, 60, 127), 1000));
//etc.
当你完成后,你就可以正常玩Sequence
了!
点击此处的文档:http://download.oracle.com/javase/7/docs/api/index.html?javax/sound/midi/MidiSystem.html