发布网友 发布时间:2024-02-21 11:24
共1个回答
热心网友 时间:2024-02-22 21:27
MIDI是二进制格式的文件。
这种文件的基本结构一般是“文件头+数据描述”,文件头一般包括文件的类型;而MIDI的数据是由若干个格式相同的子数据构成的,这些子数据在多音轨的格式中记录了一个轨道的所有信息。
MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法,用于连接各种MIDI设备所用的电缆为5芯电缆,通常人们也把它称为MIDI电缆。MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。
从一个MIDI设备传送到另一个MIDI设备上去的数据就是MIDI信息。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。MIDI是一种电子乐器之间以及电子乐器与电脑之间的统一交流协议。很多流行的游戏、娱乐软件中都有不少以MID、RMI为扩展名的MIDI格式音乐文件。
MIDI文件构成
1、MIDI的数据是由若干个格式相同的子数据构成的,这些子数据在多音轨的格式中记录了一个轨道的所有信息。多加一个音轨,就简单地把数据追加在前一音轨的后面就可以了,不过不要忘记更改文件头中的nn nn(轨道数)。
2、先看全局音轨。全局音轨包括歌曲的附加信息(比如标题和版权)、歌曲速度和系统码(Sysx)等内容。
3、不管是全局音轨还是含有音符的音轨,都以“4D54726B”开头,它其实是ASCII字符“MTrk”,其后跟着一个4个字节的整数,它标志了该轨道的字节数,这不包括前面的4个字节和本身的4个字节。这一点,我们可以在后面的例子中去理解。
4、接着就是记录数据的地方了,每一个数据有着相同的结构:时间差+事件。所谓时间差,指的是前一个事件到该事件的时间数,它的单位是tick(MIDI的最小时间单位)。它的构成比较特殊,这里要用二进制来说明。