【BLE MIDI】MIDI 文件格式分析 ( FF 58 04 拍号 | 音符开指令 | 音符关指令 | 音轨结束标志 )
前言
在博客 【BLE MIDI】MIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 ) 分析了 MIDI 文件的前 0 ~ 13 个字节 ;
4D 54 68 64 00 00 00 06 00 00 00 01 01 E0
- 1
在博客 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 中 , 分析了轨道中的如下选中信息 ,
4D 54 72 6B 00 00 00 25 00
- 1
【BLE MIDI】MIDI 文件格式分析 ( FF 03 轨道名称 | FF 51 03 四分音符时长 ) 博客分析了 轨道名称 , 以及 四分音符时长 指令 ;
一、FF 58 04 拍号
FF 58 04 04 02 18 08
: 39 ~ 45 字节 , 拍子记号 ;
FF 58 04 是拍子记号的标志 ;
04 02 18 08 分别表示 :
- 04 : 拍子记号的分子 ;
- 02 : 拍子记号分母标志 , 这里的值是 2 的次幂值 , 如当前设置的值是 2 , 则拍子记号的分母是 2 2 = 4 2^2 = 4 22=4 , 分母是 4 ;
- 18 : 每个 MIDI 时钟包含的 tick 数 ; 标准值是 24 , 一般不会改变 ;
- 08 : 每 24 个 MIDI 时钟 , 对应的 32 分音符的数目 ; 标准值是 8 , 一般不会改变 ;
后面的 00 是 delta-time , 与下一个 midi 事件间隔的 tick 数 ;
delta-time 参考 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 四、delta-time 间隔 博客章节 ;
二、音符开指令
90 3C 64
: 47 ~ 49 字节 , 音符开指令 ;
90 是音符开标志 ;
3C 是音符音高 60 , 取值范围 0 ~ 127 ;
64 是音符的力度值 , 取值范围 0 ~ 127 ;
后面的 8E 7E 是 delta-time , 与后面的指令间隔的 tick 数 ;
delta-time 参考 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 四、delta-time 间隔 博客章节 ;
三、音符关指令
80 3C 40
: 52 ~ 54 字节 , 音符关指令 ;
80 是音符开标志 ;
3C 是音符音高 60 , 取值范围 0 ~ 127 ;
40 是音符的力度值 , 取值范围 0 ~ 127 ;
后面的 00 是 delta-time , 与后面的指令间隔的 tick 数 ;
delta-time 参考 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 四、delta-time 间隔 博客章节 ;
四、音轨结束标志
FF 2F 00
: 56 ~ 58 字节 , 音轨结束标识 ;
至此 , 整个 midi 文件解析完毕 ;
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/120879872
- 点赞
- 收藏
- 关注作者
评论(0)