2012-04-24 176 views
2

我正在寫我自己的MIDI解析器,一切似乎都很好。單個MIDI音軌可以同時播放多個音符嗎?

我正在測試一些我在野外看到的文件。我注意到一個MIDI音軌從來沒有出現過多的一個音符(產生多於一個音調)。這是否是由設計決定的,一首MIDI短片是否需要多於一張音符才能同時播放?

(我不是指同步軌道的數量,我指的是音調的數量,在一個軌道上。)

MIDI文件我已經測試過這個樣子的:

ON_NOTE71: ON_NOTE75:ON_NOTE79 ON_NOTE71:OFF_NOTE71:ON_NOTE75:OFF_NOTE75:ON_NOTE79:OFF_NOTE79

它看起來像這樣嗎?

ON_NOTE71:ON_NOTE73:OFF_NOTE73:OFF_NOTE71

如何檢測這種替代結構?

回答

0

是的。控制器和軟件都可以產生這樣的事件。

1

的筆記,可以播放一次是硬件實現細節的數量。您的軟件應該允許同時播放任意數量的同時註釋。我建議保留一張當前正在播放音符的表格,以便在播放停止時可以爲每個音符發送一個音符。理想情況下,表格應該有一個計數,每個音符在發生音符時增加,在音符發生時減少。這樣,如果某個音高有兩個音符,可以發送兩個音符關閉事件。您無法知道您與之通信的設備將如何處理相同音高的連續音符,因此發送相同數量的音符關閉事件是最安全的。