В настоящее время я работаю над приложением для игры на MIDI с разными инструментами.Я использую javax.sound.midi.MidiChannel для этого, и он прекрасно работает с гитарой (индекс 25) и басом (индекс 32).Теперь я хочу добавить канал мандолины;в соответствии с synthesizer.getDefaultSoundbank (). getInstruments (), это индекс 215. Но с кодом, приведенным ниже, программа канала Mandolin получает значение 25 (аналогично гитарному каналу).Согласно документации, в методе programChange () допускаются только значения от 0 до 127 ... Есть идеи, как настроить мой канал для работы с Mandolin в качестве инструмента?
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
final Instrument[] instruments = synthesizer.getDefaultSoundbank().getInstruments();
MidiChannel guitarChannel = synthesizer.getChannels()[0];
guitarChannel.programChange(instruments[25].getPatch().getProgram());
MidiChannel bassChannel = synthesizer.getChannels()[1];
bassChannel.programChange(instruments[32].getPatch().getProgram());
MidiChannel mandolinChannel = synthesizer.getChannels()[2];
mandolinChannel.programChange(instruments[215].getPatch().getProgram());
mandolinChannel.noteOn(note, 100);