こんにちは: 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() の私のアプローチで十分だと思いました
よろしくお願いします!