Мне удалось воспроизвести миди-файлы, используя Java, но он производит некоторый отвлекающий шум. Я выяснил, что это связано с плохим качеством файла звукового банка , поставляемого с Java 6 SDK / JRE.
Как мне улучшить это качество?
Вот что у меня есть:
Пример MidiNote с использованием Receiver
работает нормально (звучит так же, как при воспроизведении миди-файлов на других проигрывателях), поэтому он не использует Soundbank поставляется с Java, но механизм резервирования , который использует аппаратный порт MIDI .
Использование Пример SimpleMidiPlayer для воспроизведения файла Midi работает, но качество оставляет желать лучшего.
Когда я удаляю lib/audio/soundbank.gm
, качество уже не плохое, поэтому запасной вариант используется снова.
Когда я помещаю soundbank-deluxe.gm
в тот же каталог, он используется и производит намного лучший звук.
Работа с клиентами файл звукового банка , как описано в официальных Инструкциях по установке , конечно, не вариант, поэтому я попытался поместить новый файл звукового банка в файл jar и загрузите его :
Soundbank soundbank = MidiSystem.getSoundbank(
getClass().getResourceAsStream("soundbank-deluxe.gm"));
if(synthesizer.isSoundbankSupported(soundbank)) {
System.out.println(synthesizer.loadAllInstruments(soundbank));
}
Печатается true
, но звук остается неизменным.
- Что я делаю не так при загрузке файла soundbank?
- Можно ли принудительно использовать аппаратный MIDI-порт вместо стандартного файла звукового банка?