MIDI基础知识
=========大部分资源来自网上,有些翻译解释仅供参考==========
-------------------------------www.borg/~jglatt/tech/midispec.htm-----------------------------------
---------------------------------------------------------------------------------------------------
什么是MIDI
MIDI是乐器数字化接口(Musical Instrument Digital Interface)的缩写。是一个国际通用的标准接口。通过它,各种MIDI设备都可以准确传送MIDI信息。
它的传输方式为异步串行通讯,波特率为31.25K
MIDI文件的实质是什么?
MIDI 文件本身只是一堆数字信号而已,不包含任何声音信息。它记录的是在音乐的什么时间
用什么音发多长的音 等等,而真正用来发出声音的是音源,但是不同声卡,不同软波表,不同硬件音源的音是不同的,所以相同的MIDI文件在不同的设备上播放结果会完全不 一样。这是MIDI的基本特点。
MIDI设备有哪些?
MIDI音乐的基本设备是:音源,音序器,输入设备。

——最终发音的处理单元。不同的音源有不同的音数据,支持格式也不尽相同,有GMGSXG等,所以即使相同的midi发音也会不同。

音序器——俗称编曲机。把一首曲子所需的音,节奏,音符等等按照一定的序列组织以数字的形式编辑记录下它们。分软的和硬的。软件音序器也是一个程序,必须在电脑上安装以后通过电脑才能使用。我们应用的很多MIDI制作软件实际上就是音序器软件,如Cakewalk,Encore,Cubase VST等。硬件音序器和硬件音源一样,也是一个实际存在的东西,体积一般都很小,和音源连接以后就可以控制音源发声了。比较有名的硬件音序器有Ya
maha QY10,QY700等。

输入设备——最常见的是MIDI键盘,其他还有MIDI吹管,MIDI吉它,MIDI小提琴等等。它负责把音乐制作者弹奏的动作转变为MIDI信号,通过MIDI连线发送到音序器。
关于硬件设备与电脑的连接?

最常用的方法是使用一根MIDI CABLE线与电脑声卡上的JOYSTICKMPU401)口连接,该线的一头是15针的插口,接在声卡上,另一头有MIDI OUTMIDI IN5MIDI接口,把MIDI  OUT接你设备的MIDI INMIDI IN接你设备的MIDI  OUT
此外,还有USB连接方式,1394midi等。
GMXGGS
GM――General  MIDI  通用MIDI
Roland和Yamaha分别开发了自己的GM规定称为GSXG,互相不兼容。 GSXG需要专
利授权,不是免费的。
另外,还有一些音源厂家自定义的一些格式,如Dream公司
MIDI信息

NOTE ON  按键
9nH  kk  vv  MIDI 通道n(0-15) NOTE ON  键值kk(1-127) 力度vv(1-127)
            vv=0 表示 NOTE OFF
VELOCITY 力度――表示弹奏时的用力程度。对一个键盘而言,一个按键产生的力度大小是这样来的:简单说,一个按键按下时,会经过两个触点,通过测量两个点之间的经过时间,然后查表而得。这个工作由专门的力度程序完成,且实际的处理过程要更加复杂。现在部分dream产品自带了键盘扫描功能。
NOTE OFF  放键
8nH  kk  vv  MIDI 通道n(0-15) NOTE OFF 键值kk(1-127) 力度vv(0127)一般无意义
AFTERTOUCH复音触后――表示弹奏以后及松开以前施加的力度。
有的资料也称Key Aftertouch Polyphonic key Pressure
每个按键有单独的触后力度。
AnH  kk vv  键值kk  压力值vv
CHANNEL PRESSURE 通道触后――表示弹奏以后及松开以前施加的力度。
有的资料也称Channel Aftertouch
一个通道只有一个触后效果,即不是每个按键有单独的触后力度。
DnH  vv  压力值vv
对于触后的效果,不同的音源有所不同。
DREAM芯片:
F0 41 00 42 12 40 2n 20 vv xx F7  Pitch control (-24,+24 semitone) vv缺省40H
F0 41 00 42 12 40 2n 21 vv xx F7  Tvf cutoff control  vv缺省40H
F0 41 00 42 12 40 2n 22 vv xx F7  Amplitude (-100% - +100%)  vv缺省40H
F0 41 00 42 12 40 2n 24 vv xx F7  Ifo1 pitch depth (0 – 600 cents)  vv缺省0H
F0 41 00 42 12 40 2n 25 vv xx F7  Ifo1 tvf depth  vv缺省0H
F0 41 00 42 12 40 2n 25 vv xx F7  Ifo1 tva depth (0 – 100%) vv缺省0H
N
midi channel
0
9
1-9
0-8
10-15
10-15
n对应通道号,对应方法
(一般)为:
注:channelpart的对应可以设置。
xx : don’t care
PITCH BEND  滑音论
以渐变方式增加或减少音符的频率。
EnH  bl  bh  数据共14位,bh|bl,  缺省bl bh00H 40H
PROGRAM CHANGE 改变音
CnH  pp  音编号(0127
对于打击乐通道,可以选择不同的打击乐组。
对于普通通道,可以选择0127编号的音。
另外,还可以和库选择控制信息结合起来,选择更多的音。
BnH 00H cc ――Bank select )

MIDI控制器      ――BnH  编号 参数
MIDI控制器一览表
编号
参数意义
0
Bank select
音库选择MSB
1
Modulation wheel(coarse)
颤音深度(粗调)
2
Breath controller (coarse)
呼吸(吹管)控制器(粗调)
3
--
N/A
4
Foot Pedal (coarse)
踏板控制器(粗调)
5
Portamento Time (coarse)
连滑音速度(粗调)
6
Data Entry (coarse)
高位元组数据输入(Data Entry MSB
7
Volume (coarse)
主音量(粗调)  ----绝对的音量
8
Balance (coarse)
平衡控制(粗调)
9
--
N/A
10
Pan position (coarse)
相位调整(粗调)
11
Expression (coarse)
情绪控制器(粗调)  ----相对的音量
12-15
--
N/A
16-19
General Purpose Slider
一般控制器
20-31
--
N/A
32
Bank Select (fine)
音库选择LSB
33
Modulation Wheel (fine)
颤音速度(微调)
34
Breath controller (fine)
呼吸(吹管)控制器(微调)
35
--
N/A
36
Foot Pedal (fine)
踏板控制器(微调)
37
Portamento Time (fine)
连滑音速度(微调)
38
Data Entry (fine)
低位元组数据输入(Data Entry LSB
39
Volume (fine)
主音量(微调)
40
Balance (fine)
平衡控制(微调)
41
--
N/A
42
Pan position (fine)
相位调整(微调)
43
Expression (fine)
情绪控制器(微调)
44
Effect Control 1 (fine)
效果FX控制1(微调)
45
Effect Control 2 (fine)
效果FX控制2(微调)
46-63
--
N/A
64
Hold Pedal (on/off)
保持音踏板1(延音踏板)
65
Portamento (on/off)
滑音(在音头前加入上或下滑音做装饰音)
66
Sustenuto Pedal (on/off)
持续音
67
Soft Pedal (on/off)
弱音踏板
68
Legato Pedal (on/off)
连滑音踏板控制器
69
Hold 2 Pedal (on/off)
保持音踏板2
70
Sound Variation
变调
71
Sound Timbre
72
Sound Release Time
放音时值
73
Sound Attack Time
起音时值
74
Sound Brightness
亮音
75-79
Sound Control
声音控制
80-83
General Purpose Button  (on/off)
一般控制器(#5-#8
84
Portmento control――GS
连滑音控制
85-90
--
N/A
91
Effects Level
混响效果深度
92
Tremulo Level
(未定义的效果深度)
93
Chorus Level
合唱效果深度
94
Celeste Level
(未定义的效果深度)
95
Phaser Level
移调器深度
96
Data Button increment
数据累增
97
Data Button decrement
数据递减
98
Non-registered Parameter (fine)
未登记的低元组数值(NRPN LSB
99
Non-registered Parameter (coarse)
未登记的高元组数值(NRPN MSB
100
Registered Parameter (fine)
已登记的低元组数值(RPN LSB
101
Registered Parameter (coarse)
已登记的高元组数值(RPN MSB
102-119
--
N/A
120
All Sound Off
关闭所有声音
121
All Controllers Off
关闭所有控制器
122
Local Keyboard (on/off)
本地键盘开关
123
All Notes Off
关闭所有音符
124
Omni Mode Off
Omni模式关闭
125
Omni Mode On
Omni模式开启
126
Mono Operation
单音模式
127
Poly Operation
复音模式
MIDI系统信息
系统信息是维护整个MIDI系统正常操作的根本。系统信息是针对系统中的所有MIDI设备,而非只针对某一个或某一些设备发出的信息。这样,才有可能保证同步工作。
系统信息的分类:
系统公共信息(System Common Message);
系统实时信息(System Real Time Message);
系统独有信息(System Exclusive Message)。
系统信息的组成:
系统信息一般由若干条状态字节(Status Byte)和若干条数据字节(Data Byte)组成。状态字节用来表示某一种操作,或某一种信息类型等等,数据字节表示数据或量的大小。状态字节必须具备,而数据字节则根据实际情况而定,有些系统信息可以没有数据字节。
1、 状态字节的组成(请看下图)
D7
D033xxkk
字节标识          命令/信息标识                              信息种类
字节标识是一个识别位,状态字节的最高位必须是1,而数据字节的最高位必须是0,这样就可以使计算机快速识别出哪一个是状态字节。命令/信息标识识别位由三个位来表示MIDI信息或命令的种类,而最后四位代表信息种类。
2、 数据字节的组成(请看下图)
D7
D0
字节标识                      数据位
数据字节的第一个也是识别位,必须为0,后面七位则用来表示数据位,那么00000000B—01111111B则可表示十进制为0~127的数值。
系统公用信息
系统公用信息的状态字节取值从F1~F7H,共有7项:
1MIDI Time Code Quarter Frame  MIDI四分之一帧时间码
由一个状态字节和一个数据字节组成,格式为
状态字节:11110001B    F1H
数据字节:0nnndddd    nnn为信息类型,dddd为数据
作用:把SMPTE时间码同步信息转换为MIDI时间码的格式,SMPTE时间码是广泛应用于电影或电视摄制中的时间码。在用MIDI系统来进行配乐时,SMPTE时间码只有转换为MIDI时间码的格式,才能够被MIDI系统采用和接受。一个SMPTE时间码需要4MIDI Time Code Quarter Frame来表示,其中在数据字节中可以指明是小时、分、秒还是帧,dddd则是相应的数值大小。