Получение хорошего звука с Java - PullRequest
1 голос
/ 03 мая 2010

Мне удалось воспроизвести миди-файлы, используя 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-порт вместо стандартного файла звукового банка?
...