2010-11-26 74 views
0

我正在用C#创建一个简单的MIDI应用程序,使用open source library,允许用户指定通道,音高和速度并将它们添加到时钟。然后这个时钟可以播放所添加的音序。将MIDI事件添加到时钟 - Java

一切都很好,现在我正在创建一个Java版本的应用程序,唯一的麻烦是我找不到任何简单的教程或时钟系统如何工作的解释MIDI Java。

时钟是否存在于Java Sound Framework中,或者这是我必须实现的东西?

谢谢!

回答

1

从我接触Java Midi的东西开始已经很长时间了,但一般来说,要以编程方式构建MIDI,您需要执行以下步骤。

假设import javax.sound.midi;

  1. 你需要创建一个Sequencer对象:

    Sequence seq = new Sequence(Squence.PPQ, 500000); 
    
  2. 接下来,你需要创建一个Track对象(每个通道的一个或一个的一切,它是由给你):

    Track track = seq.createTrack(); 
    
  3. 现在,你可以添加事件到它:

    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. 
    
  4. 当你做到这一点,你就可以玩Sequence正常人一样!

退房这里的文档:http://download.oracle.com/javase/7/docs/api/index.html?javax/sound/midi/MidiSystem.html

+0

对于使用ShortMessage.NOTE_ON某种原因,想出了一个错误说,它不能被识别。 – 2010-11-28 23:13:46