我的猜测是你忘记在 JFugue 中关闭音符,或者有一个错误是一旦开始就忘记停止播放音符。
使用 MIDI 是一种非常简单的方法来做你正在谈论的事情。以下是 midi 包中一些有用的方法,可以帮助您入门:
Synthesizer synth = MidiSystem.getSynthesizer();
synth.open();
MidiChannel midiChannel = synth.getChannels()[0];
midiChannel.allNotesOff();
currentInstrument = synth.getAvailableInstruments()[index];
System.out.println("Switching instrument to #" + index + ": " + currentInstrument.getName());
synth.loadInstrument(currentInstrument);
midiChannel.programChange(currentInstrument.getPatch().getBank(), currentInstrument.getPatch().getProgram());
midiChannel.noteOn(noteNumber, velocity);
midiChannel.noteOff(noteNumber);