Я использую эту библиотеку: https://github.com/jaudiolibs/jnajack
Я создал простой проект для воспроизведения моей проблемы: https://github.com/sc3sc3/MidiJnaJackTest
У меня работает выходной порт JackPort, который отображается в QjackCtl в разделе «Порты вывода».
В QjackCtl этот выходной порт подключен к GMIDImonitor для наблюдения за трафиком Midi c. Я отправляю MidiMessages в GMIDImonitor с помощью метода ниже. Не могу определить значение параметра time . Когда я устанавливаю time = jackClient.getFrameTime()
, сообщение не приходит в GMIDImonitor. Когда я устанавливаю его, например, на 300, тогда одно сообщение вечно отправляется на al oop.
Любая помощь? Спасибо
public void processMidiMessage(ShortMessage shortMessage) {
System.out.println("processMidiMessage: " + shortMessage + ", on port: " + this.outputPort.getName());
try {
JackMidi.clearBuffer(this.outputPort);
} catch (JackException e) {
e.printStackTrace();
}
try {
int time = 300;
JackMidi.eventWrite(this.outputPort, time, shortMessage.getMessage(), shortMessage.getLength());
} catch (JackException e) {
e.printStackTrace();
}
}