我想使用Java及其setLoopCount()方法循环一个Midi序列。
如果序列器的输出连接到外部Midi out设备,则在每次时序循环时都会引入明显的延迟。
如果sequencer的连接到内部Java synth (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();发布于 2019-10-07 04:07:18
序列器自动发送控制器msg后循环。(在所有通道上重置所有控制器等121,123,64 )这就是为什么它听起来是延迟的。
https://stackoverflow.com/questions/54012029
复制相似问题