目录

1: 进入MIDI的世界

2: MIDI的发展历程

2.1: 从混乱到统一

2.2: 从载波调制到波表合成

2.2.1: 几个著名的硬件波表合成器

2.3: 软件合成器诞生至今

2.3.1: SoundFont

3: MIDI文件格式

4: 现在MIDI还有什么用途?

5: 总结


1: 进入MIDI的世界

Musical Instrumemt Digital Interface,乐器数字接口,是人们在1980年代为了降低音乐爱好者们创作音乐成本而发明的音乐合成技术,人们在家用廉价的键盘(黑白键)就能弹奏出乐曲,而不用动辄巨款去购买乐器,甚至数万RMB的钢琴也能用最低1000元以下的MIDI键盘代替。只需要用MIDI数据线将键盘与电脑声卡或者音乐合成器连接在一起,即可开始你的创作。

MIDI键盘

带MIDI接口的合成器

MIDI的工作原理是实时地将你音符的音高、长度、音量等信号发送到电脑的声卡(现在的声卡已经没有MIDI接口了)或者音乐合成器里,并以音频的形式输出,或者记录在电脑文件里。

2: MIDI的发展历程

2.1: 从混乱到统一

早期的MIDI并没有统一标准,具体由各个硬件厂商自己实现指令。这也就存在着严重的弊端:将不同品牌的键盘和合成器连在一起,就可能会导致音高不准、乐器不对等各种错误。例如,你用雅马哈的键盘连接Roland合成器,设置成钢琴音色,但有可能弹出萨克斯的声音。为了解决此冲突,Roland公司率领大家制定了MIDI统一标准:GS。后来又陆续制定了GM(General Midi)、GM2、XG(eXtended General midi)标准,其中以GM2最流行。

2.2: 从载波调制到波表合成

最初MIDI合成器是直接调制正弦波以模拟出不同乐器的音色,该方式成本极低实现难度也极低,但音质十分差,听得令人头皮发麻。追求播放质量的人们自然不会停下研发新技术的脚步。

OPL2/OPL3是最著名的FM合成器芯片标准,当时所有的声卡都采用此芯片标准。

OPL3调频合成器芯片示意图

波表合成(Wavetable Synthesizing)技术横空出世。它是将各种乐器的真实声音录制成一段又一段的PCM音频,并以哈希表 什么是哈希表 的形式逐一存储到ROM固件中,在播放时,合成器通过查表查找到对应乐器的波形,经过各种特效的处理,并播放出来。播放效果好坏取决于ROM的容量,容量越大,能够存放的波形信息就越多,播放效果就越好,成本也就越贵。

2.2.1: 几个著名的硬件波表合成器

  • Roland Sound Canvas系列,包括SC-55、SC-88、SC-8820、SC-88 Pro,是Roland公司当年推出的旗舰级硬音源。
  • Yamaha MU系列,包括MU50、MU80等设备,ROM有4MB大小,效果稍逊色。
  • Creative Audio PCI声卡,有2MB、4MB、8MB的波表可选

Roland SC-88波表合成器

2.3: 软件合成器诞生至今

购买硬件合成器的成本还是太高,人们迫切需要更低成本的合成技术,因此发明了软件合成器,简称为软波表。它只能用电脑的CPU进行波形的合成,这在当时对于速度并不快的CPU是一个十分严峻的考验,所以人们还是购买了硬件。但随着CPU性能的不断提高,音乐合成对CPU的占用率越来越是微乎其微,硬件波表被逐渐淘汰,现在只有一些音乐发烧友会继续花费较高的资金购买硬件。

2.3.1: SoundFont

随着软波表的逐渐普及,于是就诞生了将波表直接保存在电脑文件里的方式,其中最著名的文件格式就是SoundFont,简称为SF,它由Creative Labs公司推出并开源,基于RIFF数据结构,应用最广泛的标准为SoundFont 2,即SF2,可用于各大音乐制作软件中。

3: MIDI文件格式

MIDI文件格式就是将MIDI信号保存成文件,内含音轨信息、乐器、音符的长度与音调等信息,不保存波形,在播放时使用合成器发出声音。因此,通常MIDI文件都很小,只有几十KiB的大小,而MP3至少需要几个MiB。MIDI文件大小只与乐曲的复杂度有关,而不涉及音质的问题。

但不同种类的合成器播放同一个MIDI文件,播放出来的音色相差甚远,而音频文件直接把波形保存下来,不改变音色。

4: 现在MIDI还有什么用途?

现在由于硬盘空间很大,人们可以很方便地下载音频,MIDI的用途变得狭窄,甚至大多数人都没听说过MIDI。但是在制作音乐时还是频繁提到这个词,它简化了音乐制作过程,不用花费高昂的金钱购买或租用乐器,降低了音乐制作成本。

5: 总结

下面我给大家列出来两个表格,就不用语言来做总结了。

合成器的对比
载波调制 硬波表 软波表
成本 $ $$$ $$
效果 很好 较好
MIDI与音频的区别
MIDI 音频
工作原理 音符指令转成波形 直接处理波形
播放效果 较差 较好
文件体积

MIDI音乐,看这一篇就够了相关推荐

  1. 如何快速找到志同道合的人?看这一篇就够了

    如何快速找到志同道合的人?看这一篇就够了 一.前言 参加工作也有挺长一段时间了,一直以来自己也很希望可以真正为自己打拼一片天地,这应该也是大部分中产白领很希望做的事,有些人成功了,有些人在路上,而有些 ...

  2. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

  3. python装饰器功能是冒泡排序怎么做_传说中Python最难理解的点|看这完篇就够了(装饰器)...

    https://mp.weixin.qq.com/s/B6pEZLrayqzJfMtLqiAfpQ 1.什么是装饰器 网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象 每个人都有的内裤主要是 ...

  4. serviceloader java_【java编程】ServiceLoader使用看这一篇就够了

    转载:https://www.jianshu.com/p/7601ba434ff4 想必大家多多少少听过spi,具体的解释我就不多说了.但是它具体是怎么实现的呢?它的原理是什么呢?下面我就围绕这两个问 ...

  5. docker 删除所有镜像_关于 Docker 镜像的操作,看完这篇就够啦 !(下)| 文末福利...

    紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...

  6. mysql ip比较大小_MySQL优化/面试,看这一篇就够了

    原文链接:http://www.zhenganwen.top/articles/2018/12/25/1565048860202.html 作者:Anwen~ 链接:https://www.nowco ...

  7. 基础 | 零散的MySql基础记不住,看这一篇就够啦

    ❝ 这是小小本周的第二篇,本篇将会着重的讲解关于MySql基础的内容,MySql基础看这一篇就够啦. ❞ 送书反馈与继续送书 之情小微信公众号第一次送书,Java深度调试技术,书已经被中奖者麦洛签收, ...

  8. 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考

    [系统架构设计师]软考高级职称,一次通过,倾尽所有,看完这篇就够了,学习方法和技巧这里全都有. 论软件架构设计的重要性.本篇论文未通过考试(不合格),供分析参考. 目录 摘要 正文 结尾 摘要 201 ...

  9. 深度好文:云网络丢包故障定位,看这一篇就够了~

    深度好文:云网络丢包故障定位,看这一篇就够了~ https://mp.weixin.qq.com/s/-Q1AkxUr9xzGKwUMV-FQhQ Alex 高效运维 今天 来源:本文经授权转自公众号 ...

  10. 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了

    6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...

最新文章

  1. win7系统下载 ghost win7 Sp1 32位纯净3月版
  2. C examples
  3. 问题解决笔记,Restarting network (via systemctl):: Job for network.service failed. ...
  4. 【转载】Instagram架构分析笔记
  5. Apache Ignite的Node.js客户端使用入门
  6. 26行代码AC_试题 历届试题 日期问题 | 第八届蓝桥杯B组第七题
  7. 拜托!程序员的工作不能用时间来衡量
  8. matlab 创建图形对象,创建坐标轴图形对象
  9. 步进电机速度不够怎么办?
  10. window.open window.showModelDialog 打开一个新窗口/子窗口中调用父窗口的方法
  11. hdu1059Dividing
  12. java numberformat 方法_java.text.NumberFormat使用方法
  13. win10 永久删除自带微软拼音输入法
  14. 人工智能在计算机领域的应用论文,人工智能应用领域论文 关于人工智能领域的大学论文...
  15. #《神奇动物:邓布利多之谜》
  16. 金蝶迷你版凭证导入工具_金蝶kis迷你版如何插入凭证?
  17. LCD和OLED显示屏有什么区别?
  18. 冒泡排序(C语言版)
  19. 指责TD的人几个是有资格的?--艾瑞网专家项立刚的博客专栏 - 艾瑞网
  20. CHIL-ORACLE-创建用户

热门文章

  1. 4. Flux.filter与Flux.filterWhen的区别与联系
  2. 程序如何打包成apk文件
  3. 扩展欧几里得算法及贝祖定理的证明
  4. Linux怎样关闭防火墙?
  5. TunesKit Spotify Converter Mac(Spotify音乐转换工具) v1.5.1激活版
  6. multisim怎么设置晶体管rbe_multisim中添加大功率三极管的办法 multisim 三极管设置方法...
  7. c语言自动输入0到1000,c语言实现输入一组数自动从大到小排列
  8. Bootstrap教程简介
  9. MySql中的行锁,表锁
  10. 什么是熵(entropy)?