MIDI信息说明

Jef*_*uss 0 midi messaging

MIDI消息的位/字节结构是什么?

Jef*_*uss 5

是!我在这里为自己做了一个。这可能对其他人有用!
https://drive.google.com/file/d/0B3RK-KfkucDQT0J0aGFOb3pWeU0/view

完整的MIDI信息

每个midi消息的长度为3个字节:1个状态字节,后跟2个数据字节。每个字节的第一位用于标识它是状态字节还是数据字节。所有状态字节均以1开头,所有数据字节均以0开头

1??? ????    0??? ????    0??? ????
Run Code Online (Sandbox Code Playgroud)

因此,十六进制的状态字节为80及以上,数据字节为7F及以下。

状态

对于状态80…EF,状态消息中的第二个十六进制数字是通道号。16个MIDI通道映射到0到F。

例如:80…8F都是16个MIDI通道中每个通道的音符关闭命令。

第一个十六进制数字指定它发送哪种消息。以8到E开头的状态(可能的7个值)是特定于通道的消息。第一个十六进制是消息的类型,第二个十六进制是通道。F0…FF映射到各种全局消息和sysex消息。

状态80…EF

8_注意事项
9_注意
A_聚触后
B_控制/模式变更
C_程序变更
D_通道触后
E_弯音

状态F0…FF

FO System独家F8计时时钟
F1 MIDI时间码Qtr。Fram F9未定义(保留)
F2乐曲位置指针FA开始
F3歌曲选择(歌曲#)FB继续
F4未定义(保留)FC停止
F5未定义(保留)FD未定义(保留)
F6调音请求FE主动感应
SysEx(EOX)FF系统重置的F7结束

近距离查看数据字节

由于数据字节浪费了第一位,使其为0,所以我们有128个可能的值,即7位:

00 … 7F     which is 0 … 127 in decimal
Run Code Online (Sandbox Code Playgroud)

近距离观察状态80…AF-和弦信息

前三种消息是和弦的。第二个字节(第一个数据字节)指定了音符。由于第一位被浪费了,所以我们有7位,这给了我们128个值和128个不同的音符。

____状态字节_____ | _数据字节1__ | _数据字节2__
8_请注意| 注意(0-127)|速度(0-127)
9_注意| 注意(0-127)|速度(0-127)
A_ poly触后| 注意(0-127)|压力(0-127)

近距离查看状态B0…BF-控制更改(CC)消息

____状态字节_____ | _数据字节1__ | _数据字节2__
B_ CC讯息| CC#(0-127)| CC值(0-127)

最定义(因此使用最多)的控制更改(抄送号)

0 Bank Select(MSB)(之后是cc32和程序更改)
1个调制轮
4英尺踏板(MSB)
6数据输入(如果遵循cc100 = 0和cc101 = 0,则为MSB,这是弯音范围
7音量(MSB)注意:CC7和11均可调节音量。 
                        使用cc7,就像控制放大器一样-
                        进行设置并将其保留在MIDI轨道的开头
10平移位置(MSB)
11表达式(MSB)注意:CC7和11均可调节音量。使用cc11作为音量
                        曲目中的变化(渐强,渐弱, 
32组选择(LSB)(请参见cc0)
64 Hold Pedal(开/关)几乎每个合成器都会对64(延音踏板)做出反应
65滑音(开启/关闭)
71共鸣(aka Timbre)
74频率截止(又名亮度)
91混响水平
93合唱级别

最好不要使用下面的组来分配控制器。 
96数据按钮递增97数据按钮递减
98未注册参数(LSB)99未注册参数(MSB)
100注册参数(LSB)101注册参数(MSB)

除非要调用这些功能,否则不要使用它们
120关闭所有声音121关闭所有控制器
122本地键盘(开/关)您可能实际上使键盘崩溃了。
123全部备注

仔细查看状态C0…DF-程序更改和单音触后

这些消息都没有使用最后一个字节,也就是第二个数据字节。因此,他们只是将自己标识为程序更改消息(C_)或触后(D_),然后将通道号替换为_。

   
____状态字节_____ | _数据字节1__ | _数据字节2__
C_程序更改|程序(0-127)| 没有
D_触后|压力(0-127)| 没有

近距离观察状态E0…EF-弯音(14位!)

音高弯曲是不寻常的,因为它使用两个数据字节来获得更好的分辨率。前几位当然仍然被浪费掉了,但是剩下14位可以工作,这是16,384个可能的值,而不是128个。如果弯音轮跨越两个八度音阶,一个向上和一个向下,我们将有682个可能的值半步即百分之七。不错!

____状态字节_____ | _数据字节1__ | _数据字节2__
E_弯音| LSB(0-127)| MSB(0-127)

状态概述80…EF-通道数据

这是通道1中的中间C的速度为60的完整消息:

90 3C 3C
Run Code Online (Sandbox Code Playgroud)

这是同一笔记的笔记关闭消息:

80 3C 3C
Run Code Online (Sandbox Code Playgroud)