答案 0 :(得分:0)
频道:MIDI格式使用通道的概念,允许不同的MIDI设备仅通过收听此类频道来收听特定的MIDI事件。这使得可以将单个MIDI文件用于应该播放不同音符等的多个乐器。因此,当您对事件有记录时,您应该检查事件的频道,并且只播放对发生的事件感兴趣的乐器。这个频道。
数据:数据有点武断,但在您的示例中,我们有一个类型为255(0xFF)的事件,这是一个元事件。它的元类型为3(0x03),这意味着它是一个序列/轨道名称。这可能是由创建您使用的MIDI文件的程序分配的。这里有一个非常漂亮和简洁的事件列表:http://www.ccarh.org/courses/253/handout/smf/
deltaTime :由于MIDI文件中的事件与节拍无关,因此它使用了刻度的概念。它的基本分辨率表示为每季度票据的刻度。我认为每季度480个刻度是相当标准的,虽然这纯粹基于我自己的经验,所以YMMV。然后,事件可以以绝对时间表示(即,关于事件的这个音符从轨道的开始发生4800个滴答)或增量时间。 Delta时间是自上次MIDI事件发生以来的刻度数。
类型:MIDI文件中的每个MIDI事件都有一个类型来标识它是什么类型的事件。这很重要,因为不同类型的事件具有不同的格式(因此改变了我们解码它的方式,因为MIDI是二进制格式),其中一些具有固定长度,而其他事件包括事件有多长的信息(字节数)弥补活动)。
自从我上次使用MIDI格式以来已经过了几年,但我认为上述内容是准确的。