MIDI

Admin in 百科 2024-03-23 16:24:26



MIDI技术的基本概念  乐器数字接口(Musical Instrument Digital Interface,MIDI) 是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI 传输的不是声音信号, 而是音符、控制参数等指令, 它指示MIDI 设备要做什么,怎么做, 如演奏哪个音符、多大音量等。它们被统一表示成MIDI 消息(MIDI Message) 。传输时采用异步串行通信, 标准通信波特率为31.25×( 1±0.01) KBaud。
  MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法。
  MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。
  电视晚会的音乐编导可以用MIDI功能辅助音乐创作,或按MI-DI标准生成音乐数据传播媒介,或直接进行乐曲演奏。
  如果在计算机上装备了高级的MIDI软件库,可将音乐的创作、乐谱的打印、节目编排、音乐的调整、音响的幅度、节奏的速度、各声部之间的协调、混响由MIDI来控制完成。
  利用MIDI技术将电子合成器、电子节奏机(电子鼓机)和其他电子音源与序列器连接在一起即可演奏模拟出气势雄伟、音色变化万千的音响效果,又可将演奏中的多种按键数据存储起来,极大的改善了音乐演奏的能力和条件。
  用于连接各种MIDI设备所用的电缆为5芯电缆,通常人们也把它称为MIDI电缆。
  MIDI是一种电子乐器之间以及电子乐器与电脑之间的统一交流协议。很多流行的游戏、娱乐软件中都有不少以MID、RMI为扩展名的MIDI格式音乐文件。
  MIDI文件是一种描述性的“音乐语言”,它将所要演奏的乐曲信息用字节进行描述。譬如在某一时刻,使用什么乐器,以什么音符开始,以什么音调结束,加以什么伴奏等等,也就是说MIDI文件本身并不包含波形数据,所以MIDI文件非常小巧。
  MIDI要形成电脑音乐必须通过合成。早期的ISA声卡普遍使用的是FM合成,即“频率调变”。它运用声音振荡的原理对MIDI进行合成处理,由于技术本身的局限,效果很难令人满意。而现在的声卡大都采用的是波表合成了,它首先将各种真实乐器所能发出的所有声音(包括各个音域、声调)进行取样,存储为一个波表文件。
  在播放时,根据MIDI文件记录的乐曲信息向波表发出指令,从“表格”中逐一找出对应的声音信息,经过合成、加工后回放出来。由于它采用的是真实乐器的采样,所以效果自然要好于FM。一般波表的乐器声音信息都以44.1KHz、16Bit的精度录制,以达到最真实的回放效果。理论上,波表容量越大合成效果越好。根据取样文件放置位置和由专用微处理器或CPU来处理的不同,波表合成又常被分为软波表和硬波表。MIDI系统是如何工作的  MIDI作曲和核配器系统核心部分是一个被称为序列器的软件。这个软件即可以装到个人电脑里,也可做在一个专门的硬件里。序列器实际上是一个音乐词处理器(word porcessor),应用它可以记录、播放和编辑各种不同MIDI乐器演奏出的乐曲。序列器并不真正的记录声音,它只记录和播放MIDI信息,这些信息从MIDI乐器来的电脑信息,就像印在纸上的乐谱一样,它本身不能直接产生音乐,MIDI本身也不能产生音乐,但是它包含有如何产生音乐所需的所有指令,例如用什么乐器、奏什么音符、奏得多快,奏得力度多强等。
  序列器可以是硬件,也可以是软件,它们作用过程完全与专业录音棚里多轨录音机一样,可以把许多独立的声音记录在序列器里,其区别仅仅是序列器只记录演奏时的MIDI数据,而不记录声音;它可以一轨一轨地进行录制,也可以一轨轨地进行修改,当你弹键盘音乐时,序列器记录下从键盘来的MIDI数据。一旦把所需要的数据存储下来以后,可以播放你刚作好的曲子。如果你觉得这一声部的曲子不错,可以把别的声部加上去,新加上去的声部播放时完全与第一道同步。
  作为单独设备的序列器,音轨数相对少一些,大概8~16轨,而作为电脑软件的序列器几乎多达50000个音符,64~200轨以上。
  序列器与磁带不同,它只受到硬件有效的RAM(Random Access Memory随机存储器)和存储容量的限制,所以作曲、配器根本用不着担心“磁带”不够用。MIDI技术的一大优点就是它送到和存储在电脑里的数据量相当小,一个包含有一分钟立体声的数字音频文件需要约10兆字节(相当于7张软盘的容量)的存储空间。然而,一分钟的MIDI音乐文件只有2KB。这也意味着,在乐器与电脑之间的传输数据是很低的,也就是说即是最低档的电脑也能运行和记录MIDI文件。
  通过使用MIDI序列器可以大大地降低作曲和配器成本,根本用不着庞大的乐队来演奏。音乐编导在家里就可把曲子创作好,配上器,再也用不着大乐队在录音棚里一个声部一个声部的录制了。只需要用录音棚里的电脑或键盘,把存储在键盘里的MIDI序列器的各个声部的全部信息输入到录音机上即可。
  MIDI程序的设计目标就是要将所要演奏的音乐或音乐曲目,按其进行的节奏、速度、技术措施等要求,转换成MIDI控制语言,以便在这些MIDI指令的控制之下,各种音源在适当的时间点上,以指定的音色、时值、强度等、演奏出需要的音响。在录音系统中,还要控制记录下这些音响。MIDI所适应的范围只是电声乐曲或模拟其他乐器的乐曲。
  MIDI技术的产生与应用,大大降低了乐曲的创作成本,节省了大量乐队演奏员的各项开支,缩短了在录音棚的工作时间,提高了工作效率。一整台电视文艺晚会的作曲、配器、录音,只需要一位音乐编导、一位录音师即可将器乐作(编)曲、配器、演奏,录音工作全部完成。MIDI概述  MIDI是Musical Instrument Digital Interface的缩写,直接翻译过来的意思就是乐器数字化接口,可以把MIDI理解成是一种协议、一种标准、或是一种技术,但不要把它看作是某个硬件设备。
  MIDI这种播放指令序列文件是乐器数字化接口的简写,是由日本和美国几家著名电子乐器厂商于1983年共同制定的数字音乐/电子合成器的统一国际标准,它的出现解决了各个不同厂商之间的数字音乐乐器的兼容问题!日本罗兰公司于1984年提出了GS标准,大大增强了音乐的表现力。为了更有利于音乐家广泛地使用不同的合成器设备和促进MIDI文件的交流,国际MIDI生产者协会(MMA)在1991年制定了通用MIDI标准——GM,该标准是以日本Roland公司的通用合成器GS标准为基础而制订的。
  GM标准的提出得到了Windows操作系统的支持,使得数字音乐设备之间的信息交流得到了简化,受到全世界数字音乐爱好者的一致好评。随后,YAMAHA公司在GM标准上于1994年推出了自己的XG的MIDI格式,增加了更多数量的乐器组,扩大了MIDI标准定义范围,在专业音乐范围内得到广泛的应用!MIDI的产生与发展  MIDI不是首先出现在计算机里面的,它是由电子乐器生产厂家为了不同型号的电子乐器的“交流”而产生的,由于它采用的是数字化技术,当然自然而然的很容易的与计算机挂上了关系。所以我们要讲MIDI乐器的接口,有三种,MIDI OUT、MIDI IN、MIDI THRU。这些可以在你家里的MIDI乐器或带有MIDI的电子琴(现在的很多电子琴上都有MIDI接口)上找到的。MIDI OUT是将乐器中的数据(MIDI消息)向外发送;MIDI IN就是接收数据啦;至于MIDI THRU嘛,是将收到的数据再传给另一个MIDI乐器或设备,可以说是若干个乐器连接的接口。可以这样说,MIDI所描述的是将MIDI乐器弹奏出的音变成01010一样的数据输出,也可以将计算机中的软件将要表示的音变成01010的二进制数据通过声卡输出,或者接收一些01010的数据进行处理。
  通常一个标准的MIDI有16个通道,GM标准里的第10通道是专为打击乐设定的。
  早期的MIDI设备除了都能接受MIDI信号之外没有统一的标准,尤其是在音色排列的方式上更是“随心所欲”的。也就是说您在这台琴上制作完成的音乐拿到另一台不同型号的琴上播放时会变得面目全非,小提琴可能会变成小号,长笛可能会变成吉他,钢琴可能会变成大鼓……这对于专业音乐人士的工作并不会产生太大的影响,毕竟他们制作一次灌成唱片也就完事儿了,但是对于音乐爱好者之间的交流,尤其是多媒体的发展却极为不利。
  于是著名的日本ROLAND公司于1990年制定出它称之为GS的标准。GS标准是在ROLAND的早期产品MT-32和CM-32/64的基础之上,规定了MIDI设备的最大同时发音数不得少于24个、鼓镲等打击乐器作为一组单独排列、128种乐器音色有统一的排列方式等。在这几项规定中,最重要的就是这128种音色的统一排列方式。有了这种排列方式,只要是在支持GS标准的设备上制作的音乐,拿到任何一台支持同样标准的设备上都能正常播放。
  GS标准的制定本来是一件天大的好事,它使得全世界的电子乐器有了一个“全方位接触”的机会。可是,也许是由于这个标准真的是过于复杂,更可能是由于众多的MIDI设备制造商不愿意形成ROLAND的独霸世界标准的局面,总之最后世界各国的MIDI设备制造商并没有全盘接受这个标准,而是将之稍作改变,泡制出了一个GM标准。
  GM标准的全称应该是“通用MIDI标准系统第一级”(General MIDI system Level1),这个标准制定于1991年,在GS标准基础上,主要规定了音色排列、同时发音数和鼓组的键位,而把GS标准中重要的音色编辑和音色选择部分去掉了。GM的音色排列方式基本上沿袭了GS标准,只是在名称上进行了无关痛痒的修改,如把GS的Piano 1改名为Acoustic Grand Piano等。
  虽然GM标准不如GS那样功能强大,但是它毕竟是世界第一种通用的MIDI乐器排列 的标准,而且正因为它将ROLAND GS标准作了简化,也使得更多的MIDI设备厂商可以制造符合此标准的MIDI设备。所以GM标准刚一制定,就得到了MIDI厂商,尤其是多媒体设备厂商的热烈响应。此后,各大MIDI厂商的设备纷纷被敲上GM的标制,MIDI设备之间实现了比以往更深层次的交流,为多媒体时代的真正到来作好了准备。对于现在的MIDI设备,GM标准是最基本的了。
  另一个MIDI巨头YAMAHA也不甘示弱,他当然不甘于这样一个要求很低的标准,所以YAMAHA于1994年9月提出了自己的音源标准--XG。XG同样在兼容GM的基础上做了大幅度的扩展,如加入了“音色编辑”的功能,使得作曲家可以在MIDI乐曲中实时地改变乐器的音色;还加入了“音色选择”功能,在每一个XG音色上可以叠加若干种音色。
  所以我们目前常见的MIDI标准由GM、GS、XG,它们之间竞争还会继续,当然这指的是GS与XG。
  八十年代初,电脑音乐迎来了第一个真正的繁荣时期,同时也迎来了一个难以解决的问题,那就是各种电子乐器之间的通讯问题:各生产厂家都按照自己的规格生产电子乐器,当您单独使用某一厂家的产品时,您还不会遇到什么问题,可是当您同时使用几家公司的设备构成一个电脑音乐系统的时候,麻烦就来了,您怎么能使一台美国E-MU的音源发出您在日本ROLAND键盘上弹奏的一个标准A呢?
  为了解决电子乐器的通讯问题,1982年,国际乐器制造者协会的十几家厂商(其中主要是美国和日本的厂商)会聚一堂,各抒己见。会议通过了美国Sequential Circuits公 司的大卫.史密斯提出的“通用合成器接口”的方案,并改名为“音乐设备数字接口”,即“Musical Instrument Digital Interface”缩写为“MIDI”,公布于世。1983年,MIDI协议 1.0版正式制定出来。此后,所有的商业用电子乐器的背后都出现了几个五孔的MIDI插座,乐器之间不再存在“语言障碍”,它们同装上MIDI接口的电脑一起,构成了一个更加繁荣昌盛的电脑音乐大家庭。
  实际上, MIDI 本身只是Musical Instrument Digital Interface 的缩写,意思是音乐设备数字接口。 这种接口技术的作用就是使电子乐器与电子乐器,电子乐器与电脑之间通过一种通用的通讯协议进行通讯, 这种协议自然就是MIDI协议了。
  对于搞计算机的人来说, 不妨把MIDI理解成一种局域网,网络的各个部分通过专用的串行电缆(MIDI线)连接, 并以 31.25 KBPS 的速度传送着数字音乐信息。
  MIDI 标准制定以后,开始只是在专业的电脑音乐圈儿里受到重视,但是随着电子技术的不断发展,尤其是近几年多媒体技术的突飞猛进,MIDI 作为多媒的一个重要组成部分,被炒得沸沸扬扬,几乎达到了妇孺皆知的地步。而大家也已经把这种接口技术当作了电脑音乐的代名词,常有“做MIDI”,“玩儿MIDI”的说法,使一些正统的“电脑音乐人” 觉得莫名其妙,啼笑皆非。
  因此, 我们倒不妨将MIDI划分为“狭义MIDI”和“广义MIDI”两种概念,狭义MIDI就是上面所说的音乐设备数字接口,而广义MIDI则是大家已经约定俗成的整个电脑音乐的统称 , 这样即不会造成概念上的进一步混乱,也不会使得MIDI一词失去其本质的含义。
  1985年11月,国际乐器制造者协会公布了《MIDI 1.0版的细节规定》(2.0版至今仍在制定中),重新定义了一些控制器号码。此外,为保证MIDI的健康发展,还专门 成立了“MIDI厂商协会”和“日本MIDI标准委员会”等组织,MIDI标准从成长阶段步入了成熟阶段。
  MIDI标准的成熟使各电子乐器生产厂商更加信心百倍,它们绞尽脑汁、挖空心思,以空前的热情生产出各种电子乐器,有键盘式的(合成器、主控键盘)、弦控式的(MIDI吉他)、敲击式的(鼓机)甚至还有吹奏式的(呼吸控制器),除此之外,还有五花八门的各种音源模块(就是把没有键盘的电子合成器)供人选购。MIDI格式信息  MIDI文件有很多信息构成的指令。一些信息,只由1字节构成,有些有2个字节,还有一些有3个字节。有一类的MIDI信息,甚至可以包含无限的字节数。所有的信息有一点是共同的,那就是第一个字节的信息是状态。
  状态字节的0x80到0xef是可以在16个MIDI通道的任何一个出现的信息。正因为如此,这些是所谓的声音信息。这些状态字节有8位二进制数,可以把8个二进制位分成两个 4位,即一个高位和一个低位 。例如,一个状态字节的0x92可细分成9 (高位 )和2 (低位 ) 。高位告诉你是什么类型的MIDI信息,低位说明信息操作的MIDI通道序号。以下是所有可能的高位值,每个代表的声音信息类型:
  8 =停止发声
  9 =开始发声
  a =轮指
  b =改变控制器
  c =改变音色
  d =通道演奏压力(可近似认为是音量)
  e =音高
  因此,对于我们的例子中的状态,0x92 ,我们看到它的消息类型是开始发声(即高位是9)。低位2是什么意思?这意味着该消息是对MIDI通道2进行的。有16个可能的(逻辑的)MIDI通道, 0作为第一。
  注意:虽然MIDI状态字节计数的16个MIDI通道,作为号码为0到F (即15),所有的MIDI设备(包括计算机软件)显示的通道编号,是1至16。因此,状态字节发出的MIDI通道0被认为是通道1。这之间的差异是因为大部分人计数,是从一开始,而不是从零。
  状态字节的0xf0和0xff是不属于任何特定通道的。这些状态字节是用于给特定设备发送信息,如同步重放设备,以同步时间。 这些状态字节是进一步分为两大类。状态字节的0xf0到0xf7是所谓的系统公用的信息。状态字节的0xf8到0xff被称为系统的实时信息。
  其实,某些状态字节是没有界定的,并保留供以后使用。举例来说,状态字节的0xf4 , 0xf5 , 0xf9到0xfd尚未使用。如果MIDI设备任何时候收到这样的信息,它应忽略这一消息。
  以下描述每个信息类型。
  停止发声
  类别:声音
  目的
  指出要应该停止的音。
  0x80到0x8f而低位是MIDI通道。
  数据
  后续两个数据字节。
  第一个数据是音符号码。有128个音符,对MIDI设备,编号为0至127(其中,中央C是60号)。
  第二个数据字节是速度,一个从0到127的值。这表明,应该多么迅速地停止发声(其中127是最快的)。
  开始发声
  类别:声音
  目的
  指出要发出的声音。
  状态字节
  0x90到0x9f而低位是MIDI通道。
  数据
  后续两个数据字节
  第一个数据是音符代号。有128个音,对MIDI设备,编号为0至127个(其中中央C音符代号是60)。
  第二个数据字节是速度,从0到127的一个值。这表明,用多少力量弹奏。
  一个速度为零的开始发声信息被认为,事实上的一个停止发声的信息
  注意
  在理论上,每个音符最终应由各自的停止发声信息终了。
  轮指
  类别:声音
  目的
  对已经发出的声音连续再弹。
  状态字节
  0xa0到0xaf而低位是MIDI通道。
  数据
  后续两个数据字节。
  第一个数据是音符代号。有128可能的音符,对MIDI设备,编号为0至127个(其中中央C音符代号是60)。
  第二个数据字节是音量的值,从0到127(其中127是强音) 。
  注意
  控制器改变
  类别:声音
  目的
  设定了一个特定控制器的值。状态字节
  0xb0 ,到0xbf而低位是MIDI通道。
  数据
  后续两个数据字节。
  第一个数据是控制器的号码( 0到127)。
  第二个数据字节的值是控制器应设置的值,从0到127 。
  改变音色
  类别:声音
  状态字节
  0xc0,到0xcf而低位是MIDI通道。
  数据
  一个数据字节。这是乐器编号,从0到127 。
  注意
  对MIDI音色 ,定义了一套标准,以便更加兼容。这个规范是所谓的通用MIDI标准。
  就像与MIDI通道0到15之间被显示成1至16,许多MIDI设备从1开始显示代号。在另一方面,这种做法是从来没有规范,一些设备使用截然不同的标准。通用MIDI标准如下:
  General MIDI标准
  PIANO 钢琴
  1 Acoustic Grand Piano 大钢琴
  2 Bright Acoustic Piano 亮音大钢琴
  3 Electric Grand Piano 电钢琴
  4 Honky-Tonk Piano 酒吧钢琴
  5 Rhodes Piano 练习音钢琴
  6 Chorused Piano 合唱加钢琴
  7 Harpsichord 拨弦古钢琴
  8 Clavinet 击弦古钢琴
  CHROMATIC PERCUSSION 半音打击乐器
  9 Celesta 钢片琴
  10 Glockenspiel 钟琴
  11 Music Box 八音盒
  12 Vibraphone 电颤琴
  13 Marimba 马林巴
  14 Xylophone 木琴
  15 Tubular Bells 管钟
  16 Dulcimer 扬琴
  ORGAN 风琴
  17 Hammond Organ 击杆风琴
  18 Percussive Organ 打击型风琴
  19 Rock Organ 摇滚风琴
  20 Church Organ 管风琴
  21 Reed Organ 簧风琴
  22 Accordion 手风琴
  23 Harmonica 口琴
  24 Tango Accordian 探戈手风琴
  GUITAR 吉他
  25 Acoustic Guitar (nylon) 尼龙弦吉他
  26 Acoustic Guitar(steel) 钢弦吉他
  27 Electric Guitar (jazz) 爵士乐电吉他
  28 Electric Guitar (clean) 清音电吉他
  29 Electric Guitar (muted) 弱音电吉他
  30 Overdriven Guitar 驱动音效吉他
  31 Distortion Guitar 失真音效吉他
  32 Guitar Harmonics 吉他泛音
  BASS 贝司
  33 Acoustic Bass 原声贝司
  34 Electric Bass(finger) 指拨电贝司
  35 Electric Bass(pick) 拨片拨电贝司
  36 Fretless Bass 无品贝司
  37 Slap Bass 1 击弦贝司1
  38 Slap Bass 2 击弦贝司2
  39 Synth Bass 1 合成贝司1
  40 Synth Bass 2 合成贝司2
  SOLO STRINGS 弦乐独奏
  41 Violin 小提琴
  42 Viola 中提琴
  43 Cello 大提琴
  44 Contrabass 低音提琴
  45 Tremolo Strings 弦乐震音
  46 Pizzicato Strings 弦乐拨奏
  47 Orchestral Harp 竖琴
  48 Timpani 定音鼓
  ENSEMBLE 合唱或合奏
  49 String Ensemble 1 弦乐合奏1
  50 String Ensemble 2 弦乐合奏2
  51 SynthStrings 1 合成弦乐1
  52 SynthStrings 2 合成弦乐2
  53 Choir Aahs 合唱“啊”音
  54 Voice Oohs 人声“嘟”音
  55 Synth Voice 合成人声
  56 Orchestra Hit 乐队打击乐
  BRASS 铜管乐器
  57 Trumpet 小号
  58 Trombone 长号
  59 Tuba 大号
  60 Muted Trumpet 弱音小号
  61 French Horn 圆号
  62 Brass Section 铜管组
  63 Synth Brass 1 合成铜管1
  64 Synth Brass 2 合成铜管2
  REED 哨片乐器
  65 Soprano Sax 高音萨克斯
  66 Alto Sax 中音萨克斯
  67 Tenor Sax 次中音萨克斯
  68 Baritone Sax 上低音萨克斯
  69 Oboe 双簧管
  70 English Horn 英国管
  71 Bassoon 大管
  72 Clarinet 单簧管
  PIPE 吹管乐器
  73 Piccolo 短笛
  74 Flute 长笛
  75 Recorder 竖笛
  76 Pan Flute 排笛
  77 Bottle Blow 吹瓶口
  78 Skakuhachi 尺八
  79 Whistle 哨
  80 Ocarina 洋埙
  SYNTH LEAD 合成主音
  81 Lead 1 (square) 合成主音1(方波)
  82 Lead 2 (sawtooth) 合成主音2(锯齿波)
  83 Lead 3 (calliope lead) 合成主音3(汽笛凤琴)
  84 Lead 4 (chiff lead) 合成主音4 (吹管)
  85 Lead 5 (charang) 合成主音5(吉他)
  86 Lead 6 (voice) 合成主音6(人声)
  87 Lead 7 (fifths) 合成主音7(五度)
  88 Lead 8 (bass+lead) 合成主音8(低音加主音)
  SYNTH PAD 合成柔音
  89 Pad 1 (new age) 合成柔音1(新时代)
  90 Pad 2 (warm) 合成柔音(暖音)
  91 Pad 3 (polysynth) 合成柔音3(复合成)
  92 Pad 4 (choir) 合成柔音4(合唱)
  93 Pad 5 (bowed) 合成柔音5(弓弦)
  94 Pad 6 (metallic) 合成柔音6(金属)
  95 Pad 7 (halo) 合成柔音7(光环)
  96 Pad 8 (sweep) 合成柔音8(扫弦)
  SYNTH EFFECTS 合成特效
  97 FX 1 (rain) 合成特效1(雨)
  98 FX 2 (soundtrack) 合成特效2(音轨)
  99 FX 3 (crystal) 合成特效3(水晶)
  100 FX 4 (atmosphere) 合成特效4(大气)
  101 FX 5 (brightness) 合成特效5(亮音)
  102 FX 6 (goblins) 合成特效6(小妖)
  103 FX 7 (echoes) 合成特效7(回声)
  104 FX 8 (sci-fi) 合成特效8(科幻)
  ETHNIC 民族乐器
  105 Sitar 锡塔尔
  106 Banjo 班卓
  107 Shamisen 三味线
  108 Koto 筝
  109 Kalimba 卡林巴
  110 Bagpipe 风笛
  111 Fiddle 古提琴
  112 Shanai 唢呐
  PERCUSSIVE 打击乐
  113 Tinkle Bell 铃铛
  114 Agogo 拉丁打铃
  115 Steel Drums 钢鼓
  116 Woodblock 木块
  117 Taiko Drum 太鼓
  118 Melodic Tom 嗵鼓
  119 Synth Drum 合成鼓
  120 Reverse Cymbal 镲波形反转
  SOUND EFFECTS 声音特效
  121 Guitar Fret Noise 磨弦声
  122 Breath Noise 呼吸声
  123 Seashore 海浪声
  124 Bird Tweet 鸟鸣声
  125 Telephone Ring 电话铃声
  126 Helicopter 直升机声
  127 Applause 鼓掌声
  128 Gunshot 枪声
  实际代号应为列表中的代号减1。
  通道的音量
  类别:声音
  状态字节
  0xd0到0xdf而低位是MIDI通道。
  数据
  一个数据字节,值从0到127 (其中127是最响) 。
  音高
  类别:声音
  状态字节
  0xe0到0xef而低位是MIDI通道。
  数据
  后续两个数据字节。这两个字节应结合在一起,形成一个14位值。
  系统专用信息
  类别:系统公用
  目的
  用来传送一些数据,这是具体到一个MIDI设备。此外, sysex可能被用来传递信息,就是特定的装置。
  状态字节
  开始于0xf0 。结束于0xf7。
  数据
  可以有任何数量的数据字节。MIDI文件格式  标准MIDI文件
  MIDI文件包含一个或更多MIDI块与每个事件的时间信息。它支持歌曲、序列和音轨结构,拍子和拍号信息。 音轨名字和其他描述信息也可以与MIDI信息一同存储。 这个格式支持多条音轨、多个序列。这种格式可以允许用户从一个音轨移向另一个音轨。
  用于MIDI文件的8位二进制的数据块可以在一个高效率的传输的MIDI二进制文件中,分解可以存储为7位数据,或被转换成其他的ASCII或者被翻译为一个文本文件。
  1. MIDI序列文件由块组成。 每个块4个字节,有32位长度。 在苹果机上,数据通过在文件的数据叉,或者在剪贴板上进行传输。 (在Macintosh这个格式的文件类型是" Midi") 块结构允许被忽略跳过。
  这里定义了块的二种类型: 文件头块和音轨块。 文件头块提供关于整个MIDI文件的最小数量信息。 音轨块包含的MIDI数据序列也许包含16条MIDI通道的信息。 使用多个音轨块,就可以用多条音轨、多个MIDI序列、谱式和歌曲。 MIDI文件总是以文件头块开始,紧随其后的是一个或多个音轨块。
  MThd
  MTrk
  MTrk …
  音轨数据格式(MTrk块类型)
  MTrk块类型是存放实际歌曲数据的地方。它是MIDI事件(和非MIDI事件)的序列。在MTrk块的有些数字是以叫可变长的数量的形式进行存储的。 这些数字首先每个字节用7位,最高位不是有效位。 除最后一位之外的所有字节,最高位设为1;最后一个字节最高位设为0。 如果数字在0和127之间,它能正确地表示为一个字节。 这作为可变长的数量代表的数字的有些例子:
  数字(十六进制) 变长表示法(十六进制)
  00000000 00
  00000040 40
  0000007F 7F
  00000080 81 00
  00002000 C0 00
  00003FFF FF 7F
  00004000 81 80 00 00
  100000C0 80 00
  001FFFFF FF FF 7F
  00200000 81 80 80 00
  08000000 C0 80 80 00
  0FFFFFFF FF FF FF 7F
  允许的大数是0FFFFFFF,这是以可变长表示法表示的32位的最大数字。 理论上,大数是有可能的,但是实际中不必要。
  MTrk块的句法: = + = < 经过的时间> 被作为一个可变长的量存储。 它代表以下事件之前所要经过的时间。 如果在音轨的第一个事件发生在音轨的开始,或者,如果二个事件同时发生,使用Δt的零。 Δt总是存在。 Δt的具体时间单位,在文件头块上指定。
  = <sysex evene>|<元event> | < MIDI event> 是所有MIDI通道消息。 使用连续状态时: 状态位也许在第一个事件以后被省去。 在文件的第一个事件必须指定状态。 Δt没有被认为是事件: 它是格式的整体部分。
  <元event> 指定非MIDI信息。有用对这个格式,有这样的句法:
  FF 所有阶事件从FF开始,然后有事件类型(总是少于128),然后有作为一个可变长的数量被存放的数据的长度,然后是数据。 如果没有数据,长度是0。
  < sysex event> 使用指定MIDI系统专属消息,或者作为" escape" 指定将被传送的任何任意字节。 不幸地是,一些合成器制造者指定他们的系统专属消息将被作为小包传送。 每个小包作为一则整个语法系统专属消息的部分,但是他们被传送的时间是很重要的。这样的例子是在CZ补丁传送的字节或者FB-01' s " 系统独家新闻" 中,可以传送部分数据。 为了能处理像这样的情况, 两个形式的<sysex event> 被提供了:
  F0 <长度> <数据>
  F7 <长度> <数据>
  在两种情况下, 长度被作为一个可变长的数量存放,等于跟随它的字节数,不包括本身或消息类型(F0或F7),但是包括跟着的所有字节,包括所有在意欲被传送的信息末端的F7。 绝大多数的系统专属消息将使用F0格式。 例如,被传送的消息F0 43 12 00 07 F7在MIDI文件将被存储为F0 05 43 12 00 07 F7。 如上所述,所有信息要求在末端包含F7,以便MIDI文件的处理程序知道它读了全部的信息。 对于特别的情况,当一则唯一的系统专属信息被分开成多段,分到不同的时间传送时, 小包除了最后一个都以F7结束。 不能在多个小包之间传递任何其他的系统专属信息。 例如:
  假设字节43 12 00将首先被传送到F0,紧随着200个时间单位的延迟,再紧随着由字节43 12 00 43 12 00组成的数据,再紧随着100各时间单位的延迟,再紧随着由字节43 12 00 F7组成的数据,这在MIDI文件是这样的: F0 03 43 12 00 81 48
  200个单位的Δt
  81 48 F7 06 43 12 00 43 12 00 64
  100个单位的Δt
  64 F7 04 43 12 00 F7
  F7事件也许也使用作为" escape" 传送任何字节,包括实时字节、歌曲名或者MIDI时间代码,在这个规格通常没有被规定。
  2. 文件头块
  在文件初的文件头块指定在文件中关于数据的一些基本信息。数据部分包含三个16位的字段,首先被存放高位字节(当然)。 这里有完整的块的句法:
  <块类型><块长度><格式><音轨数><分区>
  如上所述,块类型是四个ASCII字符' MThd' ; 随后的长度是一个6 (高位优先的32位数字表示法)。 格式,是指定文件的整体组织。
  格式的只有三种值,指定三种格式:
  0 文件包含一条唯一的多通道音轨
  1 文件包含一个或更多同时的音轨
  2 文件包含一个或更多独立的音轨,相继进行播放
  音轨数,是文件中音轨块的数量。
  分区,是在文件的Δt之中1代表的是一秒的多少分之一。
  格式0 ,多通道的音轨,是最容易转换的数据。应用格式1 的MIDI文件可以很容易转换成这种格式。声音是最重要的东西,格式并不重要。这种转换是非常应该的,这可以化繁为简。
  MIDI文件有可以表达的节奏和拍号的信息。对于0的文件格式,节奏,将分散的存储;对于格式1,节奏必须(在0.04版起)一起储存,作为第一条音轨。这个规定是合理的。
  所有的MIDI文件,应指定节奏和拍号。如果他们不这样做,拍号假设为4 / 4 ,节奏和节拍120每分钟。在格式0中 ,这些元事件应该在开头。在格式1 中,这些元事件应包含在第一个音轨中。在格式2 中,每一独立的音轨,应至少包含一条拍号和节奏的信息。
  3 。元事件
  不是每个程序,都必须支持每一个元事件。元事件最初的定义包括:
  序列数
  FF 00 02 ssss
  这一类事件,必须发生在音轨的开头,在任何非零时间后发生的事件或可传送的MIDI信息之前,用于指定序列的数目。序列数对应在这条音轨的序列数。在一个格式0或1 MIDI文件,其中只包含一个序列,这个数字应包含在第一个音轨。
  文字事件
  FF 01 长度 文字
  任何数量描述任何事情的文字。在音轨开头放上这条音轨的相关的所有信息是很好的,这有助于日后查看。文本事件也可能发生在其他时间,被用来作为歌词。在此事件中文本应用可打印的ASCII字符进行书写。
  元事件类型01到0F的是预留给各种类型的文本使用的,但使用的目的各不相同:
  版权公告
  FF 02 长度 文本
  载有版权声明,作为打印ASCII文本。文本中应包含字符( c ),版权所有的时间,版权所有者。如果几段音乐是在同一个MIDI文件中,所有的版权声明应放在一起,把它放在文件的开头。这个事件应该是第一个事件,在时间0放在第一条音轨块。
  序列/音轨的名称
  FF 03长度 文本
  乐器名称
  FF 04长度 文本
  说明该类型的乐器将用于在这一条音轨中使用。
  歌词
  FF 05长度 文本
  写明歌词。一般来说,每个音节将是一行单独的歌词,应该写清时间
  标记
  FF 06长度 文本
  通常在一个格式0的音轨,或在格式1的第一个音轨。
  注释点
  FF 07长度 文本
  描述一些在这一点上发生在电影或视频屏幕或舞台的动作或事件
  音轨终止
  FF 2F 00
  此事件必须的,以便确定的结束点。
  设定速度,以毫秒(ms)为单位,是四分音符的时值
  FF 51 03 tttttt
  这个事件可以精确的写清楚这条音轨的速度。 用每拍所占的时间而不是单位时间内的拍数表示速度,使得依据一个基于时间的同步协议(例如SMPTE时间代码或MIDI时间代码)实现时间的绝对同步成为可能。 这种准确性使四分钟左右的曲子在每分钟的120拍下结束时,时间误差在500 微秒之内。
  SMPTE 时间同步
  FF 54 05 hr mn se fr ff
  这一事件,如果存在的话,将指定某一个特定事件开始的SMPTE时间。它应出现在音轨的开头,在任何非零时间后发生的事件或可传送的MIDI信息之前。
  拍号标记
  FF 58 04 nn dd cc bb
  拍号表示为四个数字。nn和dd代表分子和分母。分母指的是2的dd次方,例如,2代表4,3代表8。cc代表一个四分音符应该占多少个MIDI时间单位,bb代表一个四分音符的时值等价于多少个32分音符。
  因此,完整的 6 / 8拍号应该表示为
  FF 58 04 06 03 24 08
  这是, 6 / 8拍号( 8等于2的三次方,因此,这里是06 03),四分音符是32个MIDI时间间隔(十六进制24即是32),四分音符等于8个三十二分音符。
  谱号信息
  FF 59 02 sf mf
  sf指明乐曲曲调中升号、降号的数目。例如,A大调在五线谱上注了三个升号,那么sf=03。又如,F大调,五线谱上写有一个降号,那么sf=81。 也就是说,升号数目写成0x,降号数目写成8x
  mf指出曲调是大调还是小调。大调mf=00,小调mf=01
  对于序列器的元数据
  FF 7F长度 数据
  特殊要求,尤其是时序可能会使用此事件类型:第一个字节或字节的数据是一个制造商的ID 。
  作为一个例子, 把一个MIDI文件摘录如下所示。
  内容的MIDI流所代表的这个例子,细分在这里:
  Δt(十进制) 事件号(十六进制) 其他数据(十进制) 说明
  0 FF 58 04 04 02 24 08
  0 FF 51 03 500000
  0 C0 5 通道1, 音色5
  0 C1 46 通道2, 音色46
  0 C2 70 通道3, 音色70
  0 92 48 96 通道3 开始弹奏C2, 用力
  0 92 60 96 通道3 开始弹奏C3, 用力
  96 91 67 64 通道2 开始弹奏G3, 用力
  96 90 76 32 通道1 开始弹奏E4, 钢琴
  192 82 48 64 通道3 停止弹奏C2, 标准
  0 82 60 64 通道3 停止弹奏C3, 标准
  0 81 67 64 通道2 停止弹奏G3, 标准
  0 80 76 64 通道1 停止弹奏E4, 标准
  0 FF 2F 00 结束
  整个格式0 的MIDI文件的内容,首先,文件头块:
  4D 54 68 64 MThd
  00 00 00 06 块长度
  00 00 格式 0
  00 01 一个音轨
  00 60 一个MIDI时间间隔等于96分之一秒
  接着,音轨块,
  4D 54 72 6B MTrk
  00 00 00 3B 音轨长度(59字节)
  时间 事件
  00 FF 58 04 04 02 18 08 拍号4/4
  00 FF 51 03 07 A1 20 速度
  00 C0 05
  00 C1 2E
  00 C2 46
  00 92 30 60
  00 3C 60
  60 91 43 40
  60 90 4C 20
  81 40 82 30 40
  00 3C 40
  00 81 43 40
  00 80 4C 40
  00 FF 2F 00 终止
  类似的,可以把这个文件写成1格式。
  MIDI格式在网络传送中,通常采用7位数据传送方式,这样可以大大提高传输速度。
  MIDI格式由于体积很小,非常便于传送;而且,由于它很有利于创作音乐,是很多作曲家在创作初期的首选。
  MIDI格式由于其特殊的记录方式,受硬件影响较大。
  MID格式文件很容易被人误解,很多人在电脑上直接播放MID后总会说“MID音质特别差”。这里再次要强调一遍,MID文件不是音频文件,它的作用只相当于一个文本文档,记录了音乐该如何进行。MIDI回放音色完全取决于声卡,之所以在windows系统上播放MID不能取得良好效果是因为系统自带的音色库比较简单。如果需要得到很不错的音色,则另需加装专业软音源插件,一块专业声卡也是必不可少的。

免责声明:本站文字信息和图片素材来源于互联网,仅用于学习参考,如内容侵权与违规,请联系我们进行删除,我们将在三个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)

-- End --