音频应用

 找回密码
 快速注册

QQ登录

只需一步,快速开始

阅读: 752|回复: 1

[转帖] MIDI 乐器数字接口

[复制链接]

258

积分

2

听众

-4

音贝

音频应用

Rank: 1

积分
258
QQ
发表于 2005-9-4 | |阅读模式
音频应用公众号资讯免费发布推广
MIDI(Musical Instrument Digital Interface)乐器数字接口 ,是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。MIDI 传输的不是声音信号, 而是音符、控制参数等指令, 它指示MIDI 设备要做什么,怎么做, 如演奏哪个音符、多大音量等。它们被统一表示成MIDI 消息(MIDI Message) 。传输时采用异步串行通信, 标准通信波特率为31.25×( 1±0.01) KBaud。




MIDI发明者,是美国的加州音乐人,Dave Smith。

三十年前,音乐人没法同时操纵多个乐器,因为当时各种乐器是不可连接的。需要左右手同时弹奏两个键盘。此后,合成器制造商Dave Smith,说服了唱片商采用了一种叫做“乐器数字接口”(Musical Instrument Digital Interface,MIDI)的通用格式,这种格式能够让合成器受到外部键盘信号控制,可以由唱片商的竞争对手制作,甚至直接从电脑输出。使运算速度足够快的电脑处理音符采样,并能同时控制多个键盘和鼓机。

MIDI标准能让人们在自己家里进行音乐创作,使人们终于能够把合成器和鼓机连接到电脑上。于是,MIDI很快变成了连接各种型号的合成器、鼓机、采样数据和计算机的产业标准。

MIDI无论放置在哪里,都能在一个合成器上演奏些东西,并能在另外一个合成器上播放完全一样的声响。复杂而精心控制的的合成器声效、鼓机和采样样本见证了编曲技术从不可能到可能的转变。随着这种全新定义的制作方式,舞曲这种新的音乐类型诞生了。

第一台能够兼容MIDI格式的是一个由Dave Smith制作、叫做Prophet-900的合成器。它在1982年12月退役。 在当时的青少年游戏玩家中流行的Atari以及Commodore64型计算机也能通过一个5针的线缆控制另一端的MIDI乐器。

MIDI音乐格式,带有强烈的电子感,以及广泛适用性和便利性,催生了那个年代众多的音乐类型。重塑了1980年代的流行乐。

MIDI格式早期的的“开源精神”概念,让每个人都能创作”复杂的音乐片段”,MIDI标准的支持者推动它成为连接着着全世界的自由纽带。三十年以后,MIDI仍然强劲不衰,作为专业音乐录制和制作的关键组件而存续着


八十年代初,各生产厂家都按照自己的规格生产电子乐器,当


MIDI使电子鼓机可模拟音响效果

同时使用几家公司的设备构成一个电脑音乐系统的时候,出现了不兼容问题。

1982年,国际乐器制造者协会的十几家厂商(其中主要是美国和日本的厂商)会聚一堂,会议通过了美国Sequential Circuits公 司的大卫.史密斯提出的“通用合成器接口”的方案,并改名为“音乐设备数字接口”,即“Musical Instrument Digital Interface”缩写为“MIDI”,公布于世。

1983年,MIDI协议 1.0版正式制定出来。此后,所有的商业用电子乐器的背后都出现了几个五孔的MIDI插座,乐器之间不再存在“语言障碍”,它们同装上MIDI接口的电脑一起。作用就是使电子乐器与电子乐器,电子乐器与电脑之间通过一种通用的通讯协议即MIDI协议进行通讯。MIDI的出现解决了各个不同厂商之间的数字音乐乐器的兼容问题。

1984,日本罗兰公司于提出了GS标准,大大增强了音乐的表现力。

1985年11月,国际乐器制造者协会公布了《MIDI 1.0版的细节规定》(2.0版至今仍在制定中),重新定义了一些控制器号码。此外,为保证MIDI的健康发展,还专门 成立了“MIDI厂商协会”和“日本MIDI标准委员会”等组织,MIDI标准从成长阶段步入了成熟阶段。

MIDI标准的成熟使各电子乐器生产厂商生产出各种电子乐器,有键盘式的(合成器、主控键盘)、弦控式的(MIDI吉他)、敲击式的(鼓机)甚至还有吹奏式的(呼吸控制器),除此之外,还有五花八门的各种音源模块(就是把没有键盘的电子合成器)供人选购。

1991年,为了更有利于音乐家广泛地使用不同的合成器设备和促进MIDI文件的交流,国际MIDI生产者协会(MMA)制定了通用MIDI标准——GM,该标准是以日本Roland公司的通用合成器GS标准为基础而制订的。GM标准的提出得到了Windows操作系统的支持,使得数字音乐设备之间的信息交流得到了简化,受到全世界数字音乐爱好者的一致好评。

1994年,YAMAHA公司在GM标准上于推出了自己的XG的MIDI格式,增加了更多数量的乐器组,扩大了MIDI标准定义范围,在专业音乐范围内得到广泛的应用。


MIDI是Musical Instrument Digital Interface的缩写,


MIDI

直接翻译过来的意思就是乐器数字化接口,可以把MIDI理解成是一种协议、一种标准、或是一种技术,但它并不是单指某个硬件设备。

MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法,用于连接各种MIDI设备所用的电缆为5芯电缆,通常人们也把它称为MIDI电缆。

MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。

MIDI是一种电子乐器之间以及电子乐器与电脑之间的统一交流协议。很多流行的游戏、娱乐软件中都有不少以MID、RMI为扩展名的MIDI格式音乐文件。

MIDI文件是一种描述性的“音乐语言”,它将所要演奏的乐曲信息用字节进行描述。譬如在某一时刻,使用什么乐器,以什么音符开始,以什么音调结束,加以什么伴奏等等,MIDI文件本身并不包含波形数据,所以MIDI文件非常小巧。

MIDI要形成电脑音乐必须通过合成。早期的ISA声卡普遍使用的是FM合成,即“频率调变”。它运用声音振荡的原理对MIDI进行合成处理,由于技术本身的局限,效果很难令人满意。声卡大都采用的是波表合成了,它首先将各种真实乐器所能发出的所有声音(包括各个音域、声调)进行取样,存储为一个波表文件。

在播放时,根据MIDI文件记录的乐曲信息向波表发出指令,从“表格”中逐一找出对应的声音信息,经过合成、加工后回放出来。由于它采用的是真实乐器的采样,所以效果自然要好于FM。一般波表的乐器声音信息都以44.1KHz、16Bit的精度录制,以达到最真实的回放效果。理论上,波表容量越大合成效果越好。根据取样文件放置位置和由专用微处理器或CPU来处理的不同,波表合成又常被分为软波表和硬波表。




序列器
MIDI作曲和核配器系统核心部分是一个被称为序列器的软件。


MIDI代码

这个软件即可以装到个人电脑里,也可做在一个专门的硬件里。序列器实际上是一个音乐词处理器(word processor),应用它可以记录、播放和编辑各种不同MIDI乐器演奏出的乐曲。序列器并不真正的记录声音,它只记录和播放MIDI信息,这些信息从MIDI乐器来的电脑信息,就像印在纸上的乐谱一样,它本身不能直接产生音乐,MIDI本身也不能产生音乐,但是它包含有如何产生音乐所需的所有指令,例如用什么乐器、奏什么音符、奏得多快,奏得力度多强等。

序列器可以是硬件,也可以是软件,它们作用过程完全与专业录音棚里多轨录音机一样,可以把许多独立的声音记录在序列器里,其区别仅仅是序列器只记录演奏时的MIDI数据,而不记录声音;它可以一轨一轨地进行录制,也可以一轨轨地进行修改,当你弹键盘音乐时,序列器记录下从键盘来的MIDI数据。一旦把所需要的数据存储下来以后,可以播放你刚作好的曲子。如果你觉得这一声部的曲子不错,可以把别的声部加上去,新加上去的声部播放时完全与第一道同步。

作为单独设备的序列器,音轨数相对少一些,大概8~16轨,而作为电脑软件的序列器几乎多达50000个音符,64~200轨以上。序列器与磁带不同,它只受到硬件有效的RAM(Random Access Memory随机存储器)和存储容量的限制,所以作曲、配器根本用不着担心“磁带”不够用。

接口
MIDI是由电子乐器生产厂家为了不同型号的电子乐器的“交流”而产生的。[2]  由于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信号之外没有统一的标准,尤其是在音色排列的方式上更是“随心所欲”的。也就是说您在这台琴上制作完成的音乐拿到另一台不同型号的琴上播放时会变得面目全非,小提琴可能会变成小号,长笛可能会变成吉他,钢琴可能会变成大鼓……这对于专业音乐人士的工作并不会产生太大的影响,毕竟他们制作一次灌成唱片也就完事儿了,但是对于音乐爱好者之间的交流,尤其是多媒体的发展却极为不利。

标准
常见的MIDI标准由GM、GS、XG,各标准之间存在着竞争。

GS标准是在ROLAND的早期产品MT-32和CM-32/64的基础之上,规定了MIDI设备的最大同时发音数不得少于24个、鼓镲等打击乐器作为一组单独排列、128种乐器音色有统一的排列方式等。有了这种排列方式,只要是在支持GS标准的设备上制作的音乐,拿到任何一台支持同样标准的设备上都能正常播放。

GM标准的全称应该是“通用MIDI标准系统第一级”(General MIDI system Level1),在GS标准基础上,主要规定了音色排列、同时发音数和鼓组的键位,而把GS标准中重要的音色编辑和音色选择部分去掉了。GM的音色排列方式基本上沿袭了GS标准,只是在名称上进行修改,如把GS的Piano 1改名为Acoustic Grand Piano等。

XG同样在兼容GM的基础上做了大幅度的扩展,如加入了“音色编辑”的功能,使得作曲家可以在MIDI乐曲中实时地改变乐器的音色;还加入了“音色选择”功能,在每一个XG音色上可以叠加若干种音色。

主要功能
MIDI技术的一大优点就是它送到和存储在电脑里的数据量相当小,一个包含有一分钟立体声的数字音频文件需要约10兆字节(相当于7张软盘的容量)的存储空间。然而,一分钟的MIDI音乐文件只有2KB。这也意味着,在乐器与电脑之间的传输数据是很低的,也就是说即是最低档的电脑也能运行和记录MIDI文件。

通过使用MIDI序列器可以大大地降低作曲和配器成本,根本用不着庞大的乐队来演奏。音乐编导在家里就可把曲子创作好,配上器,再也用不着大乐队在录音棚里一个声部一个声部的录制了。只需要用录音棚里的电脑或键盘,把存储在键盘里的MIDI序列器的各个声部的全部信息输入到录音机上即可。

MIDI程序的设计目标就是要将所要演奏的音乐或音乐曲目,按其进行的节奏、速度、技术措施等要求,转换成MIDI控制语言,以便在这些MIDI指令的控制之下,各种音源在适当的时间点上,以指定的音色、时值、强度等、演奏出需要的音响。在录音系统中,还要控制记录下这些音响。MIDI所适应的范围只是电声乐曲或模拟其他乐器的乐曲。

MIDI技术的产生与应用,大大降低了乐曲的创作成本,节省了大量乐队演奏员的各项开支,缩短了在录音棚的工作时间,提高了工作效率。一整台电视文艺晚会的作曲、配器、录音,只需要一位音乐编导、一位录音师即可将器乐作(编)曲、配器、演奏,录音工作全部完成。

应用领域
电视晚会的音乐编导可以用MIDI功能辅助音乐创作,


MIDI

或按MI-DI标准生成音乐数据传播媒介,或直接进行乐曲演奏。

如果在计算机上装备了高级的MIDI软件库,可将音乐的创作、乐谱的打印、节目编排、音乐的调整、音响的幅度、节奏的速度、各声部之间的协调、混响由MIDI来控制完成。

利用MIDI技术将电子合成器、电子节奏机(电子鼓机)和其他电子音源与序列器连接在一起即可演奏模拟出气势雄伟、音色变化万千的音响效果,又可将演奏中的多种按键数据存储起来,极大的改善了音乐演奏的能力和条件。

操作案例
VB播放Midi声音

MS提供Midi*开头的函数在程序中操作Midi音乐。为此计算机可以依次调用MIDIOutOpen函数,midiOutShortMsg函数,最后调用midiOutClose函数来发出一个声音。

以下的代码都是midiOutShortMsg函数的代码,因为MIDIOutOpen和midiOutClose函数的代码都一样的,要使用下面的midiOutShortMsg的代码,需要在Load事件和QueryUnload实践中书写如下代码:

Dim midiHand As Long'窗口级别的全局常数

Private Sub Form_Load()

MIDIOutOpen midiHand, MIDI_MAPPER, 0, 0, 0'打开Midi媒体

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

midiOutClose midiHand'关闭Midi媒体

End Sub

并且注意要结束程序必须按窗口的关闭按钮(右上角的叉),不要按IDE上的方形按钮结束程序,否则QueryUnload事件是不会执行的。下次启动程序就会出错。

发声



后面的参数是&H 00 7F 30 90(本来是&H007F3090,拆开来看),由于00开头,所以VB省略掉了。这是一个16进制数,需要从后往前看。90的9代表的就是格式信息中的9:开始发声,后面的0保留。然后是30,这是第一位的数据,根据上面表格的描述,这是需要发出的音符。16进制的30是十进制的48,而中央C的编号是60。最后的是46,同样如上面表格所写的,这是音量。

16进制数需要从后往前看,是由于Windows采用低字节序,一个16进制数低位在前,高位在后,所以表格中描述的第一个数据,即音符的数据反而在第二个数据音量的后面。

停止发声



后面的参数是&H 00 7F 30 80(本来是&H007F3080,拆开来看),80的8代表的就是格式信息中的8:停止发声,后面的0保留。30依然是音符。7F的含义变了,如表格所说的是停止的速度,不过实际演示发现这个速度似乎对停止发声没影响,可能我作为一个程序员不是做音乐的听不出来。

改变音色



后面的参数是&H 00 00 7F C0(本来是&H00007FC0,拆开来看),C0的C代表的就是格式信息中的C:改变音色,后面的0保留。7F是代表十进制127,可以查看下面通用标准获悉这是枪的音色。  
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

1078

积分

2

听众

-53

音贝

音频应用新手发布

Rank: 3

积分
1078
发表于 2005-9-4 |
MIDI 乐器数字接口
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频招标|音频应用 (鄂ICP备16002437号)

Powered by Audio app

快速回复 返回顶部 返回列表