Настройка каналов инструмента с помощью пакета javax.sound.midi - PullRequest
4 голосов
/ 13 мая 2010

У меня проблемы с настройкой инструмента в пакете javax.sound.midi.

Synthesizer synthesizer = MidiSystem.getSynthesizer();
MidiChannel[] channels = synthesizer.getChannels();

channels[0].programChange(5);
System.out.println(channels[0].getProgram());

Из документации в MidiChannel вызовы каналов [0] .programChange (int) должны изменить инструмент, для которого установлен MidiChannel, и немедленно отразиться в каналах [0] .getProgram (). Однако моя программа выводит «0», указывая, что ничего не изменилось.

Позже в коде я использую MidiChannel.getSequencer () для успешного воспроизведения миди-звука (хотя только с инструментом по умолчанию).

Собираюсь ли я попытаться установить инструмент неправильно?

1 Ответ

3 голосов
/ 06 апреля 2011

Я столкнулся с той же проблемой, что и вы, хотя мы не используем точно такую ​​же реализацию, чтобы заставить MIDI-сообщения свободно смотреть на мой вопрос, поскольку он может быть вам полезен:

Смена инструмента на Java во время воспроизведения

...