请解析下面的midi文件:4D 54 68 64 00 00 00 06 00 01 00 01 00 78 4D 54 72 6B 00 00 00 3D 00 FF 03 12 46 6F 67 67 79 20 4D 6F 75 6E 74 61 69 6E 20 54 6F 70 00 FF 01 1D 6E 61 6D 65 3A 43 6F 75 6E 74 72 79 2C 43 6F 75 6E 74 72 79 2C CF E7 B4 E5 C0 D6 2C 0A 00 FF 2F 00
时间: 2023-06-09 07:02:20 浏览: 73
这是一个标准的MIDI文件头部。
其中:
4D 54 68 64:MThd 其中 M 代表 MIDI,thd 代表头部(header),64 代表此块数据的长度为 6 个字节。
00 00 00 06:表示此 MIDI 文件有 1 个乐器轨道(即单声道)、时基为 96 个计时器信号(即每一分钟可以播放 96 个指令)。
00 01:表示使用单声道音轨
00 01:表示时基设定为96
除头部外,后面跟着的是一个MIDI的轨道数据块,其中
4D 54 72 6B:MTrk 其中 M 代表 MIDI,trk 代表轨道 (track),72 6B 代表此轨道数据块的长度。
轨道数据中包含以下内容,以 FF为标记位:
00 FF 03 12:标记位 FF 03,代表乐器名称(Sequence/Track Name)。其后 0x12 代表后续数据长度 18(十六进制),即音轨名字长度为 18字节。
46 6F 67 67 79 20 4D 6F 75 6E 74 61 69 6E 20 54 6F 70:ASCII 码表示的音轨名称为 "Foggy Mountain Top"
00 FF 01 1D:标记位 FF 01,代表歌
相关问题
请解析下面MIDI文件: 4D 54 68 64 00 00 00 06 00 01 00 01 00 78 4D 54 72 6B 00 00 00 41 00 FF 03 12 46 6F 67 67 79 20 4D 6F 75 6E 74 61 69 6E 20 54 6F 70 00 FF 01 1D 6E 61 6D 65 3A 43 6F 75 6E 74 72 79 2C 43 6F 75 6E 74 72 79 2C CF E7 B4 E5 C0 D6 2C 0A 00 FF 58 04 04 02 18 08 00 FF 59 02 03 00 00 FF 51 03 07 A1 20 00 FF 21 01 00 FF 2F 00 4D 54 72 6B 00 00 02 AA 00 FF 21 01 00 00 FF 03 0C 42 61 73 73 20 20 20 20 28 42 42 29 00 CA 23 00 BA 0A 40 83 60 5D 00 00 5B 00 00 9A 21 50 81 18 21 00 1C 21 52 32 21 00 0A 28 57 29 28 00 13 28 4B 5A 28 00 1E 28 43 0D 28
该MIDI文件的前8个字节为文件头,依次为4D 54 68 64 00 00 00 06,表示该文件为MIDI文件,文件头长度为6个字节。接下来4个字节00 01 00 01表示MIDI文件有1个音轨,每个音轨包含1个乐器。
接着34个字节为音轨设置,依次为4D 54 72 6B 00 00 00 41 00 FF 03 12 46 6F 67 67 79 20 4D 6F 75 6E 74 61 69 6E 20 54 6F 70 00 FF 01 1D。其中,4D 54 72 6B是音轨开始标志,00 00 00 41表示该音轨包含65个事件。每个事件的格式为:事件类型(第一个字节)+时间戳(后面1-4个字节,根据需要变长编码)+事件内容(剩余字节)。该音轨包含的事件类型有:FF 03表示音轨名称,后面是"MIDI Top";FF 01表示文本事件,后面是名称:"name:Country,Country,中国,";CF E7 B4 E5 C0 D6 2C 0A表示控制器事件,控制器为0xE7,值为0xB4E5C0D6,后面的字节暂未解析;FF 58表示时钟分辨率事件,后面两个字节表示每个四分音符的时钟数,这里是4/2^24,即480。FF 59表示调号事件,后面一个字节表示调号,这里是3,表示升E小调。FF 51表示节拍器事件,后面三个字节分别为2/245、7/32、0,表示每分钟的24分音符数、每个节拍器的时钟数、后面的内容与时间无关,不用解析;FF 21表示MIDI端口事件,后面一个字节表示端口号,这里是0,表示缺省端口;FF 2F 00表示音轨结束标志。其中,4D 54 72 6B 00 00 02 AA是下一条音轨开始标志,后面的字节暂未解析;FF 21 01 00表示MIDI端口事件,后面一个字节表示端口号,这里是0,表示缺省端口;FF 03 0C表示音轨名称,后面是"Bass (BB)"。
接下来是音符数据,格式为:时间戳(1-4个字节,根据需要变长编码)+事件内容,其中,事件内容为字节1-2的编码表示命令(0x80-0xEF表示音符,0xF0之后的命令字节需要使用状态字节),字节3-4表示音符号和力度。根据字节的含义,可以将该MIDI文件转换为乐谱。
请解析下面部分MIDI文件: 4D 54 68 64 00 00 00 06 00 01 00 01 00 78 4D 54 72 6B 00 00 00 41 00 FF 03 12 46 6F 67 67 79 20 4D 6F 75 6E 74 61 69 6E 20 54 6F 70 00 FF 01 1D 6E 61 6D 65 3A 43 6F 75 6E 74 72 79 2C 43 6F 75 6E 74 72 79 2C CF E7 B4 E5 C0 D6 2C 0A 00 FF 58 04 04 02 18 08 00 FF 59 02 03 00 00 FF 51 03 07 A1 20 00 FF 21 01 00 FF 2F 00 4D 54 72 6B 00 00 02 AA 00 FF 21 01 00 00 FF 03 0C 42 61 73 73 20 20 20 20 28 42 42 29 00 CA 23 00 BA 0A 40 83 60 5D 00 00 5B 00 00 9A 21 50 81 18 21 00 1C 21 52 32 21 00 0A 28 57 29 28 00 13 28 4B 5A 28 00 1E 28 43 0D 28
这是一个标准 MIDI 文件的前几个字节,包含了文件头和和一些元数据,具体如下:
- 4D 54 68 64 00 00 00 06 00 01 00 01 00 78: 文件头,标识为 "MThd",后面的 00 00 00 06 表示该 MIDI 文件有 6 个字节。00 01 表示 MIDI 格式为 1,即多轨 MIDI 文件。00 01 表示该 MIDI 文件中的轨道数为 1。
- 4D 54 72 6B 00 00 00 41: 轨道头,标识为 "MTrk",后面的 00 00 00 41 表示该轨道有 65 个字节。后面的字节是轨道的事件,具体内容是:
- FF 03 12 46 6F 67 67 79 20 4D 6F 75 6E 74 61 69 6E 20 54 6F 70: 序列号字符串,表示该 MIDI 文件序列号为 "Foggy Mountain Top"。
- FF 01 1D 6E 61 6D 65 3A 43 6F 75 6E 74 72 79 2C 43 6F 75 6E 74 72 79 2C CF E7 B4 E5 C0 D6 2C 0A: 元事件,具体为 "name:Country,Country,持续时间,开始",其中 "CF E7 B4 E5 C0 D6" 是编码后的 "持续时间,开始" 。
- 00 FF 58 04 04 02 18 08: 节拍事件,具体为 "节拍标志,拍号,每个拍号的时值,n,32分音符的每个时值上的MIDI时钟数"。
- 00 FF 59 02 03 00: 调号事件,具体为 "调号标志,升降号,记号数"。
- 00 FF 51 03 07 A1 20: 时间事件,具体为 "时间码类型,MIDI时钟每个刻度的时间,MIDI刻度每拍的刻度数",其中 "07 A1 20" 是编码后的 "MIDI时钟每个刻度的时间,MIDI刻度每拍的刻度数"。
- 00 FF 21 01 00: 元事件,具体为 "MIDI端口,端口"。
- 00 FF 2F 00: 结束事件,表示该轨道已经结束。
- 4D 54 72 6B 00 00 02 AA: 后续还有一个轨道,并且该轨道有 682 个字节。
- 00 FF 21 01 00 00 FF 03 0C 42 61 73 73 20 20 20 20 28 42 42 29 00: 元事件,具体为 "MIDI端口,端口 | 序列号字符串 | 元数据字符串",其中 "42 61 73 73 20 20 20 20 28 42 42 29" 是编码后的 "Bass (BB)"。
- CA 23 00 BA 0A 40 83 60 5D 00 00 5B 00 00 9A 21 50 81 18 21 00 1C 21 52 32 21 00 0A 28 57 29 28 00 13 28 4B 5A 28 00 1E 28 43 0D 28: 节拍序列,包含了一些 MIDIEVENT,每个 MIDIEVENT 的具体含义需要根据前面的元数据来解析。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)