嗨:我正在尝试将 MIDI 音序器同步到外部时钟的实例。我做了:
S_p = MidiSystem.getSequencer(false);
D2 = MidiSystem.getMidiDevice(MidiSystem.getMidiDeviceInfo()[1]);
S_p.open();
D2.open();
R2=S_p.getReceiver();
T2=D2.getTransmitter();
T2.setReceiver(R2);
但
for(int i=0;i<S_p.getMasterSyncModes().length;i++)
{System.out.println("Available modes are "+i+ " "+S_p.getMasterSyncModes()[i].toString());}
返回
Available modes are 0 Internal Clock
这意味着这将毫无用处。
S_p.setMasterSyncMode(Sequencer.SyncMode.MIDI_SYNC);
我究竟做错了什么 ?当然,我已经确认消息从 D2 出来并进入另一个定制的接收器,以通知 system.out,并且音序器正常播放,只是似乎它不支持 SyncModes 文档说它应该。具体来说,这句话让我感到困惑(来自MIDI_SYNC:“这种模式仅适用于同时也是 MIDI 接收器的音序器的主同步模式。”
定序器作为接收器是什么意思。我认为我的 getReceiver() 方法应该足够了
问候和感谢!