MIDI文件结构分析及生成方法
日期:2007年8月7日 作者: 查看:[大字体 中字体 小字体]-
从网上找的,已经将用BC写的改成了VC的,由于对音乐的理解比乐盲还差,对于程序中转换是否有问题我也不得而知,反正用VC生成的MIDI文件听起来惨不忍睹。
对于制作MIDI音乐来说,比播放MIDI文件本身更复杂得多。我们得了解一些乐理常识和MIDI文件结构。
一、MIDI文件结构分析 MIDI文件包含首部块(Header Chunk)和音轨块(Track Chunk)两部分。其格式一般如下:
MThd <数据长度> <Header数据> //首部块
.......
Mtrk <数据长度> <Track数据> //音轨块
Header Chunk 结构为:
char MidiId[4];
long length;
int foarmt;
int TrackNum;
int division;其中:
MidiId称为MIDI文件头标志,一般将其设置为MThd;
length为文件首部数据长度(除它本身和文件头标志占用的字节以外),通常它设置为6,即format,TrackNum和division共占用的字节数据长度;
format表示MIDI文件存放的格式,当前只有3种格式:
0 表示MIDI文件只有一个Track Chunk;
1 表示MIDI文件只有一个或多个Track Chunk;
2 表示MIDI文件只有一个或多个各处独立的Track Chunk。
division指定计数的方法,一种随时间计数(最高位设置为0时),另一种使用制式的时间码(最高位设置为1时)。这里,主要介绍随时间计数的一种格式。其各位意义如下:┌─┬─────────┐
│0 │ 每一拍的计数值 │
└─┴─────────┘
b15 b14  ̄ b0其最高位一定要设置为0,其它的15位表示每一拍的计数值。如该数据为96(以八分音符为一拍),则表示一个四分音符延时数应该为192。
另外,在MIDI文件中,long和int型数据均将高字节值存放入低地址上,如一个long型数据为0x45678,则在文件中,存放的结果为:0x00,0x04,0x56,0x78。而在内存中,int,long的变量值通常将崐高字节值存放高地址上。因此,存放数据时,应该作一下调整。
Track Chunk为用来播放歌曲的数据信息。每一个Track Chunk是一组简单的MIDI码(包括一些非MIDI码)的集合。它又由头部信息和崐若干个Mtrk event组合而成。
头部结构和意义为:
char TrackChunkId[4]; //Track Chunk标志MTrk
long TrackChunkMsgLength; //该Track Chunk信息长度而Mtrk event是由时间计数值(dela-time)和event(MIDI码信崐息)组合成的。即:
<Mtrk event>=<dela-time> <event>
<dela-time>使用可变长度的形式存储数据,它代表处理event之前要计数时间值。 它在音乐中,即表示拍数。通常音乐开始演奏时,总是将计数时间值设置为0。为了能连续处理两个event,我们可以将deta-time设置为0。如:3和5同时演奏2拍(每一拍计数值为24),可以设置如下:
deta-time event
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页
-
- MIDI文件结构分析及生成方法 相关文章:
- ·魔法门6攻略补遗
- ·ADSL猫 路由设置方法
- ·魔法门7 攻略解析
- ·最详细的黑客入门法则
- ·QQ空间开场动画免费拿的方法
- ·查找对方IP地址的一些方法
- ·巧妙破解Win XP的登录密码简法
- ·QQ挂号升级方法
- ·用Excel两步制作“乘法口诀表”
- ·劳动法相关小案例:病假工资如何计算?
- MIDI文件结构分析及生成方法 相关软件
- ·中国法律法规大全(电子版) V3.3
- ·魔法门之英雄无敌2(Heroes of Might and Magic 2) 简体中文黄金版
- ·微软拼音输入法 2007
- ·慧视小灵鼠(用鼠标手写输入法)
- ·法语助手 2007 V7.0
- ·魔法水滴
- ·魔法门英雄无敌3全集
- ·魔法树枝2(Fiber Twig 2)
- ·数据结构与算法
- ·新笔画输入法 V6.5 豪华版
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:QQ秀常见使用问题疑难解答
精品推荐
热点TOP10
- ·p8:电影还是边下边看的好
- ·APE文件如何播放?如何把APE转制成其他格式?
- ·DVD格式转换利器DVD Copy
- ·APE歌曲的播放、转换和刻录
- ·将多种音乐格式转换为MP3
- ·MPEG、RM、WMV电影文件格式转换指南
- ·MIDI文件结构分析及生成方法
- ·酷我音乐盒独家秘籍偷偷报
- ·PPS网络电视播放器常见问题解答
- ·影视点播生力军:PP点点通(365)点播
- ·光影魔术手nEOiMAGING 0.24视频教程连载
- ·剪辑数字影像 影像编辑软件大荟萃
- ·光盘无法自动播放是什么原因?
- ·世界杯视频我做主—用“会声会影”剪辑视频
- ·Cooledit软件安装及录音方法
- ·将网络电视录制下来慢慢看
- ·手机铃声格式规范,midi格式规范
- ·常见视频文件格式有哪些
- ·与DVDrip的亲密接触制作篇:DVD转换为DVDrip
- ·用Nero制作音视频光盘
特别推荐
- ·PPS网络电视播放器常见问题解答
- ·定制个性化的暴风影音播放器
- ·普通光驱也看DVD 谈DVDRip影片的播放
- ·跳过RealPlayer 11安装中的CNNIC
- ·常见视频文件格式有哪些
- ·KuGoo(酷狗)使用最常见问题解答
- ·一键下载视频!震撼的RealPlayer 11
- ·RealPlayer多重娱乐多重享受
- ·酷我音乐盒独家秘籍偷偷报
- ·修复PPStream不能使用的现象
- ·边听边唱 Realplayer打造歌词新时代
- ·暴风影音新酷技巧大全
- ·我的声音 我作主
- ·两则小技巧免费升级“超级播霸”
- ·剪辑数字影像 影像编辑软件大荟萃
- ·玩转主流播放软件的歌词插件
- ·有问必答-视频有声无画面怎么办
- ·快速将RM文件转为MP3文件的利器
- ·世界杯视频我做主—用“会声会影”剪辑视频
- ·能播放不完整视频文件的播放器
