Я программирую приложение для фортепиано на основе Java. Все работает до сих пор, но теперь у меня проблема. Это более подробная информация, но это очень плохой пользовательский интерфейс, поэтому я не могу оставить его таким.выключить midi синтезатор echo
Вот код:
Synthesizer Настройка
try {
synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
synthesizer.loadAllInstruments(synthesizer.getDefaultSoundbank());
} catch (MidiUnavailableException e) {
e.printStackTrace();
}
try {
synthReceiver = synthesizer.getReceiver();
} catch (MidiUnavailableException e) {
e.printStackTrace();
}
// load instrument's configuartion
int instrumentNumber = settings.getInteger("sound.instrument", 0);
Instrument instrument = synthesizer.getDefaultSoundbank().getInstruments()[instrumentNumber];
// Set the instrument on channel 0
ShortMessage message = new ShortMessage();
try {
message.setMessage(ShortMessage.PROGRAM_CHANGE, 0, instrumentNumber, 0);
} catch (InvalidMidiDataException ex) {
Logger.getLogger(TypePiano.class.getName()).log(Level.SEVERE, null, ex);
}
synthReceiver.send(message, -1);
synthesizer.loadInstrument(instrument);
synthesizer.getChannels()[0].programChange(instrumentNumber);
сыграйте ноту
// create the message
ShortMessage message = new ShortMessage();
try {
message.setMessage(ShortMessage.NOTE_ON, settings.getInteger("piano.instrument", 1), note, 100);
} catch (InvalidMidiDataException e) {
e.printStackTrace();
}
// send it
synthReceiver.send(message, -1);
// and update note stand
noteStand.notePlayed(note);
Теперь проблема заключается в том, что ноты, не остановить воспроизведение. Просто не исчезают полностью. Вы здесь, и они не деактивируются автоматически. Я не знаю, где проблема ...
Если вам нужно больше кода или что-то еще, просто скажите об этом.
Было бы здорово получить ответ на эту проблему, я уже пытаюсь решить, так как более двух часов ...
Спасибо. Я уже немного поиграл с Note Note, но я не привёл его к работе. Теперь с Note On с 0 скоростью он работает :) – evotopid
@evotopid, Не все синтезаторы отвечают на Note Off, поэтому проблема может быть не в вас. – Brad