MIDI教室——MIDI介绍
MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。
MIDI是一种电子乐器之间以及电子乐器与电脑之间的统一交流协议。很多流行的游戏、娱乐软件中都有不少以MID、RMI为扩展名的MIDI格式音乐文件。
MIDI文件是一种描述性的“音乐语言”,它将所要演奏的乐曲信息用字节进行描述。譬如在某一时刻,使用什么乐器,以什么音符开始,以什么音调结束,加以什么伴奏等等,MIDI文件本身并不包含波形数据,所以MIDI文件非常小巧。
MIDI教室——MIDI标准
常见的MIDI标准由GM、GS、XG,各标准之间存在着竞争。GS标准是在ROLAND的早期产品MT-32和CM-32/64的基础之上,规定了MIDI设备的同时发音数不得少于24个、鼓镲等打击乐器作为一组单独排列、128种乐器音色有统一的排列方式等。有了这种排列方式,只要是在支持GS标准的设备上制作的音乐,拿到任何一台支持同样标准的设备上都能正常播放。
在GS标准基础上,主要规定了音色排列、同时发音数和鼓组的键位,而把GS标准中重要的音色编辑和音色选择部分去掉了。
GM的音色排列方式基本上沿袭了GS标准,只是在名称上进行修改。XG同样在兼容GM的基础上做了大幅度的扩展,如加入了“音色编辑”的功能,使得作曲家可以在MIDI乐曲中实时地改变乐器的音色;还加入了“音色选择”功能,在每一个XG音色上可以叠加若干种音色。
MIDI教室——MIDI文件的格式
标准文件MIDI文件包含一个或更多MIDI块与每个事件的时间信息。它支持歌曲、序列和音轨结构,拍子和拍号信息。 音轨名字和其他描述信息也可以与MIDI信息一同存储。 这个格式支持多条音轨、多个序列。这种格式可以允许用户从一个音轨移向另一个音轨。用于MIDI文件的8位二进制的数据块可以在一个高的效率传输的MIDI二进制文件中,分解可以存储为7位数据,或被转换成其他的ASCII或者被翻译为一个文本文件。
MIDI序列文件由块组成。 每个块4个字节,有32位长度。数据通过在文件的数据叉,或者在剪贴板上进行传输。 (在Macintosh这个格式的文件类型是" Midi") 块结构允许被忽略跳过。这里定义了块的二种类型: 文件头块和音轨块。 文件头块提供关于整个MIDI文件小的数量信息。 音轨块包含的MIDI数据序列也许包含16条MIDI通道的信息。 使用多个音轨块,就可以用多条音轨、多个MIDI序列、谱式和歌曲。
MIDI文件总是以文件头块开始,紧随其后的是一个或多个音轨块。MTrk块类型是存放实际歌曲数据的地方。它是MIDI事件(和非MIDI事件)的序列。在MTrk块的有些数字是以叫可变长的数量的形式进行存储的。 这些数字首先每个字节用7位,高位不是有效位。 除后一位之外的所有字节,高位设为1;后一个字节高位设为0。 如果数字在0和127之间,它能正确地表示为一个字节。