开发者

Add MIDI Events to Clock - Java

I am creating a simple MIDI application in C# with an open source library that allows the user to specify a channel, pitch and velocity and add them to a Clock. This clock can then play all the notes in the sequence that they were added.

Everything works g开发者_StackOverflow社区reat and now I am in the process of creating a Java version of the application, the only trouble I seem to be having is that I can't find any simple tutorial or explanation of how the clock system works within MIDI Java.

Does the Clock exist in Java Sound Framework or is this something I will have to implement myself?

Thanks!


It's been a long time since I've touched the Java Midi stuff, but in general, to programmatically build a MIDI, you need to do the following steps.

Assuming import javax.sound.midi;:

  1. You need to create a Sequencer object:

    Sequence seq = new Sequence(Squence.PPQ, 500000);
    
  2. Next, you need to create a Track object (one per channel or one for everything, it's up to you):

    Track track = seq.createTrack();
    
  3. Now, you can add events to it:

    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. When you're done that, you can then play the Sequence like normal!

Check out the docs here: http://download.oracle.com/javase/7/docs/api/index.html?javax/sound/midi/MidiSystem.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜