我是JAVA MIDI的新手,我遇到了一個問題。我想加載一個MIDI文件,然後爲每個音軌使用每個樂器的名稱設置一對標籤。例如如果MIDI文件有5個軌道(每個軌道只有一個樂器),那麼我會得到5個標籤,每個標籤有每個軌道上使用的樂器名稱。加載樂器
是否有任何方法可以查看MIDI文件(函數,方法...)中每個軌道使用了什麼樂器?
我是JAVA MIDI的新手,我遇到了一個問題。我想加載一個MIDI文件,然後爲每個音軌使用每個樂器的名稱設置一對標籤。例如如果MIDI文件有5個軌道(每個軌道只有一個樂器),那麼我會得到5個標籤,每個標籤有每個軌道上使用的樂器名稱。加載樂器
是否有任何方法可以查看MIDI文件(函數,方法...)中每個軌道使用了什麼樂器?
一旦你在安排中隔離了每個音軌,就有兩種不同的方式來確定應該播放它的樂器。
一個是ID爲0x04
的MIDI元信息將以樂器名稱顯示爲字符串。有關詳細信息,請參閱此great page detailing the MIDI file format。
第二種方法是在音軌的開頭會出現一個MIDI程序改變信息。假設MIDI文件設置爲使用GM(通用MIDI)樂器,則可以將程序更改消息的數據關聯到GM instrument。
請注意,程序更改允許出現在MIDI軌道的任何位置,順控程序應相應地處理它們。雖然大多數MIDI文件在野外看到的都不會使用軌道中間的程序變化,但請記住,這是標準允許的,可能會發生。
Sequence
。Track
對象。MidiEvent
對象。MidiMessage
。這將包含有關(除其他外)儀器更改的信息。