【BLE MIDI】MIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 )(二)

简介: 【BLE MIDI】MIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 )(二)

3、MIDI 文件格式


00 00 : 8 ~ 9 字节 , 表示 mid 文件的格式 ; 这两个字节是 short 类型整型 , 大端格式 ;


0 : mid 文件只有一条轨道 , 所有的通道都在一条轨道中 ;

1 : mid 文件有多个音轨 , 并且是同步的 , 即所有的轨道同时播放 ;

2 : mid 文件有多个音轨 , 不同步 ;

这里是 0 格式 , 也就是说只有一条轨道 ;


image.png



4、MIDI 轨道个数


00 01 : 10 ~ 11 字节 , 表示 MIDI 轨道个数 , short 类型 , 大端格式 ;


此处表示有一条轨道 , 所有通道的音符和节拍信息都在该轨道中 ;


image.png



5、基本时间


01 E0 : 12 ~ 13 字节 , 用于指定基本时间 ;


2 个字节 , 要拆分成 3 部分 , 最高位 ( 第 15 位 ) 作为标识位 , 第 8 ~ 14 位 作为一部分 , 第 0 ~ 7 位 作为一部分 ;


由于是大端格式排列 , mid 文件第 12 字节 ( 低地址 ) 是 高位 , mid 文件第 13 字节 ( 高地址 ) 是低位 ;


01 E0 的二进制形式如下 : 0000 0001 11110 0000 ;


最高位 0000 0001 11110 0000 是 0 , 红色的是最高位 , 表示当前 代表的事件格式是 类型1 , 第 0 ~ 14 位 代表的是 四分音符的 tick 数 ;


十六进制 01 E0 对应的十进制数字是 480 , 也就是说一个四分音符有 480 tick ;


tick 是时间单位 , 这是 mid 文件中计算时间的最基本单位 ;


image.png

目录
相关文章
|
21天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
1月前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
1月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
3天前
|
Linux Go 数据安全/隐私保护
Linux 中的文件属性解析
在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。
|
11天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
17 1
|
5天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
13天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
42 0
|
13天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
43 0
|
13天前
yolo-world 源码解析(五)(4)
yolo-world 源码解析(五)
46 0
|
13天前
yolo-world 源码解析(五)(1)
yolo-world 源码解析(五)
61 0

推荐镜像

更多