Добавить MIDI-события в Clock - Java - PullRequest
0 голосов
/ 26 ноября 2010

Я создаю простое MIDI-приложение на C # с библиотекой с открытым исходным кодом , которая позволяет пользователю указать канал, высоту и скорость и добавить их в часы.Эти часы могут воспроизводить все ноты в той последовательности, в которой они были добавлены.

Все отлично работает, и сейчас я нахожусь в процессе создания версии приложения на Java, единственная проблема, с которой я, похоже, сталкиваюсь, эточто я не могу найти какое-либо простое руководство или объяснение того, как система часов работает в MIDI Java.

Существуют ли часы в Java Sound Framework или это то, что мне придется реализовать самостоятельно?

Спасибо!

1 Ответ

1 голос
/ 26 ноября 2010

Прошло много времени с тех пор, как я коснулся 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

...