MIDI音乐,看这一篇就够了
目录
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接口了)或者音乐合成器里,并以音频的形式输出,或者记录在电脑文件里。
2: MIDI的发展历程
2.1: 从混乱到统一
早期的MIDI并没有统一标准,具体由各个硬件厂商自己实现指令。这也就存在着严重的弊端:将不同品牌的键盘和合成器连在一起,就可能会导致音高不准、乐器不对等各种错误。例如,你用雅马哈的键盘连接Roland合成器,设置成钢琴音色,但有可能弹出萨克斯的声音。为了解决此冲突,Roland公司率领大家制定了MIDI统一标准:GS。后来又陆续制定了GM(General Midi)、GM2、XG(eXtended General midi)标准,其中以GM2最流行。
2.2: 从载波调制到波表合成
最初MIDI合成器是直接调制正弦波以模拟出不同乐器的音色,该方式成本极低,实现难度也极低,但音质十分差,听得令人头皮发麻。追求播放质量的人们自然不会停下研发新技术的脚步。
OPL2/OPL3是最著名的FM合成器芯片标准,当时所有的声卡都采用此芯片标准。
波表合成(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的波表可选
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音乐,看这一篇就够了相关推荐
- 如何快速找到志同道合的人?看这一篇就够了
如何快速找到志同道合的人?看这一篇就够了 一.前言 参加工作也有挺长一段时间了,一直以来自己也很希望可以真正为自己打拼一片天地,这应该也是大部分中产白领很希望做的事,有些人成功了,有些人在路上,而有些 ...
- api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)
如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...
- python装饰器功能是冒泡排序怎么做_传说中Python最难理解的点|看这完篇就够了(装饰器)...
https://mp.weixin.qq.com/s/B6pEZLrayqzJfMtLqiAfpQ 1.什么是装饰器 网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象 每个人都有的内裤主要是 ...
- serviceloader java_【java编程】ServiceLoader使用看这一篇就够了
转载:https://www.jianshu.com/p/7601ba434ff4 想必大家多多少少听过spi,具体的解释我就不多说了.但是它具体是怎么实现的呢?它的原理是什么呢?下面我就围绕这两个问 ...
- docker 删除所有镜像_关于 Docker 镜像的操作,看完这篇就够啦 !(下)| 文末福利...
紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...
- mysql ip比较大小_MySQL优化/面试,看这一篇就够了
原文链接:http://www.zhenganwen.top/articles/2018/12/25/1565048860202.html 作者:Anwen~ 链接:https://www.nowco ...
- 基础 | 零散的MySql基础记不住,看这一篇就够啦
❝ 这是小小本周的第二篇,本篇将会着重的讲解关于MySql基础的内容,MySql基础看这一篇就够啦. ❞ 送书反馈与继续送书 之情小微信公众号第一次送书,Java深度调试技术,书已经被中奖者麦洛签收, ...
- 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考
[系统架构设计师]软考高级职称,一次通过,倾尽所有,看完这篇就够了,学习方法和技巧这里全都有. 论软件架构设计的重要性.本篇论文未通过考试(不合格),供分析参考. 目录 摘要 正文 结尾 摘要 201 ...
- 深度好文:云网络丢包故障定位,看这一篇就够了~
深度好文:云网络丢包故障定位,看这一篇就够了~ https://mp.weixin.qq.com/s/-Q1AkxUr9xzGKwUMV-FQhQ Alex 高效运维 今天 来源:本文经授权转自公众号 ...
- 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了
6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...
最新文章
- win7系统下载 ghost win7 Sp1 32位纯净3月版
- C examples
- 问题解决笔记,Restarting network (via systemctl):: Job for network.service failed. ...
- 【转载】Instagram架构分析笔记
- Apache Ignite的Node.js客户端使用入门
- 26行代码AC_试题 历届试题 日期问题 | 第八届蓝桥杯B组第七题
- 拜托!程序员的工作不能用时间来衡量
- matlab 创建图形对象,创建坐标轴图形对象
- 步进电机速度不够怎么办?
- window.open window.showModelDialog 打开一个新窗口/子窗口中调用父窗口的方法
- hdu1059Dividing
- java numberformat 方法_java.text.NumberFormat使用方法
- win10 永久删除自带微软拼音输入法
- 人工智能在计算机领域的应用论文,人工智能应用领域论文 关于人工智能领域的大学论文...
- #《神奇动物:邓布利多之谜》
- 金蝶迷你版凭证导入工具_金蝶kis迷你版如何插入凭证?
- LCD和OLED显示屏有什么区别?
- 冒泡排序(C语言版)
- 指责TD的人几个是有资格的?--艾瑞网专家项立刚的博客专栏 - 艾瑞网
- CHIL-ORACLE-创建用户
热门文章
- 4. Flux.filter与Flux.filterWhen的区别与联系
- 程序如何打包成apk文件
- 扩展欧几里得算法及贝祖定理的证明
- Linux怎样关闭防火墙?
- TunesKit Spotify Converter Mac(Spotify音乐转换工具) v1.5.1激活版
- multisim怎么设置晶体管rbe_multisim中添加大功率三极管的办法 multisim 三极管设置方法...
- c语言自动输入0到1000,c语言实现输入一组数自动从大到小排列
- Bootstrap教程简介
- MySql中的行锁,表锁
- 什么是熵(entropy)?