2010-11-26 4 views
0

Ich erstelle eine einfache MIDI-Anwendung in C# mit einem open source library, mit dem der Benutzer einen Kanal, Tonhöhe und Geschwindigkeit festlegen und sie zu einer Uhr hinzufügen kann. Diese Uhr kann dann alle Noten in der Reihenfolge spielen, in der sie hinzugefügt wurden.Hinzufügen von MIDI-Events zu Clock - Java

Alles funktioniert gut und jetzt bin ich dabei, eine Java-Version der Anwendung zu erstellen, das einzige Problem, das ich zu haben scheint, ist, dass ich kein einfaches Tutorial oder eine Erklärung finden kann, wie das Uhrensystem funktioniert MIDI Java.

Existiert die Clock in Java Sound Framework oder muss ich das selbst implementieren?

Danke!

Antwort

1

Es ist eine lange Zeit her, seit ich Java Midi-Sachen angefasst habe, aber im Allgemeinen, um programmatisch ein MIDI zu erstellen, müssen Sie die folgenden Schritte ausführen.

Unter der Annahme, import javax.sound.midi;:

  1. Sie benötigen ein Sequencer Objekt zu erstellen:

    Sequence seq = new Sequence(Squence.PPQ, 500000); 
    
  2. Als nächstes müssen Sie ein Track Objekt erstellen (eine pro Kanal oder einen für alles, es ist bis zu Ihnen):

    Track track = seq.createTrack(); 
    
  3. Jetzt können Sie Ereignisse, um es hinzuzufügen:

    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. Wenn Sie fertig sind, dass Sie dann die Sequence wie normale spielen kann!

Schauen Sie sich die Dokumentation hier: http://download.oracle.com/javase/7/docs/api/index.html?javax/sound/midi/MidiSystem.html

+0

Aus irgendeinem Grund ShortMessage.NOTE_ON Verwendung kommt mit einem Fehler up sagen, es kann nicht erkannt werden. –