JackMidi.eventWrite - параметр времени - PullRequest
1 голос
/ 17 июня 2020

Я использую эту библиотеку: 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();
    }
}
...