質問の質問者と同じjavax.sound.midiの例を使用しました。JavaMidiの出力を終了します。問題は、シーケンスをループするのではなく、一度再生した後にシーケンスを終了することでした。
ボタンを押すだけで再生を停止するようにシーケンサー(またはシンセサイザー?)に指示するコマンドを「注入」するにはどうすればよいのでしょうか。
これまでシンセサイザーとシーケンサーを閉じてみましたが、まだ音が出ています。また、トラックを削除することも、チャネル内のすべてのノートをオフにすることも(JavaのStop MIDI再生で提案されているように)機能しませんでした。
if (synth != null) {
javax.sound.midi.MidiChannel[] channels = synth.getChannels();
channels[0].allNotesOff();
channels[0].allSoundOff();
}
現在のシーケンスを停止した後、別のシーケンスを再生できるようにしたいと思います。