zgycgc 发表于 2013-11-28 10:02:03

MIDI基础知识

MIDI基础知识

一、关于MIDI的几个初步概念

  在切入正题以前让我们首先来简单地认识一下MIDI,了解几个初步的概念。这对于我们了解波表合成技术可以起到“引航”地作用。

  1.MIDI简介

  MIDI是Musical Instrument Digital Interface的简称,意为音乐设备数字接口。它是一种电子乐器之间以及电子乐器与电脑之间的统一交流协议。从80年代初问世至今,它经历了长时间的发展,现已成为电脑音乐的代名词。我们可以从广义上将为理解为电子合成器、电脑音乐的统称,包括协议、设备等等相关的含义。

  2.三个标准

  由于早期的MIDI设备在乐器的音色排列上没有统一的标准,造成不同型号的设备回放同一首乐曲时也会出现音色偏差。为了弥补这一不足,便出现了GS、GM和XG这类音色排列方式的标准。

  之所以将GS排在第一位是由于它最早出台,并且是由业界大名鼎鼎的ROLAND公司制定并推出的。ROLAND是日本非常出名的电子乐器厂商,其生产开发的电子键盘、MIDI音源以及软波表都享有盛誉。所以GS颇具权威性,它完整的定义了128种乐器的统一排列方式,并规定了MIDI设备的最大复音数不可少于24个等详尽的规范。

  GM标准则是在GS的基础上,加以适当简化而成的。由于它比较符合众多中小厂商的口味,一时间成为了业界广泛接受的标准。

  在电子乐器方面唯一可与ROLAND相匹敌的YAMAHA公司也不甘示弱,于94年推出自己的标准——XG。与GM、GS相比XG提供了更为强劲的功能和一流的扩展能力,并且完全兼容以上两大标准。而且凭借YAMAHA公司在电脑声卡方面的优势,使得XG在PC上有着广阔的用户群。

  3.MIDI文件的本质

  眼下在一些游戏软件和娱乐软件中我们经常可以发现很多以MID、RMI为扩展名的音乐文件,这些就是在电脑上最为常用的MIDI格式。有的朋友可能会惊奇的发现,一首4分钟左右长度的MIDI,其容量只有百余K字节。而同样长度的波形音乐文件(*.WAV)则高达40MB左右,即使是经过高比例压缩处理的MP3也要有4MB大小,相比之下为什么MIDI会如此小巧玲珑呢?因为MIDI文件并非像WAV或MP3那样量化的纪录乐曲每一时刻的声音变化,它只是一种描述性的“音乐语言”,只要将所要演奏的乐曲信息表述下来就可以了。譬如“在某一时刻,使用什么乐器,以什么音符开始,以什么音调结束,加以什么伴奏”等等,这些信息所占用的几十K空间对于如今大容量的硬盘来说只是沧海一粟罢了。而且小巧的体积也成为MIDI越来越受到欢迎的因素之一。

  4.MIDI文件的回放合成手段

  既然MIDI文件只是一种对乐曲的描述,本身不包含任何可供回放的声音信息,那么一首首动听的电脑音乐又是如何被我们的声卡播放出来的哪?这就要通过形式多样的合成手段了。就电脑声卡而言,最为常见的手段是FM合成与波表合成。前者多用于以前的ISA声卡,FM是“频率调变”的英文缩写,它运用声音振荡的原理对MIDI进行合成处理。但由于技术本身的局限,加上这类声卡采用的大多数为廉价的YAMAHA OPL系列芯片,效果自然很差劲;而波表合成则要好得多。

二.MIDI合成技术

  1. FM合成

  FM合成是根据傅立叶原理——一个任何形状的波形都可以用几个正弦波的叠加来解释。它通过正弦波来模拟各种乐器的波形。但是由于民用市场上,声卡的FM振荡器只有2到3个,因此导致效果很差,坏了FM的名声。实际上,专业领域中FM一般有20个左右的振荡器,效果已经很好了。

  2.采样合成

  提到波表合成,就必须先提到采样。采样通常说来就是一段声音的样本,比如说钢琴中央C的声音。假设如果所有的声音都可以被记录下来,那么当合成时,只需要回放声音样本就可以了。因此,如果可以的话,你可以完全记录下钢琴88个键的声音,到时候回放波形就可以了,效果会很逼真,不是吗?

  3.波表合成

  采样合成的优点是可以提供最完美的还原效果,但是有一个很大的缺点——容量问题,设想一个乐器——如钢琴,有88键,还有各种不同的音量,那么采样的总量将达到88*N个,假设一个采样需要1MB,这么多的采样需要多大?因此,波表合成产生了。波表合成就是通过一定的算法用有限个真实的采样模拟无限种采样的效果——即真实乐器的效果。波表合成对采样进行升调,降调,增益(提高音量)或衰减(减少音量)的处理,然后输出处理后的波形。波表合成的缺点之一是有些设备的波表是固定的,无法更换。

  4.物理建模合成

  物理建模合成——就是通过建立一个真实乐器的声学模型来模拟真实乐器发声。由于采用的大量的数学和物理模型,因此不需要采样,但是需要极为强大的运算能力。物理建模对于吹管乐器以及弦乐器的还原效果极好!但是也是有缺点的。如果说采样的缺点在于“死”,那么物理建模合成的缺点在于模型太普遍了,无法描述特定乐器的一些特殊个性。比如不同牌子的钢琴和小提琴音色就不同。

三.MIDI合成的现在与未来

  1.SoundFont

  SoundFont是如今民用音乐制作领域中普遍采用的一种采样合成技术,特点就是可以随意更换波表和采样,因此这种技术拥有无穷的扩展力。除了创新AWE32级别以上的声卡支持Soundfont,现在很大一部分合成软件也支持Soundfont了。

  2.GIGA Studio

  这是目前专业领域风头正劲的软采样,它的特点或者说是唯一的优点就是在于可以提供对GB容量级别的采样的支持(好恐怖……)。GigaStudio由于使用了GSIF接口,配合使用此接口的声卡可以达到几乎实时的合成响应速度,只需要配上一块支持GSIF的音频卡,MIDI合成与采样就变得如此简单方便。

  3.插件音源

  也是软件采样或波表的一种,格式主要有VSTi和DXi。即在Cubase或Cakewalk Sonar中使用的音源。
MIDI发展到现在,已经达到了很高的境界。目前MIDI合成部分可以说是“软”风劲吹。现在的音乐家已经越来越依赖于MIDI合成乐器而不是真实乐器了,可以说,再过两年,MIDI乐器的前景将会变得明朗。

四.MIDI合成器音色质量与合成器性能的衡量标准

  1.容量

  理论上,一个音色的容量越大,还原越真实。因此,容量对于MIDI合成器的好坏是个很重要的衡量标准。

  2.复音数

就是一个设备可以同时发出多少个声音,比如Sound Blaster Live!宣称它的复音数为1024,也就是可以同时发出1024种声音。

  3.算法及其他

  除了以上的两条,最重要的就是算法了。可以说,一个MIDI合成器的好坏,采样决定60%,算法决定40%。看待算法的很显著特征就是看它可以提供多少个参数。一般来说,参数越多,可供调节的余地越大,效果也就越好。

五.电脑音乐系统的组成

  一个最简单的电脑音乐系统是由一台电脑,一个硬件合成器(或软件合成器或音源),一个MIDI键盘(输入设备)。总花费在2万多元,如果使用软件合成器,花费还会更少。

  下面介绍一下各种设备:

  1、合成器(Synthesizer):传统意义上是用振荡器(Oscilator)来产生声音的一种电子乐器。通过对振荡器产生的波形进行各种处理,可以合成新的音色,因此称之为合成器。
  2、音源(Tone Generator):如果把合成器的键盘部分去掉,只剩下发声模块,就称之为音源。
  3、采样器(Sampler):合成器和音源的内置音色一般是固定的,不能更换的。如果音色可以像CD一样更换,岂不是更好?于是,采样器就诞生了。采样器不单是可以更换音色的音源,还拥有采样功能


Keyboard杂志老资格编辑Jim Aikin在纪念MIDI诞生20的时候发表一篇文章,讲述MIDI使用中经常遇到的20个概念,虽然都是“老生常谈”,不少MIDI老手对其中一些问题也不见得十分明确,更不要说才入门的新手了。因此中音网把这篇文章译出来帮大家复习一下。

   1)MIDI发送演奏指令而不是声音
   当你在MIDI键盘上按下一个琴键,你不是在制造一个声音而是发出一条MIDI指令,叫做Note on(音符开)信息。至于这个信息能发什么声音,完全取决于电缆另一端的MIDI乐器(如果有的话)。MIDI电缆里完全没有音频数据。
   2)In对Out;Out对In
   许多MIDI设备的后面板带有3个MIDI插座:In、Out、Thru。连接设备的时候,主键盘的Out将连接到希望接收信息设备的In。MIDI设备可以做链形连接,使主键盘(或电脑等)发送的信息传送到连接的各个设备。链形连接的时候主键盘的Out连接到下一个设备的In,然后从它的Thru连接第三个设备的In,再从Thru连接第四个设备的In……如此连接。
   3)过多的Thru使数据劣化
   通过Thru口连接4或5台以上设备不是好主意。数字信号多次Thru之后累加的延迟容易使挂在链路后端的设备发生错码或其他意外情况。
   4)MIDI通讯是单方向的
   不像许多现代的数字通讯例如USB等,MIDI电缆中的信息只向一个方向流动。如果你希望两台设备之间能够对话(传送系统专用信息时经常用到),就需要把各自的Out接到对方的In。
   5)MIDI用串行格式传送数据,速度相当快
   在MIDI电缆中同一时间只能传送一个比特,技术上称为串行通讯。MIDI字节包含10个比特而不是常用的8比特。MIDI每秒传送31250比特,或者说3125字节。
   下面将要讲到,一个MIDI音符开信息包含3个字节,不到1毫秒就发送完毕。即使一个20音的和弦也将在20毫秒之内先后发声,人类的听觉几乎不能感觉到这样微小的时间差异。
   6)16通道共享同一条电缆
   MIDI规定定义了两类信息——系统信息和通道信息。实际的音乐演奏信息(音符、控制器、弯音等)是通道信息格式。MIDI定义一条电缆同时可以传送16条通道,如果需要更多通道,就要使用更复杂的电缆设置。例如你的电脑配备了8个端口的接口,同时传送的通道数就可以达到16×8=128。
   一些合成器可以同时接收32通道,这时就需要2个MIDI输入口(或者其他形式的接口,如USB等)。
   7)两种MIDI同步
   最早的MIDI规定定义了时钟信息以及停止、开始、继续,乐曲位置指针等信息,使2台音序器能够同步运行。每个四分音符发送24个时钟信息,因此它是随速度而变化的。时钟信息是很简单的单字节标记,并不包含时间、位置等信息。
   更复杂的同步信息要使用MIDI Time Code(MIDI时间码,简称MTC),这是SMPTE同步码在MIDI的表现方法,它能够提供乐曲演奏的时间信息,但是不包含速度信息。如果两个用MTC同步的音序器工作在不同的速度,尽管有很好的同步,它们的音乐还是会逐渐岔开。
   8)中央C编号60
   MIDI为各通道定义了128个音符,中央C编号为60,5个八度的键盘编号可能就是36到96。但是音序器没有统一的规定,有的音序器显示60号音符为C3,另一些则为C4,并不统一。
   9)MIDI音符开的3个字节包含4类信息
   第一个字节包含状态(说明这一信息是什么性质的)和通道号1-16;第二字节是音符编号0-127;第三字节表示力度0-127。
   10)力度0就是音符关(Note off)
   有两种方法可以关闭已经打开的音符:一种是发送音符关信息;另一种是发送力度为0的音符开信息。当然这两种方法都必须包含相应的音符编号和通道号,否则就不能达到目的。除了力度0被借用来代表音符关,音符开的力度范畴变成1-127以外,这两种方法在音乐上并无区别,不过算起细账来后者能节省信息量。原来MIDI有一个“运行状态”,规定前后信息的状态完全一致的时候,后面的信息可以省略状态字节。如此算来一开一关是不同的状态,需要6个字节;两个开(第二个开力度为0,实际是关)状态相同,5个字节就够了。在发送一大片连续的快速音符时,运行状态可以有效降低MIDI信息的传送密度。
   11)连续控制器并不连续
   MIDI通道信息设置了128个连续控制器信息(Continuous Controller经常简写为CC),主要用来表示旋钮、推子、踏板的运动状况,每一个CC的范畴是0-127。例如合成器的调制轮或调制杆总是1号控制器,转到一端为0,另一端为127。但是数值并不是平滑地变化,而是台阶式的变化。比如数值可以是56或57,但不可能是56.329或57.1。如果用CC控制一些比较敏感的声音参数,有可能听得到台阶式的效果变化。
   12)一些CC是预先定义的
   一些CC保留给特别的用途,例如CC64分配给延音踏板。实际上有一些(例如64、65、66等)控制器定义成开关式,如CC64踩下去发送127;抬起来发送0,并不使用中间的数值。CC00-CC31可以与CC32-CC63结对使用表示MSB和LSB,构成16384的控制值。是否使用14比特数值由设备制造厂商决定,没有一定之规。
   13)弯音音域由接收合成器决定
   弯音是一个很特别的MIDI信息。虽然它被定义为14比特,但是许多合成器省略了LSB数据而只用MSB的7比特(0-127)数值。也许这样是对的,因为许多弯音硬件只提供7比特数值,音序器也经常把弯音定在-63到+64的范围。弯音是一个双极信息,中心为0,控制器常常带有回0的弹簧。
   有一条MIDI信息(是一个注册参数号RPN)可以给接收弯音设备定义弯音音域,但并不是所有合成器都响应。
   14)音色库的选择
   MIDI刚创建的时候合成器通常只有32、40、最多不过64个音色可以记忆,没有谁能够预见不久以后合成器竟能拥有数百以至数千音色。结果只定义了128个选择音色的程序变换(Program Change),为了解决这个问题,发明出音色库选择信息。
   音色库选择(Bank Select)借用了连续控制器CC0和CC32构成14比特的数值,使音色选择的范围达到16384个音色库,每库包含128个音色。数值非常巨大。
   问题是厂商对于音色库选择信息的执行有很大差异,一些合成器仅用CC0选择音色库,舍弃了CC32(虽然MIDI规定要求二者连续发送),另有一些合成器则按规定使用命令,没有包含数值的控制器也发送数值0。
   一些合成器立即转换到新选择的音色库,而另外一些则要等待到接收一条程序变换命令后才转换。一些合成器没有把音色库装满,因此一条音色库选择命令可以同时选中2个库,具体选择音色时还需要加上偏移值。Kurzweil在音色库选择规定出现之前就开始支持多重音色库,在K2000/2500合成器上使用不同的音色库选择方法。还有的合成器忽略音色库选择命令。一些音序器试图帮助用户完成音色库选择,但是并不能对所有的合成器生效。
   15)有4种方法关掉“粘住”的音符
   相信大家都遇到过“粘住”的音符。可怜的合成器只接收到音符开而没有收到关掉这些音符的命令,于是就讨厌的响个不停。如果发音的音色包络已经把音量衰减下去,你就不容易发现“粘住”的音符,一般都是带有保持包络的音色造成明显的问题。引起问题的原因可能在音序器,也可能在合成器的系统软件,更有可能是MIDI连接出现问题(MIDI能够检测到连接出问题而自动发出关掉音符的命令,但不是全部合成器有这样的功能)。
   MIDI定义了关掉全部音符的命令,音序器软件经常备用一个“救急”按钮,点击它就可以把关闭全部音符命令发送到16个通道,但是有的合成器不能识别这条命令,因此“救急”按钮同时经常还需要给16个通道的每一个音符发送关闭命令,16×128=2048,幸亏机器不知道累。
   如果“救急”按钮不管用,可以试着发一个程序变换(Program Change),许多合成器在转换到新音色时关闭正在发音的音符。如果这一招不管用,下面还有一手可以对付32复音数以下或音色多层次布局的合成器:用手和胳膊尽可能多的同时按下琴键,放手的时候也许有效。
   最有效的办法是关掉电源然后再打开,一定管用。不过如果出问题的不是合成器而是采样器,重新载入64MB的样本也要花一些时间呢。
   16)时间延迟能减少
   MIDI相当快,虽然串行传送,基本上听不出时间的参差。如果回放的开头发音迟缓,有以下几种可能:试图发送过多的控制器数据,通常是多通道回放的信息包含有弯音和CC数据,它们挤占了音符到达的时间。音序器通常备有“减薄”连续控制数据的编辑功能,能够有效地减少这类延迟。触后是另一类连续数据,历来是引起延迟的声名狼藉的嫌疑犯。如果触后信息用处不大,建议根本不用或全部删除。
   试图同时让过多的音符同时发音也会造成延迟。例如一种音色由4Voice构成,各Voice使用2个振荡器,如果同时让10个音符发音,对于合成器来说就要同时启动80个振荡器,时间上很容易出现延迟。解决的方法或者减少音色的层次,或者把音符前后错开一些。
   (译者注:乐曲开头处经常有许多MIDI设置数据需要发送,常常影响到第一个音符的准时出现。我们过去建议音乐家把第一小节空出来专门写命令,音乐从第二小节开始,效果非常好。)
   17)标准MIDI文件使MIDI音乐广为传播
   在MIDI的“幼年”时期,开发者就明确地预见将会有一种文件格式,像Microsoft的RTF(Rich Text Format)一样供所有的音序器读写,不久以后果然以.MID做后缀的SMF格式出现了。用音序器创作的音乐除了以自己的格式存储,也可以存成标准MIDI文件格式,在任何音序器上回放。
   MIDI文件最初定义了3种类型——0、1和2——但是通常只用0和1。0类文件将全部数据放在一条音轨中(因为MIDI事件带有通道标记,0类文件可以通过编辑命令分成16轨);1类文件包含多轨,各自可以命名。文件甚至支持多口MIDI输出(例如64通道)。MIDI文件后来添加了歌词等其他成分,最近升级的XMF文件格式支持DLS(可以下载的声音)数据,但是还不能描述音频和音频效果。
   18)系统专用信息有助于硬件升级
   十年前的合成器或效果器升级(添加新功能或修正缺点)需要到服务中心,交款之后让技师为你换一块芯片。感谢MIDI和互联网,今天操作系统升级已经简单和便宜得多了。许多厂家定期在网站提供系统升级,升级文件经常是标准MIDI文件形式,可以载入音序器回放。通常的做法是:
   ①下载升级文件到电脑硬盘
   ②把文件载入音序器
   ③把音序器的MIDI输出连接到合成器的MIDI输入
   ④将合成器设置成准备读入系统专用信息的模式
   ⑤开始回放音序
   ⑥文件回放结束之前不要停止,也小心不要断开MIDI连接。
   事情就这样简单,你不需要知道MIDI文件的内容,也不用打开机箱,升级就完成了。
   系统专用信息经常还用在音色编辑方面,可以用它在电脑中建立庞大的音色库。
   19)通用MIDI不能包医百病
   1991年制定的通用MIDI规定(GM)未能有效克服MIDI的一些局限。例如最初的程序变换信息(Program Change)只是一个数字编号,与它代表什么声音毫无关系。GM定义了128个音色名字,包括乐器音色和效果声,也定义了打击乐器音色在键盘上的排列,规定了一些控制器的使用。GM使得音乐家创作的MIDI文件有可能在不同的合成器上回放,互联网上的MIDI文件可以在配有GM声卡的电脑上回放。
   问题是名字相同的某一件乐器的音色在不同的合成器或声卡上可能差异很大,结果得到出乎意料的合奏声音。
   Roland和Yamaha分别开发了自己的GM规定称为GS和XG,都比GM复杂,但是互相不兼容。
   GM规定目前并没有什么压力,GM2规定虽然已经存在,但使用并不普遍。
   当前有2种让MIDI携带采样波形的格式,一种是MIDI协会开发的DLS,另一种是创新科技开发的SoundFonts,它们之间有许多不同点,但都已经占有一部分市场。

页: [1]
查看完整版本: MIDI基础知识