2

我正在使用外部声音字体播放 MusicStrings,一切正常。当我使用 player.saveMidi(etc, etc) 时,文件会使用原始 MIDI soundfont 保存。

Soundbank soundbank = MidiSystem.getSoundbank(new File("SGM-V2.01.sf2"));
Synthesizer synth = MidiSystem.getSynthesizer();
synth.open();
synth.loadAllInstruments(soundbank);
Player player = new Player(synth);
Pattern pattern = new Pattern("C5majw C5majw C5majw");
player.play(pattern); // works fine with external soundbank
player.saveMidi(pattern, filename); //Doesn't save with external soundbank instruments 

是否有任何解决方法或支持此功能的内置功能?

谢谢!

4

1 回答 1

2

请记住,MIDI 是一组音乐指令。无论您是否将音库加载到 Java 程序中,当您保存为 MIDI 时,您只是保存音乐指令。(通过“音乐说明”,我的意思是“注意”或“乐器更改”之类的东西,而不是实际的音乐声音数据)

听起来您想要做的是使用您已加载的音库中的声音将您的音乐渲染成 WAV 文件。为此,您需要使用此处提供的 Midi2WavRenderer:http ://www.jfugue.org/code/Midi2WavRenderer.java

于 2014-03-22T02:09:14.620 回答