MIDI技术的基本概念 ( v' r* J, ^8 q* o( ^ {3 e' J4 @, F7 z3 f3 w# a
MIDI技术的基本概念在国内从来没有被反复强调过,然而也就是这些最基本的概念,贯穿了MIDI应用的前前后后。一旦记住和领会了这些基本概念,MIDI的软件、硬件使用就变得简单了。无论那一家公司的MIDI产品,其最核心的设计原理总是一样的。 : e; u1 U0 ]# c! G. L. O% Z $ p e# H9 d- `0 _7 S# M, A! k# _. E一. MIDI基本原理 1 D a" x) j- N4 s6 z0 _. W' f t1 h. }" I
就MIDI信号(或数据)本身而言,不过只是一堆数据而已,没有任何的声音。是Music Instrument Digital Interface的缩写,意思是:音乐设备的数字化界面(或连接)。/ f1 c: u0 r# H& w \- w1 h
3 v' o, ^ B$ X9 Q# ~- h 我们可以把一大堆乐器的音色先录下来,然后每个音色给它一个编号。比如Acoustic Piano编号为00。接着再给所有的音高也用一串编号表示(因为我们通常用的是12平均律),比如C3音我们编号为00。剩下就是音符的时值问题,我们可以把8分音符编号为60。好, 现在如果要一个原声钢琴8分音符的C3音,就可以用一串数字"00 00 60"来表示。(这就好比一种语言,只不过全是数字。但话说回来,如果当初先辈们不把钢琴这样乐器称为"钢琴",而叫它"零零"呢?我们今天岂不也会说:"孔祥东的'零零'弹的是好!")- v0 ]6 }4 p. Q+ j$ l) n+ A
" L( L7 P6 g8 U! z4 C0 r# |3 e
问题是,如果我是按我的办法把乐器编号的,你是按你自己的办法,那么我设计出来的MIDI乐器就没法和你的MIDI乐器共同工作。(我就不喜欢把Acoustic Piano编号为00,编成99不行吗?)最后,一些大的MIDI设备厂商共同制定了一套MIDI标准,无论各家如何开发自己的产品,其基本设计必须参照这套MIDI标准协议,这就是我们常说的"GM标准"(Gerneral MIDI)。 F& f/ k1 T O
( R/ D: ]4 a5 J
实际上,还有更多的数字代表不同的含义,用以表现音乐的各种色彩。可以想象,那数据量极大的。如果我们把很多乐器排列、基本发声规律等全部列出,并用相应的数字来编号,就可以得到几张表格。如果MIDI乐器和电脑都采用这套表格,那么电脑和MIDI乐器就可以"沟通"了。但GM标准是一项工业标准,它规定的是一些最基本的规则,而且各大厂商各有一套对乐器、音色、音色表达的研究办法,造成成本不一,所以GM标准留了很大的余地允许厂商把自己的开发成果放入MIDI设备。最早的就是Roland的GS(General Standard)标准,后来又有YAMAHA的XG(Extended MIDI)标准。这些表格通常称为"MIDI Mapper"(MIDI映射表),它们不仅是用户需要的,每一台MIDI设备内部也会需要相应的映射表来做解码,如此才能让该设备正确工作。% B% B ~9 C8 G
# s/ g4 x9 r3 _; T4 q+ U
然后,MIDI信号通过设备内部的解码程序,再经过振荡器、滤波器、ADDA转换器、信号放大器等元件,将纯粹的数据变成可以听到的声音。并且,这些元件的工作方式都允许被用户来控制。可想而知,MIDI信号在变成声音的过程中,如果有一个地方不同,那么同一MIDI信号在不同的设备上出来的声音就不同!