MIDI文件格式详解:头块与轨道块解析

需积分: 10 4 下载量 18 浏览量 更新于2024-09-14 收藏 83KB DOC 举报
"MIDI文件信息" MIDI文件是一种用于音乐数据存储的数字格式,它不是音频文件,而是描述音乐事件的指令集。MIDI文件的结构主要由两部分组成:头块(Header Chunk)和轨道块(Track Chunks)。这种格式允许音乐创作和编辑,因为它可以非常小的体积来表示复杂的音乐作品。 1. 头块(Header Chunk) 头块位于MIDI文件的开头,其主要功能是提供关于文件整体结构的信息。它由固定的字符序列"4D546864"(ASCII码对应"MThd")标识,紧接着是6字节的头块大小,始终为00000006。头块包含以下信息: - 文件格式:用16位的ffff表示,有3种格式: - 0:单轨格式,只有一个轨道。 - 1:多轨同步,所有轨道同步开始,适合同一首歌曲的不同部分。 - 2:多轨异步,轨道可独立开始,不同步。 - 轨道数量:16位的nnnn表示文件中的轨道总数。 - 分辨率(Division):16位的dddd定义了每个四分音符的时间间隔,可以是四分音符的delta-time数或者SMPTE帧率。 2. 分辨率详细说明 - 当bit15为0时,bits0-14表示每个四分音符的delta-time数。 - 当bit15为1时,bits0-7表示SMPTE帧的delta-time数,bits8-14表示每秒的SMPTE帧数,例如-24代表24帧/秒。 3. 轨道块(Track Chunk) - 轨道块是头块之后的内容,由"MTrk"标识,后跟4字节的轨道长度(不包括轨道头)。每个轨道包含一系列的MIDI事件,如音符开/关、控制器消息等,每个事件前都跟着一个delta-time,表示事件相对于前一个事件的时间间隔。 MIDI事件可以包括: - MIDI消息:例如Note On/Off,Controller,Program Change等,这些消息被合成器接收并执行。 - Meta事件:非MIDI标准的元数据,如Tempo Change,Time Signature,Key Signature等。 - System Exclusive(SysEx)事件:用于传递特定制造商的自定义信息。 MIDI文件的优势在于其小巧、可编辑和跨平台兼容性。通过这种方式,MIDI数据可以在各种音乐软件和硬件之间交换,为音乐制作提供了极大的灵活性。