--------------------------------------------------------------------------------------
1. 缩写: 乐器库的英文为: Musical instrument Libraryn 缩写: MIL 作为文件文件扩展名.mil
--------------------------------------------------------------------------------------
乐器采样库文件格式:
信息头部
第1部分: 1 2E4D494C [32位 4字节] ASCII字符 .MIL (2E4D494C) 文件打开类型识别
2 00000000 [32位 4字节] 校验码 0 不校验 dwCRC
3 00000000 [32位 4字节] 乐器库编码(调用类别检查) dwMilCode
4 0000 [16位 2字节] 采样率 wSamplesPerSec
5 00 [8位 1字节] 声道数 byChannels
6 00 [8位 1字节] 采样位数 byBitsPerSample
7 00 [8位 1字节] 控制类型 (0: 钢琴类型,1: 提琴类型,200: 鼓符类型) byControlType
8 00 [8位 1字节] 块数 byBlockCount
9 0000000000000000000000000000000000000000 [20个字节] 库名 sMilName
10 0000000000000000000000000000000000000000 [20个字节] 制作者 sProducer
11 0000000000000000000000000000000000000000 [20个字节] 版权 sCopyright
12 0000000000000000000000000000000000000000 [20个字节] 版本号 sVersionNumber
------------------------------------------------------------------------------
块属性表
第2部分: 1 00 [8位 1字节] 层数
0000000000000000000000000000000000000000 块名称 [20个字节]
2 地址增长按块数
块起始地址 = 98 字节
块表项长度 = 21 字节
块表项偏移量 = 块起始地址 + 块表项长度 * 查找块
------------------------------------------------------------------------------
层属性表
1 00 [8位 1字节] 力度值
00 [8位 1字节] 力度范围
2 地址增长按层数
层起始地址 = 块起始地址 + 块表项长度 * 块数
层属性表项长度 = 2 字节
层属性表偏移量 = 层起始地址 + 层属性表长度 * 查找层
------------------------------------------------------------------------------
源地址表
1 00000000 [32位 4字节] 地址
00000000 [32位 4字节] 长度
2 地址增长按88符号映射
源表起始地址 = 层起始地址 + 层属性表长度 * 层数
源表属性表项长度 = 8 字节
源表属性表偏移量 = 源表起始地址 + 源表属性表项长度 * 查找源
------------------------------------------------------------------------------
采样数据部分
第3部分: 1 采样数据1,采样数据2,采样数据3,采样数据4,
源起始地址 = 源表起始地址 + 源表属性表项长度 * 源数
源起始地址->填入当前块地址->记录采样数据
当前记录地址 += 采样数据1长度
------------------------------------------------------------------------------