音频应用   音频插件联盟,正版插件,欢迎大家选择!

 找回密码
 快速注册

QQ登录

只需一步,快速开始

阅读: 25025|回复: 2

[midi] MIDI原理与开发应用

[复制链接]

2万

积分

4

听众

-1437

音贝

音频应用初级会员

Rank: 6Rank: 6

积分
24158
发表于 2004-10-7 | |阅读模式
音频应用公众号资讯免费发布推广
《MIDI原理与开发应用》笔记
第一章        计算机音乐概论
1. MIDI(Musical Instrument Digital Interface)协议发展过程:
1983年MIDI协议1.0
1990年Roland公司:GS标准
1991年国际乐器制造协会:General MIDI(GM协议),规定MIDI音色排序表,收录常用16类乐器,每类各8种音色,一共有128种音色
1994年YAMAHA公司:XG音源标准

2. 数字声频主要格式
扩展名        说明
Aiff (Audio Interchange File Format)        Apple计算机上的声音文件存储格式
Au (Audio)        Sun, NeXT公司的声音文件存储格式
Mp2        MPEG-1 Audio Layer I, II
Mp3        MPEG-1 Audio Layer III
Mp4        MPEG-4 Audio/Video
ogg        Ogg Vorbis的声频文件格式
Rm (RealMedia)        RealNetworks公司的流式媒体文件格式
Ra (RealAudio)        RealNetworks公司的流式媒体文件格式
Voc (Voice)        Creative Labs公司的声音文件格式
Wav (Waveform)        Windows采用的波形声音文件存储格式
Wma (Windows Media Audio)        Microsoft公司的流式声频文件格式

Wav格式:
基于PCM编码的WAV文件是音质最好的声频文件格式。采用44.1kHz的取样频率和16bit量化位数的WAV音质可以与CD音质相差无几。

Mp3格式:
12:1压缩比,接近CD音质
Mp3PRO,在基本不改变文件大小的情况下改善原先的Mp3文件音质。

Wma格式:
支持流技术,即边读边放,实现在线广播。压缩率18:1,还可通过DRM加入防复制功能,可用来保护版权。
根据码率和取样率的不同,WMA与MP3音质各有高低。

Ra/Rm/Rmx格式:
可实时传输声频信息,主要适用于网络在线播放。除了边读边放,还支持使用特殊协议来隐匿文件真实网络地址,从而提供只播放不下载的欣赏方式。

3. 基于数字声频技术的音乐制作方法
2016072657959437.png
4. 乐理基础
人耳感知范围:20Hz - 20kHz
乐音的三(四)大要素:响度(振幅大小决定)、音高(振动频率——基频决定)、音色/音品(声音的频谱成分决定)、时值(具有相对性)
基音与泛音:基音又称主频,基频,泛音又称谐频。弦的振动形成的声波中最低频率称基音,基他基频整数倍的频率为泛音。基音决定声调,泛音决定音色。
节拍:2/4表示以四分音符为一拍,每小节二拍。
速度(Tempo):J=120表示每分钟演奏120个四分音符。这种速度下,每个四分音符时值为0.5秒。
织体:由主旋律(音乐主线条),副旋律(主旋律陪衬),和声层,低音层(支撑音乐),节奏层(一般由打击乐、短乐或噪声组成,稳定音乐的行进速度,烘托音乐气氛)等组成。

第二章 MIDI技术详解
1. MIDI硬件规范
MIDI接口包含3种不同的连接器:IN,OUT,THRU(穿越,用于菊花式链接多个MIDI设备)。
菊花式链接设备:
方法一:设备1的THRU连设备2的IN,设备2的THRU连设备3的IN。
方法二:设备1的OUT连设备2的IN,设备2的OUT连设备3的IN。
MIDI控制器:当作乐器使用的一种设备,它能把演奏转换成实时的MIDI数据流。
MIDI音序器:允许MIDI数据被捕获、存储、编辑、组合和重奏的装置。
MIDI数据流是单向异步的数据位流,常由MIDI控制器产生,比如乐器键盘、吉他等;也常由MIDI音序器产生。

2. MIDI合成器原理
音乐合成器(音源):对MIDI消息进行译码并执行收到的指令,从而产生出指定的音乐。有两种合成方法:频率合成方式和波形表合成方式。
FM合成方式:通过组合各种波形产生复合乐音,来模拟各种乐器的声音。有好的听觉效果但难以产生逼真的乐音,有些乐音则几乎不能产生。
波形表合成方式:乐音样本合成法。把真实乐器发出的声音波形以数字的形式记录下来,再根据需要以不同的速度将录音回放出来,以产生各种波形和各种音高的乐音,更加逼真。对真实乐器声音波形的记录可以是有限的样本,例如:钢琴有88个音阶或键,一般仅需对其中一个或两个8度音阶内的12个-24个琴音进行采样并存储,利用这些音的采样值并配合不同的回放速度就可以产生出全部的88个音。

3. MIDI信息标准
General MIDI标准:制定了一份MIDI乐器应当遵从的音色排序表,共128种音色(16组乐器,每组定义了8种乐器音色),包含了常用的乐器及一些音效,并规定了47种打击乐器在键盘上的对应位置。其中打击乐使用第10通道,旋律乐器使用1-9和11-16号通道。

一个MIDI消息由1个8位的状态字节并通常跟着2个数据字节组成。状态字节最高有效位设成1,因而他总不小于80H,低4位用来表示这个MIDI消息是属于哪个通道,其余3位表示MIDI消息的类型;数据字节总是小于80H。

MIDI消息分为通道消息和系统消息。
通道消息:分两种。
(1)通道声源消息:它携带着演奏数据。
(2)通道方式消息:表示合成器响应MIDI数据的方式。
系统消息:分三种。
(1)系统公共消息:它标识在系统中的所有接收器。
(2)系统实时消息:它用于MIDI部件之间的同步。
(3)系统独占消息:这是厂商的标识代码。

消息格式:xm nn kk(1个状态字节+2个数据字节)
Xm:状态字节。决定了8种MIDI命令和16个MIDI通道。
Nn:数据字节。代表音符号、控制号等,取值0-127。
Kk:代表按键、释放键力度(音量)等,取值0-127。
例如:
(1)93 60 68:音符开,4通道,音符为60,按键力度68。
(2)83 60 68:音符关,4通道,音符为60,按键力度68。
(3)93 60 0 :相当于(2)
(4)C2 40  :表示将第3道的音色改变为40号音色(小提琴音色编号)。

MIDI文件:由一个头块(Header Chunk)和紧接着的一个或多个音轨块(Track Chunk)。头块以MThd为标志,音轨块以MTrk为标志。
MIDI文件的块结构:
类型        长度        数据
4字节        4字节        (规定的)长度

举例:“4d 54 68 64 00 00 00 06 ff ff nn nn dd dd”。
解说:
“4d 54 68 64”是ASCII字符“MThd”,“00 00 00 06”表明之后有6个字节。
“ff ff”定义了MIDI文件的格式类型:格式0为单音轨文件,格式1为多音轨文件,格式2为多音序器音轨文件。
“nn nn”表示音轨块个数。
“dd dd”定义了MIDI事件的时间格式类型。
音轨块数据:由一对或多对+组成。是必需的,它指前一个事件到该事件的时间间隔,单位为tick。在连续的音轨块数据流中,每个MIDI事件前都必须有一个时间差参数,也就是“时间差参数+状态字节+数据字节”。
举例:一个编号为3C的音,它的时值为一个四分音符,选用通道1,则相应的MIDI事件组合为:
00(delta-time) 90 3C 40(通道1,开3C音) 78(delta-time) 80 3C 40(关3C音)

Meta事件:除了包括MIDI事件外,还包括Meta事件。Meta事件用来表示像track名称,歌词,提示点等,它并不作为MIDI消息被发送,但是它仍然是MIDI文件有用的组成部份。格式为:ff xx nn dd。
Ff:Meta事件的标志。
Xx:描述Meta事件的类型,取值范围00-7F。
Nn:紧跟其后的数据长度。
Dd:数据

MIDI文件举例:
按照下面给出的曲谱,写出MIDI文件。
1 = C    4/4    120拍/分
| 3 3 5 i - |
要求采用MIDI文件格式0来书写,音色为小号。

1. 定义一个时间分辨率,通常可设置一个四分音符的tick数为120(即78h),任选一通道:通道2。
2. 接下来写MIDI文件。先写头块:4d 54 68 64 00 00 00 06,这是固定的格式。由于指定采用格式0,所以接下来的格式参数应当是00 00,再接下来写音轨数00 01,再下面要指定基本时间,应当是00 78,这样完整的头块为:
4d 54 68 64 00 00 00 06 00 00 00 01 00 78
3. 由于定义了MIDI格式0,所以只有一个音轨块。先写“MTrk”,即4d 54 72 6b,之后的数据长度xx xx xx xx先空着,最后再补。接下来写全局信息,全局信息是ff开头的Meta事件,Meta事件的时间差都为0,再之后逐一写通道2发生的所有MIDI事件。最后被上数据部分长度:72B(即48h),即将xx xx xx xx写上00 00 00 48。

写好的MIDI如下:
J351.MID
文件:4D 54 68 64  00 00 00 06   00 00   00 01   00 78
注释:  MThd      参数长度6    格式0  1音轨  1/4音符
文件:4D 54 72 6B  00 00 00 48
注释:  MTrk      音轨块长度
文件:00         ff 03 08 75 6E 74 69 74 6C 65 64   00           ff 01 02 63 0A
注释:   音轨名称untitled               作者名称untitled
文件:00         ff 58 04 04 02 18 08   00        ff 59 02 00 00   00   ff 51 03 07 A1 20
注释:   拍子记号         音调符号    音符速度
文件:00         C0 38               00        90 40 64       3C       40 00
注释: 通道1音色56      开40音      关40音
文件:00         40 64        3C     40 00      
注释: 开40音 关40音
文件:00         43 64        78     43 00
注释: 开43音 关43音
文件:00         48 64        81 70   48 00
注释: 开48音 关48音
文件:00         ff 2F 00
注释: 音轨结束

4. MIDI设备的同步
MIDI规定以24PPQ(Pulse Per Quartnote)作为MIDI Clock系统的规格。即在一个四分音符的时间内,MIDI系统会发送出24个Real-time Messages(实时同步信息),因此音乐的速度决定了这些Real-time Messages发送时间的快慢。比如tempo = 80拍/分钟,每秒将产生32个Real-time Messages。(80/60*24=32)

SMPTE(the Society of Motion Picture and Television Engineers,电影电视工程协会):为了解决影音的同步问题,就制定了用于同步的SMPTE时间码,该编码显示方法为:Hour:Minute:Second:Frame(时:分:秒:帧)。SMPTE时间码格式较多,举例如下:
(1)SMPTE25 EBU格式:25帧/秒
(2)SMPTE24 Film Sync格式:24帧/秒
(3)SMPTE30 Non-Drop格式:30帧/秒
(4)SMPTE30 Drop格式:29.97帧/秒
要处理声频和视频同步,难点就在于,MIDI音序和数码声频工作站使用的SMPTE时间码,与视频系统的SMPTE时间码必须是统一的。MIDI、声频和视频在同步处理时,共同采用SMPTE30 Non-Drop格式,但视频是以29.97帧/秒播放,所以SMPTE30 Drop格式诞生了。但由于SMPTE30 Drop时间与现实世界时间存在差异,所以它力图通过“丢弃”一些帧数来弥补这种差异。

MTC时间编码:由于MIDI Clock只能用于MIDI设备间的连接,为了让MIDI设备能与其他设备同步连接,这种完全兼容SMPTE时间编码的MIDI同步信号——MTC时间码就诞生了。
音频应用

1856

积分

2

听众

-238

音贝

音频应用新手发布

Rank: 3

积分
1856
发表于 2004-10-8 |
收藏了,谢谢楼主啊  
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

384

积分

2

听众

-26

音贝

音频应用

Rank: 1

积分
384
发表于 2004-10-9 |
好![em01]
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

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

Powered by Audio app

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