2010-11-26 67 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