MIDI文件格式详解:头块与轨道块解析
需积分: 10 18 浏览量
更新于2024-09-14
收藏 83KB DOC 举报
"MIDI文件信息"
MIDI文件是一种用于音乐数据存储的数字格式,它不是音频文件,而是描述音乐事件的指令集。MIDI文件的结构主要由两部分组成:头块(Header Chunk)和轨道块(Track Chunks)。这种格式允许音乐创作和编辑,因为它可以非常小的体积来表示复杂的音乐作品。
1. 头块(Header Chunk)
头块位于MIDI文件的开头,其主要功能是提供关于文件整体结构的信息。它由固定的字符序列"4D546864"(ASCII码对应"MThd")标识,紧接着是6字节的头块大小,始终为00000006。头块包含以下信息:
- 文件格式:用16位的ffff表示,有3种格式:
- 0:单轨格式,只有一个轨道。
- 1:多轨同步,所有轨道同步开始,适合同一首歌曲的不同部分。
- 2:多轨异步,轨道可独立开始,不同步。
- 轨道数量:16位的nnnn表示文件中的轨道总数。
- 分辨率(Division):16位的dddd定义了每个四分音符的时间间隔,可以是四分音符的delta-time数或者SMPTE帧率。
2. 分辨率详细说明
- 当bit15为0时,bits0-14表示每个四分音符的delta-time数。
- 当bit15为1时,bits0-7表示SMPTE帧的delta-time数,bits8-14表示每秒的SMPTE帧数,例如-24代表24帧/秒。
3. 轨道块(Track Chunk)
- 轨道块是头块之后的内容,由"MTrk"标识,后跟4字节的轨道长度(不包括轨道头)。每个轨道包含一系列的MIDI事件,如音符开/关、控制器消息等,每个事件前都跟着一个delta-time,表示事件相对于前一个事件的时间间隔。
MIDI事件可以包括:
- MIDI消息:例如Note On/Off,Controller,Program Change等,这些消息被合成器接收并执行。
- Meta事件:非MIDI标准的元数据,如Tempo Change,Time Signature,Key Signature等。
- System Exclusive(SysEx)事件:用于传递特定制造商的自定义信息。
MIDI文件的优势在于其小巧、可编辑和跨平台兼容性。通过这种方式,MIDI数据可以在各种音乐软件和硬件之间交换,为音乐制作提供了极大的灵活性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-06-22 上传
2022-09-23 上传
337 浏览量
2013-05-15 上传
2010-11-09 上传
zhaonagood
- 粉丝: 0
- 资源: 1
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析