я проигрываю MIDI-песню с помощью Java Sequencer . Песня предназначена для непрерывного зацикливания, что я легко могу сделать с помощью секвенсора. setLoopCount (Sequencer.LOOP_CONTINUOUSLY)
При воспроизведении через встроенный синтезатор (звуковая карта) это работает нормально и (с добавление фиктивного события , , если необходимо), синхронизация цикла точная.
Однако при воспроизведении через внешний (USB или последовательный) синтезатор наблюдается заметный пробел на выходе в точке, где он петли вокруг. Это объясняется тем фактом, что в начале файла .mid есть много событий настройки, которые требуют некоторого времени для отправки по последовательной линии.
Я хотел бы попробовать выделить одноразовые события настройки в их собственная Последовательность
, которая отправляется на устройство один раз, когда песня загружается, но остается вне основной (зацикленной) Последовательности
.
Есть ли простой алгоритм (или библиотечная функция ), которые могут различать два типа событий?
Требуется предусмотреть: