代码之家  ›  专栏  ›  技术社区  ›  Jamie Keeling

向Clock-Java添加MIDI事件

  •  0
  • Jamie Keeling  · 技术社区  · 14 年前

    我正在用C创建一个简单的MIDI应用程序 open source library 它允许用户指定频道、音高和速度,并将它们添加到时钟中。然后,这个时钟可以按添加的顺序播放所有音符。

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

    时钟是否存在于Java声音框架中,或者这是我必须实现的东西吗?

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mike Caron    14 年前

    我已经很久没有接触过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