我已經寫了一個簡單的代碼加載和播放midi:java玩midi與軟件不同嗎?
public class SoundBase {
Sequencer sequencer;
public SoundBase() throws Exception{
sequencer = MidiSystem.getSequencer();
sequencer.open();
Sequence sequence = MidiSystem.getSequence(new File("audio/chno0902.mid"));
sequencer.setSequence(sequence);
// sequencer.getTransmitter().setReceiver(new MyReceiver());
sequencer.start();
}
public static void main(String[] args) throws Exception {
new SoundBase();
}
@Override
protected void finalize() throws Throwable {
if (sequencer != null)
sequencer.close();
super.finalize();
}
}
但是從這個代碼播放的MIDI是從我在預覽已經聽到我已經下載了該網站確實不同:Chopin 從另外不同我已經安裝了GarageBand(MAC OSX)的軟件播放器。 我做錯了什麼或忘記了什麼? 感謝
MIDI文件不包含樂器的實際聲音(波形),而僅包含各個音符的參數(樂器,音高,長度等)。這就是爲什麼它比WAV或MP3小得多。缺點是,在不同的平臺上聽起來可能會有所不同,具體取決於儀器的實施方式。 – Henry
我已經看到我可以在/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/audio中添加一個soundbank我已經下載它並放在那裏但是當我加載它時我有這個錯誤javax.sound.midi.InvalidMidiDataException:不能從流 \t在javax.sound.midi.MidiSystem.getSoundbank(MidiSystem.java:604) \t在SoundBankTest.loadSoundbank(SoundBankTest.java:34) \t在SoundBankTest獲得音庫。 main(SoundBankTest.java:72) java 8從2001年有這個bug? – sefiroths