本文内容来自于之前回答,偏科普向,面向大众。所以MIDI相关工程师可以不用在线捉Bug了哈。所谓MIDI的定义:
MIDI(Musical Instrument Digital Interface)乐器数字接口 ,是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。MIDI 传输的不是声音信号, 而是音符、控制参数等指令, 它指示MIDI 设备要做什么,怎么做, 如演奏哪个音符、多大音量等。它们被统一表示成MIDI 消息(MIDI Message) 。传输时采用异步串行通信, 标准通信波特率为31.25×( 1±0.01) KBaud。
以上是百度百科的解释,至于应用广泛程度,连我国最大的音乐培训学校及其音乐节品牌也以“迷笛”冠名,可想而知。
以下就个人理解向大家简单地解释MIDI接口的产生、原理、和应用。
在PC电脑还不普及的上古时代,音乐人见到了PC,PC能打字、编辑、保存、排版,好牛逼的感觉。于是他向上天祷告:要是自己弹的曲子也能记录成电脑文件该多好呀~
这时头顶光环的程序猿从天而降(误),说这个可以有,于是递给了音乐人一根音频线。音乐人把音频线一头操在键盘的音频输出口、一头操在电脑声卡的音频输入口上,打开了windows录音机来了一小段儿,录好之后再播放……效果简直鹅妹子嘤!!音乐人流下了鸡冻的泪水!
但玩儿了两天后,音乐人发现自己老弹错,录一首完美的曲子太他妈难了。于是他双膝下跪并虔诚地向程序猿祷告(误),说人家写文档的都能一个字儿一个字儿改,我这弹错只能重录,太艰辛了,我也想录完一个音符一个音符的改!程序猿思考了一下说这个也凑合能实现,于是将键盘的88个按键按照相应数字标示,让PC只认数字-PC接到相应的数字,就播放那个按键的声音。这样就和弹琴一样!而且记录的数字序列可以编辑,就能随意修改错误啦~音乐人说亦可赛艇!
有了编辑功能后,音乐人就可以随意修改键盘数字的顺序(音序)和他们的相对位置(时值)了。但音乐人发现他弹出来的曲子怎么失去了感情……哦!原来PC记录的音符没有轻重!于是他再次向程序猿祈祷,程序猿说噫你个龟孙儿咋那么事儿呢……(误)这样,我把每个记录音符的数字再加长一点儿,里边儿记录上音符的力度大小,从0-127,这下够用了吧?音乐人说好呀好呀~于是PC记录下来的音符数据里又能表达力度了。
就这样,音乐人继续愉快地玩耍了几天,又事儿逼地向程序猿提出各种需求。一个音符数据也从只记录音高变成了能记录颤音、音长、变化等等信息。音乐人终于可以只弹一次,然后在PC上修修改改就能把曲子发出去了!
然后,程序猿出于物种的本能(误),把给音乐人做的这一系列工作进行整理并放到了开源社区上,管记录音符及其附属信息的对象叫做MIDI信号,编辑MIDI信号文件的软件叫做音序器、能够根据MIDI信号播放相应钢琴声音的软件叫做音源、能够输出MIDI信号的电子乐器叫MIDI触发设备。为了区分于电吉他等模拟信号乐器,这一整套录制、编辑、解析MIDI信号的标准就叫做“乐器数字接口”;
这位音乐人是一位钢琴手,突然有一天一个萨克斯手路过,问你在PC上点来点去的干啥呢,也不好好录唱片。钢琴家就把这个东西向同事介绍了下,萨克斯手顿觉震汉!我也要!于是也向程序猿祷告。程序猿说这个好弄,你按照弹钢琴那家伙的88个琴键把所有音高和不同力度下的音符都用萨克斯录下来,然后再把他们对应到MIDI信号上就成,这就是所谓的软音源制作。萨克斯手用上之后潸然泪下,再也tm不用进录音棚一遍一遍录了,神器啊!于是公司的吉他手、贝斯手、鼓手、管弦乐手也都想要这种神器,程序猿就分别为这些乐手制作了相应的音源。同一个曲子,对应不同的音源,就能变成另一件乐器演奏,大大地减少了录制的成本,编曲师也能在不会某一件乐器的前提下在录音中使用它了。于是,音乐人们为程序猿大建庙宇奉为神明,每年香火不断……(误)
各种软件音源:
以上就是MIDI的由来。而现今大多数电子乐器(电子鼓、电子琴、电管等)的原理也是通过将传感器的电压变化转化为MIDI信号,并使用音源渲染后得到声音。
而电子乐器,比如电钢琴上为啥有MIDI接口?因为电钢琴除了手感、音源音色好于电子琴,它本体就是一个电子琴。所以,他也能够当做MIDI触发设备使用。音乐人可以使用电钢琴录制MIDI信号,并使用不同的音源渲染来录制唱片。普通电钢琴玩家除了录音外,还能够使用PC上的软音源替代电钢琴的自有音源。比如你今天不想听YAMAHA的音色了,就可以换KAWAII的,KAWAII也烦了?那来套斯坦威的音色!对,不要488888,也不用48888,只需要4888即可拥有世界顶级三角钢琴哦!也就是说:
MIDI触发器 + 音源 + 扩音设备 = 一件乐器
而MIDI设备上的接口,一开始长这样儿:
因为PC没有专门为乐器设计的接口,所以使用了打印机的串口;
后来嫌串口太笨重,就专门设计了MIDI专用接口:
有的人又要问了,为什么MIDI接口有IN有OUT啊?
因为这是一台硬音源,携带有任何乐器音源的硬件设备都叫硬音源设备,相对应PC中各种音源软件统称为软音源。
所以,可以说电子琴本身也是一台硬音源。
比如你有一台国产300元的烂键盘,音色难听到让你回到了80年代的歌厅,把它扔掉又舍不得,连PC又麻烦,怎么办?买一台硬音源吧,用MIDI线将烂键盘的(MIDI OUT)接口接到硬音源的(MIDI IN)接口,就得到了一台音色动听的新键盘,酷不酷炫?
一般较为专业的硬音源有各种乐器x各种不同音色若干套。而且运算速度要比PC设备快,相应表现就是不爆音没有延迟。专业硬音源长这样:
反过来,如果你的电子琴上有各种屌炸天的音源音色,但你又不想用键盘来触发(比如电子鼓),你就可以用MIDI线将电子鼓触发器的MIDI OUT接口和键盘的MIDI IN接口相连,你就可以触发键盘里的音色啦。
当然,电子鼓也有它自己的专用音源,而且电子鼓的音源和触发器一开始就是分体设计,比较容易让人理解硬音源的概念,电鼓的音源长这样儿:
原理和电钢琴一样,只不过装载了不同的音色,且为相应的乐器进行了优化而已。
像这种通用的MIDI接口,一般PC设备仍然没有,所以假如你想使用电子乐器作为触发设备并连接PC软音源来演奏和录音,就需要一个外接设备来做MIDI信号的识别、录入,也就是带有MIDI接口的外接声卡,它通过USB接口与PC相连。只要PC安装了厂商的驱动,就可以让PC识别MIDI设备产生的MIDI信号。它长这样儿:
后来音乐人和乐手们发现,MIDI接口和MIDI线好鸡掰哦,PC和音源都是电子设备还要另搞一套接口,有这个必要吗?有时候还忘记带MIDI线,难道就不能让触发器直接操PC吗?于是就诞生了USB接口,乐手们也过上了触发器直接操PC的性福生活(误)。USB接口长这样:
使用的是打印机的方口USB线(和打印机干上了):
但这时候就又有人问了,那声卡到底需不需要了?它又有什么作用?这就要说一下声卡的主要具体用途:
所以说,只要我们对输出的信号比特率有要求、且不能延迟播放,声卡就是必须设备。
再来看一下市售的这种简便电钢琴连接线:
其本质也是一个MIDI信号生成器,看MIDI线和USB线中间的那个小盒子,里边就是一个简易逻辑电路,可以将传统MIDI输出口的信号直接传输到PC上。但PC的板载声卡不能低延迟地播放音源,也许对于钢琴来说无所谓,但对于鼓这种乐器,超过4ms就不能忍受了。所以如果想要没有延迟地播放演奏的琴声,一定要再买一块声卡。
不过对于鼓手来说就不一定了,2022年通过技术进步,我们已经拥有了可以不通过声卡也能无延迟播放的软音源,具体看我这篇文章:
电鼓连接软音源后怎么录音:
综上,我们就知道,不论电子琴也好、电子鼓也罢,都是数字电子乐器。它们都分为触发器+MIDI信号生成器+音源三个部分,而且乐器和音源之间可以自由搭配进行使用,所以电子琴、电子鼓也可以称作MIDI输入设备。当它们与PC软音源一同工作时,需要用到声卡来降低实时播放的延迟。但目前电子鼓行业已经不需要声卡了,电子琴还不太行。各位钢琴手,还是继续等待拯救你们的程序员大神来解救吧!(偷笑)