Java секвенсор зацикливается с задержкой при подключении к внешнему устройству Midi Out - PullRequest
0 голосов
/ 02 января 2019

Я хочу зациклить последовательность Midi, используя секвенсор Java и его метод setLoopCount ().

Если выход секвенсора подключен к внешнему устройству Midi Out, каждый раз при повторении последовательности появляется заметная задержка.

Если секвенсор подключен к внутреннему синтезатору Java (Gervill), я не замечаю никакой задержки между циклами.Я пробовал с разными точками петли, это не меняет проблему.Я использую Win10 / Java 8.

  sequencer = MidiSystem.getSequencer(false);
  sequencer.open();
  Sequence sequence = MidiSystem.getSequence(midiFile);
  sequencer.setSequence(sequence);

  // outDevice=Java synth (Gervill)
  // or
  // outDevice=Edirol UA-25 (USB)
  Receiver outDeviceReceiver = outDevice.getReceiver();
  Transmitter seqTransmitter = sequencer.getTransmitter();
  seqTransmitter.setReceiver(outDeviceReceiver);

  int startLoopTick = 0;
  int endLoopTick = -1;  // Loop at end of sequence
  sequencer.setLoopStartPoint(startLoopTick);
  sequencer.setLoopEndPoint(endLoopTick);
  sequencer.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);

  // if outDevice==Edirol there is a slight delay between loops
  sequencer.start();
...