MIDI 文件格式 MIDI 文件结构 Chunks MIDI 文件由 chunks 组成: 每个chunk 的组成: 类型 长度 数据 4 字节 4 字节 (前面规定的)长度 • A 4-字节 chunk 类型 (ASCII) • A 4-byte 长度(32 位, msb first) • (前面规定的)长度数据 有两种类型的 chunks : Header Chunks 有一个chunk 标志“MThd” Track Chunks 有一个chunk 标志“MTrk” 一个 MIDI 文件由一个header chunk 和紧接的一个或多个track chunks 组成
在 chunks 结构中,自长度区以后是严格规定好的
它可能容纳的chunks 除了“MThd”或“MTrk”其它的将被忽略
MIDI 说明书要求软件能够处理意想不到的chunk,并忽略掉整个chunk
类型 长度 数据 MIDI 文件 : MThd 6 MTrk
: MTrk
数值表示法 在MIDI 文件中,除了基本的MIDI 数据,还有一个变化的数据(类型)
如: delta-times 和 meta-events
这里有一些关于这样的数的一些资料,它们有通常有下面 1~ 2 种格式: • 二进制数 • 可变长度数 二进制数 二进制数的存贮: • 每个字节 8 位 • MSB first (最左方的字节权(或数位)大) (除非其它的描述) 可变长度数 这个可变长度数是为了方便表示任意大的整数,而不必创建固定宽度的整数
一个可变长度数被表示为连续的7 位数据
从最高位到最低位,最后一个字节 bit7 等于 0,前面的字节 bit7等于 1
例: 数 可变长度数 十进制 十六进制 二进制 二进制 十六进制 - abcd aaaabbbbccccdddd 100000aa 1aab