当前位置:   article > 正文

MIDI歌曲解析_csdn midi

csdn midi

MIDI歌曲解析



 

序言

   本文主要讲解MIDI文件的解析,前5章主要介绍MIDI歌曲规范,并引用大量的实例加深理解,学会查看MIDI歌曲的构成,使读者对如何写MIDI格式的歌曲有初步了解。第6章描述MIDI中速度的规范,以及实际歌曲如何描述歌曲速度的,并且列出之间的转化。第7章将具体的分析几首MIDI歌曲,并阐述如何快速的分析标准化规范的歌;然后举出不太规范的例子的分析方法,最后单独分析格式为0的例子,并且具体分析格式0和格式1的互相转化。使用标准化的规范描述MIDI歌曲具有现实意义,能迅速掌握歌曲构成,但是现实很多人对标准进行简化,这样就加剧了构成可读性的难度,进而导致各种歌曲格式转化的难度。最后附上几首MIDI歌曲的原文本,供读者理解及查询。

 

第一章  MIDI结构和书写格式

MIDI格式的歌曲自产生以来,得到迅速的扩展以及广泛的应用,大概有以下原因: 

①MIDI文件结构在网络传送中,通常采用7位数据传送方式(不考虑字节的最高位),大大提高了传输速度;

②MIDI文件的歌曲体积很小,便于传送;

③有利于创作音乐,是很多作曲家在创作初期的首选。

缺点是:由于MIDI文件的结构相当于一个文本文档,记录了音乐该如何进行(相当于歌曲的乐谱),所以它的回放音色效果完全取决于MIDI乐器的硬件设施。

MIDI文件由大量的数据块组成,可以从附件1中观察到,一行也即一块,共有4个字节,32位长度,它的具体构成如表1所示:

     

类型

长度

数据

4个字节

4个字节

4个字节

                              表1

其中类型是ASCII"MThd"或"MTrk",长度是除去类型和长度两部分外,其它数据占的字节数,表(1)的块结构是MIDI文件以12个字节为一行存储的,不同于下表的MIDI文件结构:

 

头块

(Header  Chunk)

头块标记

(MThd chunk type)

头块数据长度6

<length of header data>

6字节的数据

<header data>

音轨块1

块标记(MTrk)

(MTrk chunk type)

音轨数据长度

 <length of track data>

音轨数据(一连串按时间顺序排列的事件)<track data>

……

……

……

……

音轨块n

块标记(MTrk)

(MTrk chunk type)

音轨数据长度

<length of track data>

音轨数据

<track data>

                        表MIDI文件结构

其中<track data> = <MTrk event>+<MTrk event>….. = <delta-time> <event>

  <音轨数据> = <MTrk 事件>+<MTrk 事件>….. = <时间差> <事件>

其中<event> = <MIDI event> | <sysex event> | <meta-event>
      <事件> = <MIDI 事件> | <系统码事件> | <元-事件>

 

表(2)定义了MIDI文件的两种类型:文件头块和音轨块,MIDI文件通常以文件头块开始,接着是一个或多个音轨块。

文件头块描述了整个MIDI文件的信息;

音轨块由一系列事件组成,具体内容是:歌曲名字、音轨名字、序列、音轨结构,拍子、调号、乐器、音符等。音轨数据块是实际歌曲数据存放的地方,本质上是一系列MIDI事件和非MIDI事件,并且每个事件前面都带有时间差(delta-time)。

MIDI文件使用单条或多条音轨格式记录事件,只要时间差设置的合适,不同格式间还可以相互转化。

第二章  MIDI文件头块

本章主要讲述MIDI文件的头块的具体构成,包含的信息:头块类型、头块长度和数据部分。头块长度是可变常量,每个字节的最高位为标志位;数据部分包括:格式、音轨数、分区,总共有316bit字节,需要先存储高位。以下是头块的语法和格式(16进制): 

 

<头块类型> <头块长度> <格式> <音轨数> <分区>

<Header chunk type> <length> <format> <ntrks> <division>

<4d 54 68 64 ><00 00 00 06>< ff ff>< nn nn> < dd dd>

         

前4个字节是头块类型,表示“MThd”的ASCII码,每个MIDI文件都以这四个字符为开头;

“00 00 00 06”是头块长度,表明文件头块描述信息的字节数,对于目前的MIDI标准这个值是固定的,只能是6;

“ff ff”定义了整个文件的组织结构,表明MIDI文件的格式,一共有三种情况;

“nn nn”是音轨块的块的个数;“dd dd”是一个四分音符的tick数。

14D 54 68 64 00 00 00 06 00 01 00 0A 01 E0              

00 01同步多音轨

00 0A文件中总共有10个音轨块,其中包括1块总音轨,9块分音轨

01 E0 分区,是16进制,最高位不是标志位,换算为10进制是480=2^8+2^7+2^6+2^5

例子来自附件1

                         

2.1  格式

MIDI文件有三种格式,在MIDI文件中存储的形式是16进制,具体作用如下表:

 

ff ff 

格式

指定midi的格式

00 00

格式0

单音轨:头块的后面只有一个音轨块 。

00 01

格式1

多音轨,且同步:头块的后面有2个或者以上的音轨块,所有音轨块垂直同步,也就是说所有的音轨块开始演奏的时间相同;或者是其他的措辞都在同一时间开始,并且可以表现一首歌的不同部分。

00 02

格式2

多音轨,但不同步:头块的后面有多个音轨块,所有音轨块不同步,音轨块播放时间指令由开始时间决定,这种格式的MIDI文件有很大的复杂度,所以这种格式比较少见。

                                表 

格式0,是一个多通道音轨块,存储了不同的音轨块的信息。从附件3里可以看到事件前需要添加通道状态标志,以便播放歌曲时能区别出来事件发生在那一通道,这是最简单的格式,但也使文件体积增大。

格式1,是一个垂直一维表,不同通道的信息垂直分布。这种格式最为常用。

格式2,是一个水平一维表,支持多个独立模式的程序要能够保存和读取格式2的数据。

MIDI文件格式不同,内部的复杂度会有较大差别,三种格式的复杂度是递增的,而且前一种格式总可以近似的看作后一种格式的特例,所以只要面向最复杂的类型2做好各种处理,相对简单的类型0和1只要稍作修改即可支持,也即不同格式间可以互相转换。

2.2  音轨数

“nn nn”表明轨道块数,等于实际音轨块数加上一个全局的音轨块。

在解析MIDI文件时,通常根据音轨块数,就可以判断MIDI歌曲总共含有多少个音轨块,特别是对于格式12,这对程序的编写是非常有利的。

注意:自己编写MIDI文件的歌曲时,多加一个音轨,就要更改”nn nn”的数目。

2.3  分区

“dd dd”也即分区,是把一个四分音符长度的时间平均分成DTT“delta-time ticks”(DTT微小时间事件片)份,DTT是MIDI文件中的时间计量单位,一个DTT比1秒短的多。在MIDI文件中是以16进制存储的,是可变常量,但是高位字节的最高位设置为0。具体作用如下表:

 

dd dd 

指定基本时间格式类型

类型1:定义一个四分音符的tick数,tick是MIDI中的最小时间单位

类型2:定义每秒中SMTPE帧的数量及每个SMTPE帧的tick 

 

在MIDI文件中,通常设置分区为120,但MIDI文件也支持更改这个值。由于这种情况在实际应用中比较少见,因此可以通过统一转换为120的方式,在不影响正确性的前提条件下,降低解析的复杂度。本文的附件中的分区都是变化的,不是120

如果division是负数,则表示delta-time的一秒钟的分割量,因此音轨事件发生可以用精确时间代替韵律时间来表示。表示如下:第一字节是-24,-25,-29,-30四个值之一,相对应4种标准的SMPTE和MIDI事件码,和表示每秒的帧数。第二字节(保存正数)是帧的解析度:通常值可能是4(MIDI时间码解析度), 8, 10, 80 (比特解析度)或100。 系统允许定义额外的基于时间码的音轨,也允许25帧每秒和40个单位每帧解析度的基于毫秒的音轨。)
    例201 E0 

     可以写成0000 0001 1110 0000所以换算为10进制是480=2^8+2^7+2^6+2^5     

第三章  音轨块结构

在第一章中已经知道音轨块的语法:

<Track data> = <MTrk event>+<MTrk event>…… = <delta-time> <event>

<音轨数据>= <MTrk 事件>+<MTrk 事件>…… = <时间差> <事件>

<event> = <MIDI event> | <sysex event> | <meta-event>
  <事件> = <MIDI 事件> | <系统码事件> | <元数据-事件>

 

MIDI文件的音轨块包括:全局音轨和分音轨。

首先是全局音轨块,主要包括:歌曲的附加信息(比如标题和版权),歌曲速度和系统码(sysex)等。

接着是分音轨块,主要包括:MIDI事件、非MIDI事件和系统码事件,每个事件前面都有时间差。事件的基本格式为:种类+参数。

不管是全局音轨还是含有音符的分音轨,都以“4D 54 72 68”开头,它其实是ASCII字符“MTrk”,其后跟着一个4字节的整数,它标志了该轨道的字节数,这不包括前面的4个字节和本身的4个字节。

通过简单的计算得出一个音轨块的长度最多是(2^32+8)个字节,由于音轨块长度是可变常量,最小为1个字节,最大是4个字节,字节的最高位没有标志位,完全采用10进制转为16进制的计算方法,从这种意义上来讲,音轨块中MIDI事件个数也是有限制的。

3.1  时间差(delta-time 

时间差是可变常量(variable length quantity),含义是将要发生的事件与前一事件之间的时间差值。如果音轨第一个事件发生在开头,或者两个事件同时发生,<delta-time>设为零。 

注意:时间差区别于文件头块的DTT,两者的具体含义是不同的,只是都是长度变量。时间差的10进制在转为16进制时,字节的最高位是标志位。具体方如下:

对于0-127tick, 标志位为0,用一个字节(8位表示);对于大于127tick,标志位为1,用多个字节表示,也即除了最后一个字节的最高有效位是0外,其它字节最高位是1。

优点:这种记录方法允许一个数值被一次一个字节地读取,如果发现某个字节的最高有效位是0,那么它就是这个数值的最后一个字节。

依照MIDI说明,全部delta-time的长度最多不超过4字节,并且最大值为0FFFFFFF 

 例1: 65535tick(10进制)=83 FF 7F(16进制)

    65535tick=128^2*3+128^1*127+128^0*127

    1000 0011=83 由于远远大于127,所以标志位为1(3的16进制0000 0011把最高位0改为1,也即1000 0011)

        1111 1111=FF由于大于127,所以标志位为1(127的16进制0111 1111把最高位0改为1,也即1111 1111)

        0111 1111=7F由于小于127,所以标志位为0(127的16进制0111 1111)

3. 2  MIDI事件(MIDI events

查文章《MIDI作曲系统简介》通过把MIDI的不同通道分配给各种音色,就能产生乐器合奏的效果,音源最大的特点是可以根据需要调整音色的参数,以编辑新的,甚至是本来不存在的音色。

MIDI事件也叫MIDI events,常见的有音符事件、控制器事件和系统信息事件等。

事件组成:种类+参数。

种类用状态字节来区分,总是大于等于80H

参数用数据字节来区分,总是小于80H

因此可以很容易区分状态字节和数据字节。在状态字节中,用数据的低4为表示通道号,高4位表示不同的命令。

这里有个例外就是meta-event,状态字节是FF,需要一个长的参数区分不同事件,3.3 章节给出了此类事件的规范。如何参照下表读取MIDI事件,第5章将给出详细介绍。下表中的x是音轨通道,总共有16个(0是第一通道)。

 

种类

参数(16进制)

字节

含义

8x

松开音符

Note off

音符(00—7F):松开的音符

力度:00—7F

9x

按下音符

Note on

音符(00-7F);按下的音符

力度:00-7F

Ax

Key after Touch

音符:00-7F

力度:00-7F

Bx

控制器

控制器号码:00-7F

控制器参数:00-7F 

Cx

Program changes

乐器号码:00-7F

Dx

Aftertouch

值:00-7F

Ex

滑音

音高(pitch)低位:pitch mod 128  

音高(pitch)高位:pitch div 128

F0

系统码

系统码字节总数:长度变量(有标志位)

系统码:不含开头的F0,但包括结尾的F7

FF

其他格式

格式种类:00-FF

数据占用的字节总数:长度变量(有标志位)

数据

00-7F

上次激活格式的参数(8x,9x,Ax,Bx,Cx,Dx,Ex)

 

3.3  非MIDI事件(Non- MIDI events)

MIDI事件。非MIDI事件也叫meta-event(元事件),是MIDI文件中的非MIDI信息,语法规定如下:

 

     FF<种类><字节数><数据>

      FF <type> <length> <bytes>

 

     所有的meta-event都以0xFF开头,接着是事件种类(总小于128)、数据的长度值length(用长度变量表示,无标志位)、数据。如果没有数据,那么长度为0。元事件的规范如下表:

               下表详细的列出了FF的详细情况,对于字节数由数据决定的情况,表中以

               “--”表示

种类

字节数

数据

字节

含义

00

设置轨道音序

02

音序号 00 00-FF FF

01

歌曲备注

--

文本信息

音轨文本

文本信息

02

歌曲版权

--

版权信息

03

歌曲标题

--

歌曲标题:用于全局音轨,第一次使用表示主标题,第二次表示副标题

音轨名称

--

音轨名

04

乐器名称

--

音轨文本(同01/2)

05

歌词

--

歌词

06

标记

--

用文本标记(marker)

07

开始点

--

用文本记录开始点(同01/2)

08

Program name

--

歌曲文件的名字

09

设备名字  DeviceName

--

MIDI设备的名字

20

MIDI通道

01

MIDI通道,0通常为第一通道

21

MIDI接口

01

接口号码

2F

音轨结束标志

00

51

速度

03

3字节整数,1个4分音符的微妙数

54

SMPTE时间

05

SMPTE的开始时间(时,分,秒,帧,复帧)

58

节拍

04

分子

分母:00(1),01(2),02(4),03(8)等

节拍器时钟

一个4分音符包括的32分音符的个数

59

调号

02

升降号数:-7~-1(降号),0(c),1~7(升号)

大小调:0(大调),1(小调)

7F

音符特定信息

--

音符特定信息

3. 4 系统码事件(sysex event)

系统码,又叫MIDI专有信息是跟音源(音色库)交流最精确的语言,专门用来调整MIDI设备内部参数设置的指令,由十六进制数构成。 
系统码分三个部分 
<1>固定的开头 F0 4X 10 4X 
F0: 系统码开头
4X: 厂商代码YAMAHA43 ROLAND41 KORG 42 
10: 音源设备编号 
4X: 当前音源格式的选择….XG4C.GS42 
<2>核心部分
例如: F0 43 10 4C 00 00 04 7F F7 
后面的00 0X 04 表示工作在主控音量上,其中0X表示设置的通道,7F 代表取值范围

1 复位码 
一. GS F0 41 10 42 12 40 00 7F 00 41 F7 
二. XG F0 43 10 4C 00 00 7E 00 F7 
三. GM F0 7E 7F 09 01 F7 
    Msb( most singnificant bit)  Lsb (least singnificant bit ),都是两位的十六进制数, 因为XG格式的音源系统码是开放的,所以就以XG标准的音源来讲,如果你只有GS标准的音源…那可以把YAMAHA格式的设置成GSYAMAHA音源下的TG300B模式 
系统码:F0 43 71 7E 09 01 F7或者 F0 41 10 42 12 40 00 7F 00 41 F7  
重要:若想让MIDI乐器正确响应系统码,在开始先用复位码把它设置成相应的模式 
     用于传输大量的数据给一个MIDI设备,例如patch寄存器、音序器、waveform数据;

也有可能传送特别的信息给一个模型设备,例如在一个Roland Physical Modeling Synth中,可能被用来为一个操作员设置反馈水平。

 

状态描述:0xF0-0xF7  其中低字节代表使用的MIDI的不同音轨

数据描述:在0xF0-0xF7之间,可能有任意的数据bytes,最重要的是头一个数据bytes(紧跟在0xF0),应该是制造商的ID值。

对每一个MIDI设备定义它自己的sysex event,并且所有的MIDI sysex event必须是以0xF0开始,以0xF7(结束标志)结束,没有0xF0状态标志是不可能发生的,虽然0xF7作为结束标志的,但是事实上,任何的状态都有可能引起系统信息终止,若一个系统码事件未传达,这种情况就没必要以一个F7作为标志来结束事件。

系统码可以写在任何音轨,不过通常写在全局音轨中,时间差设成00

对于制造商的IDMMA已经针对多种多样的制造商的ID设定了特殊的值,以便设备确定信息是否来自传送的制造商。例如,Roland设备的IDbytes0x41,如果MIDI设备收到的ID不是0x41,设备将忽略剩余的bytes值,包括0xF7

2:传输信息F0 43 12 00 07 F7    

F0 05 43 12 00 07 F7。

F0是标志位,055个字节,内容是43 12 00 07 F7。

F7结束标志,使得在读MIDI文件时知道已经读取整个系统信息。
  注意:若单个系统码事件被分割成几部分,每一部分在不同时段传输,每一部分(除了第一个)的系统码事件必须以F7开头,不以F7结尾(除了最后一个,因为它必须要以F7结尾),而且各部分事件之间不能含有其它可传输的MIDI事件。

  例3:假设发送字节F0 43 12 00,接着延时200-tick,又接着字节43 12 00 43 12 00,延时100-tick,字节43 12 00 F7,在MIDI文件里头是:

      F0 03 43 12 00
        81 48                                   200-tick 时间差
        F7 06 43 12 00 43 12 00
        64                                      100-tick 时间差
        F7 04 43 12 00 F7

4: 附件3TITANIC.MID

 00 F0 0A 41 10 42 12 40 00 7F 00 41 F7                               

第四章  MIDI事件< MIDI event>构成

4.1  音符

当你在MIDI键盘上按下一个琴键,你不是在制造一个声音而是发出一条MIDI指令,至于这个信息能发什么声音,完全取决于电缆另一端的MIDI乐器(如果有的话)。MIDI电缆里完全没有音频数据

给出音符的符号,如何找到相对应的16进制数,本节给出了2种方法:

1)针对熟识音乐的人来讲,代入公式就可以得到,快速有效;

2)对于普通人来讲,查询表格就可以得到。

音符标号,也就是音高,MIDI规格有128个音符标号,中央C的音符标号被定义为60。音符标号值越小音高就越低,值越大音高就越高。

4.1.1  运算查找法

已经知道音符的16进制数,求音符的符号。假设音符是N0,其中音名N,音阶为0

公式:N=B mod 12 ;0=B div 12-1                                       1

其中B表示音符的字节的10进制数,N的10进制数值参照下表:

 

音名

C

#C

D

#D

E

F

#F

G

#G

A

#A

B

 10进制数值

0

1

2

3

4

5

6

7

8

9

10

11

 

1:已经知道某一音符的16进制为45,求对应的音符为A4

     4516进制)=6910进制)

     根据公式(1)得出69 mod 12 = 9 =N; 4= 69 div 12-1

     参照N10进制数得出音符为A,音阶为4

 

      已经知道音符的符号,求对应的16进制数。假设音符是N0,其中音名为N,音阶为0

公式:10进制公式:(0+1)*12+N                                           (2

2:计算音符G2的16进制为2B

代入公式(2)为(2+1*12+7=4316进制为2B

4.1.2  图表查找法

   音符的有效范围是0-12716进制是00-7FH,可以直接参照下表查找。

 

                        MIDI音符代码表

 

编号

音符代码

所在的音阶

音调

编号

音符代码

 

所在的音阶

音调

 

(二进制码)

(十六进制码)

 

 

 

(二进制码)

(十六进制码)

 

 

0

0000000

00

-1

C

64

1000000

40

4

E

1

0000001

01

-1

C#

65

1000001

41

4

F

2

0000010

02

-1

D

66

1000010

42

4

F#

3

0000011

03

-1

D#

67

1000011

43

4

G

4

0000100

04

-1

E

68

1000100

44

4

G#

5

0000101

05

-1

F

69

1000101

45

4

A

6

0000110

06

-1

F#

70

1000110

46

4

A#

7

0000111

07

-1

G

71

1000111

47

4

B

8

0001000

08

-1

G#

72

1001000

48

5

C

9

0001001

09

-1

A

73

1001001

49

5

C#

10

0001010

0A

-1

A#

74

1001010

4A

5

D

11

0001011

0B

-1

B

75

1001011

4B

5

D#

12

0001100

0C

0

C

76

1001100

4C

5

E

13

0001101

0D

0

C#

77

1001101

4D

5

F

14

0001110

0E

0

D

78

1001110

4E

5

F#

15

0001111

0F

0

D#

79

1001111

4F

5

G

16

0010000

10

0

E

80

1010000

50

5

G#

17

0010001

11

0

F

81

1010001

51

5

A

18

0010010

12

0

F#

82

1010010

52

5

A#

19

0010011

43

0

G

83

1010011

53

5

B

20

0010100

14

0

G#

84

1010100

54

6

C

21

0010101

15

0

A

85

1010101

55

6

C#

22

0010110

16

0

A#

86

1010110

56

6

D

23

0010111

17

0

B

87

1010111

57

6

D#

24

0011000

18

1

C

88

1011000

58

6

E

25

0011001

19

1

C#

89

1011001

59

6

F

26

0011010

1A

1

D

90

1011010

5A

6

F#

27

0011011

1B

1

D#

91

1011011

5B

6

G

28

0011100

1C

1

E

92

1011100

5C

6

G#

29

0011101

1D

1

F

93

1011101

5D

6

A

30

0011110

1E

1

F#

94

1011110

5E

6

A#

31

0011111

1F

1

G

95

1011111

5F

6

B

32

0100000

20

1

G#

96

1100000

60

7

C

33

0100001

21

1

A

97

1100001

61

7

C#

34

0100010

22

1

A#

98

1100010

62

7

D

35

0100011

23

1

B

99

1100011

63

7

D#

36

0100100

24

2

C

100

1100100

64

7

E

37

0100101

25

2

C#

101

1100101

65

7

F

38

0100110

26

2

D

102

1100110

66

7

F#

39

0100111

27

2

D#

103

1100111

67

7

G

40

0101000

28

2

E

104

1101000

68

7

G#

41

0101001

29

2

F

105

1101001

69

7

A

42

0101010

2A

2

F#

106

1101010

6A

7

A#

43

0101011

2B

2

G

107

1101011

6B

7

B

44

0101100

2C

2

G#

108

1101100

6C

8

C

45

0101101

2D

2

A

109

1101101

6D

8

C#

46

0101110

2E

2

A#

110

1101110

6E

8

D

47

0101111

2F

2

B

111

1101111

6F

8

D#

48

0110000

30

3

C

112

1110000

70

8

E

49

0110001

31

3

C#

113

1110001

71

8

F

50

0110010

32

3

D

114

1110010

72

8

F#

51

0110011

33

3

D#

115

1110011

73

8

G

52

0110100

34

3

E

116

1110100

74

8

G#

53

0110101

35

3

F

117

1110101

75

8

A

54

0110110

36

3

F#

118

1110110

76

8

A#

55

0110111

37

3

G

119

1110111

77

8

B

56

0111000

38

3

G#

120

1111000

78

9

C

57

0111001

39

3

A

121

1111001

79

9

C#

58

0111010

3A

3

A#

122

1111010

7A

9

D

59

0111011

3B

3

B

123

1111011

7B

9

D#

60

0111100

3C

4

C

124

1111100

7C

9

E

61

0111101

3D

4

C#

125

1111101

7D

9

F

62

0111110

3E

4

D

126

1111110

7E

9

F#

63

0111111

3F

4

D#

127

1111111

7F

9

G

 

4.1.3  音符力度表

   音符的力度,也称为按键的速度,范围是1-127,也即01-FF,当按下或松开音符的力度为0时,表示松开音符。

力度的值越小越弱,越大越强[3]。可以参照下表查找力度值的具体含义:

 

力度值

音乐表情记号

说明

力度值

音乐表情记号

说明

力度值

音乐表情记号

说明

001-015

ppp

极弱

048~063

mp

中等偏弱

097~111

Ff

很强

016~031

pp

很弱

064~079

Mf

中等偏强

112~127

fff

极强

032~047

P

080~096

F

 

 

 

4.2  MIDI文件中音符的使用

音符具有三个属性:音高,力度,时值(由按下时间和松开时间决定)。

MIDI文件中有一个特殊的通道10,也即0x09,是节奏乐器的专用通道,因为节奏乐器是没有音高的,一般如各种鼓等,所以音符在通道10中表示的是各种节奏乐器,而其它通道中的音符表示各种音高。在附件4中看到同时在通道10中演奏几种节奏乐器,并且不同的节奏乐器分布在不同的音轨块里。 

4.2.1  松开音符(noteoff

松开音符。松开音符也叫noteoff,可以理解为:需要松开一个特殊的音符,但是松开某些音符需要一定的时间和力度,同时由于按下音符是通过MIDI的轨道传输信息的,所以状态描述需要考虑到音轨,下面是松开音符的表达方法:

 

状态描述:0x80-0x8F  其中低字节代表使用的MIDI文件的不同音轨,高位字节代表松开音符

数据描述:nnff     

   其中nn 表示按下的音符的名称,范围为00-7FH,这样总共有128个音符,足以覆盖整个音域,可以参照4.1.2章节的GM音符代码表查找;ff表明松开键盘的速度,又称力度,也即表示需要多大的速度松开音符,范围也是00-7FH,在很多MIDI设备中,该指令中的速度数据ff常被忽略。下面以例子说明如何在MIDI文件中描述松开音符。

 

   例3: 松开音符     6C 80 5B 40

时间差为6C,查表可得:松开音符G,音阶是6,力度40,中等偏强的力度

 表示:隔了时间差6C,以中等偏强的力度松开音符G

4:按下中音A   00 91 45 30

松开中音A   3C 81 45 00

        时间差为3C

        45表示中音A(是音符)

        00力度为0 

注意:如果一个音符的力度为0,则MIDI文件认为用户松开这个键,由于松开中音A前面已经按下中音A,那么以00力度的同一音符松开就可以计算中音A的时值为3C

4.2.2  按下音符(noteon

按下音符也叫noteon,可以理解为:在某一时间,用一定的力度按下一个特殊的音符,并且通过MIDI器件的通道传输信息,所以描述noteon状态时需要考虑力度和音轨。下面是松开音符的表达方法:

 

状态描述:0x90-0x9F  其中低字节代表使用的MIDI的不同音轨

数据描述:nnff       其中nn 表示按下的音符(16进制表示),范围为00-7FH,这样总共有128个音符,足以覆盖整个音域,可以参照4.1.2章节的GM音色表;ff表示音符的力度(16进制),是速度数据,表明击键的速度,又称力度,范围也是00-7FH。如果速度数据为0,则等同于松开音符命令。下面以例子说明如何在MIDI文件中描述按下音符。

 

5:按下中音A       00 96 45 70

时间差为00

9x中的x是6,6表示音轨,是第7个通道

45表示A470表示力度为112

6:按下/松开音符    0E 91 24 00

 按下音符,但由于力度是0,在这里等同于0E 81 24 00,也即松开音符。

例子选自附件3

7:同时按下中音A和附点4分中音D,接着按下#G 

00 96 45 70(按下中音A) 00 96 3E 64(同时按下中音D)3C 96 45 00(过了3C时间后松开中音A) 00 96 44 64  78 96 44 00(按下中音#G再松开) 00 96 3E 00松开中音D

 分析如下:知道了如何单一的按下和松开音符,但由于音色的音符是不断变化的,所以需要仔细分析如何连续的写入不同音符。

按下中音A的后面按下一个4分音符中音#G

按下4分音符中音#G      00 96 44 64 

      00表示与松开中音A的事件的时间差为0

 松开4分音符中音#G      78 96 44 00 

      78表示与按下4分音符的时间差为78H

      00表示力度

注意:由于松开中音D前已经过了的时间,而中音D的时间差为3个8分音符,所以加上一个音符事件00 96 3E 64表示松开中音D。这里的关键点是时间差的概念:表示前一事件和后一事件的时间差,所以在这里中音D的时间差为:3CH+78H。在解析和编写MIDI文件歌曲时,这一点是极为重要的。

4.2.3   Aftertouch

Aftertouch可以理解为:由于演奏传出的音符是随着时间和不同的力度变化而变换,所以当你使用这个事件时,需要考虑停留在键盘的时间和力度,同时Aftertouch是通过MIDI器件的轨道传输信息的,状态描述需要考虑到音轨:

状态描述:0xA0-0xAF  其中低字节代表使用的MIDI的不同音轨

数据描述:nnff       其中nn 表示Aftertouch的音符名称(16进制表示),范围为00-7FH,这样总共有128个音符,足以覆盖整个音域,可以参照4.1.2章节的GM音色表;ff表示音符的力度(16进制),是速度数据,表明击键的速度,又称力度,范围也是00-7FH

80E A0 0C 00    选自附件3

0E是时间差,在0轨道,音符是C,力度为0

4.3 控制器(Controller

控制器也叫controller,是用来控制MIDI乐器中的滑音、颤音、渐强、渐弱和声道等功能的编辑管理器,比如转换器,滑动器,把手等等,但又完全不同于按下和松开音符事件,同时使用控制器时,需要MIDI器件的通道传输信息。状态描述如下:

状态描述:0xB0-0xBF  其中低字节代表使用的MIDI的不同音轨

数据描述:nnff       其中nn 表示使用哪一种控制器(16进制表示),控制器的种类有128种,范围为00-7FH,可以参照本章节的控制器表;ff表示使用控制器时需要设置的值(16进制),范围也是00-7FH

MIDI歌曲制作中,控制器的运用占有极为重要的地位,可以使原来听起来十分死板、并且电子味很浓的音乐变得具有人性化,还可以实现许多音乐的细节,所以要想制作出高水平的MIDI音乐,控制器的使用特别重要。

 MIDI控制器有128种不同的事件控制器,在MIDI的1、0协议中,对这128控制器做了具体的定义。控制器号由0-127号构成,但仅仅用了0-119号,120-127号被划分给了模式信息,做了其它的用途。

MIDI控制器的参数变化范围都为0-1270为最小值,127是最大值。

对于开关的控制器,控制器的值小于63为关闭,大于64为开启。

每个控制器对应于一种控制事件,但是,并不是每个编号的控制器对音源都有同样效果,要看音色的型号。如71号泛音控制器,在XG音色表中改变音色的亮度,但是,GSGM音色表格里都没有作出规定。还有80号和81号控制器,在GMGSXG音色表格里没有作出定义。

0-63号控制器里,一般只使用0-31号控制器,32-63号控制器是为了发送提高0-31号控制器精度的LSB数据而准备的,连续可变的0-31号控制器在需要一个字节(7位,这里不考虑最高位标志位)以上的精度时,就可以利用32-63号控制器。

16-1980-83号控制器定义为通用控制器,16-19号是两个字节,80-83号为一个字节,这些控制器号可以指定为任何控制器,用来控制内部参数。相当于踏板开关类型的控制器分布在64-95号之间。下面是控制器表:

 

0

音色库的选择MSB

67

弱音踏板

1

颤音深度(粗调)

68

连滑音踏板控制器

2

呼吸(吹管)控制器

69

保持音踏板2

3

N/A

70

变调

4

踏板控制器

71

音色

5

连滑音速度

72

放音时值

6

高位元组数据输入

73

起音时值

7

主音量(粗调)

74

亮音

8

平衡控制(粗调)

75-79

声音控制

9

N/A

80-83

一般控制器(#5-#8)

10

声像调整(pan)

84

连滑音控制

11

情绪控制器

85-90

N/A

12-15

N/A

91

混响效果深度

16-19

一般控制器

92

(未定义的效果深度)

20-31

N/A

93

合唱效果深度

32

插口选择

94

(未定义的效果深度)

33

颤音速度(微调)

95

移调器深度

34

呼吸(吹管)控制器(微调)

96

数据累增

35

N/A

97

数据递减

36

踏板控制器(微调)

98

未登记的低元组数值(NRPN LSB)

37

连滑音速度(微调)

99

未登记的高元组数值(NRPN MSB)

38

低位元组数据输入(Data Entry LSB)

100

已登记的低元组数值(RPN LSB)

39

主音量(微调)

101 

已登记的高元组数值(RPN MSB)

40

平衡控制(微调)

102-119

N/A

41

N/A

120

关闭所有声音

42

声像调整(微调)

121

关闭所有控制器

43

情绪控制器(微调)

122

本地键盘开关

44

效果FX控制1(微调)

123

关闭所有音符

45

效果FX控制2(微调)

124

Omni模式关闭

46-63

N/A

125

Omni模式开启

64

保持音踏板1(延音踏板)

126

单音模式

65

滑音(在音头前加入上或下滑音做装饰音)

127

复音模式

66

持续音

控制器可以在设备控制面板和MIDI键盘实时发送。控制器只作用于自己所在的通道,对其他通道不起作用。

下面针对比较常用的MIDI控制器进行介绍。

0号控制器:音色库的选择。如果你的电脑中安装了创新AWELIVEAUDIGY声卡,而且安装了几个音色库,可以用它进行音色库的变换。

1号控制器:颤音深度控制器。一般的MIDI键盘和合成器都带有一个调制轮,用它进行颤音的操作,一般都用实时录音的方法。当然,也可以在钢琴卷帘窗中用画笔进行绘制,但是,用实时录音的办法制作的颤音效果要更自然些。

2号控制器:呼吸(吹管)控制器。它可以接收一些特殊输入设备发出的信息,对音量进行控制,做出淡出淡入、渐强渐弱的效果来。

5号控制器:滑音时间。65号控制器:滑音开关。这两个控制器不单独使用,要配合使用。当65号打开时,使用5号控制器来设定话音的时间。65号的默认值是关闭状态,将它改为任意一个大于“0”的数字,表示打开这个控制器,然后用5号设定滑音的时间,数值越大,滑音时间越长,反之则越小。5号的可取范围是0-127,一般将它设置在20-30之间。565号都是用鼠标输入的。

6号控制器:数据输入。它要和98-101号控制器配合使用,与RPNNRPN有关。为了在规定的120个控制器之外扩展使用,MIDI中规定了RPNNRPN两套控制器,RPN是注册参数号,NRPN是非注册参数号。前者是MMA的定义,后者可以由厂家自行定义,它们的使用方法相同。不同编号的RPNNPRN事件对应于一种控制事件,RPNNPRN的编号由两个字节表示,即MSBLSB,编号范围是0-16383,比控制器编号成倍地提高了,便于提供更丰富的控制功能。它的取值也是由两个字节表示,取值从0-16383,因此控制的解析度也成倍的提高了。所有音源只要是兼容GM标准的,就能响应RPN表中事件。GM标准规定了三种RPN事件。GM标准对NRPN事件没有作任何定义,但所有GSXG乐器都能正确响应各自的NRPN事件。

7号控制器:音量控制器。使用它可以协调各个声部的音量比例,一般在音轨窗中直接调节参数,在一般情况下,伴凑声部的音量要小于主旋律声部,持续音声部的音量不要过大。

7是控制某一轨强弱变化的一个控制器,可取范围是0-127

10号控制器:声响控制器。可以控制各个音轨的声音在声场中的位置。它的主要原则是模拟乐队在演出时的各个乐器声部的位置,当两种音色比较接近时,不要把它们摆在一起。它的设置可以在音轨窗中设定,这样比较直观。声像的取值范围是0-127,对应于从最左边到最右边。可以制作立体声游移的效果,立体声游移的源素材一般选择琶音乐句或时值较长的持续音。

11号控制器:表情控制器。通常用来作弦乐等的演奏效果,以此做出它的起伏变化。7号和11号都可以改变音量的大小,7号一般用于设置通道的相对音量平衡,11号一般用于实时改变通道的强弱变化,前者设置好后一般不再变化,后者可以随时连续变化。临时改变声音的大小和管乐是一般慢节奏的时候用11号控制器,快的时候或顿音时改变力度就可以了。111号控制器配合使用,长音乐器声部的效果就会更加逼真。112号呼吸控制器的作用相似。可以实时录制,也可以用鼠标画[4]。

64号控制器:保持音踏板(Hold Pedal)。即使音乐家已经松开了音符,这个保持音符仍在演奏。也即只有当音乐家关闭了这个控制器,才意味着停止所有的在使用的音符。注意和123号控制器的区别,这个控制器也延迟了同一轨道的123号控制器的使用。如果是一个Multi Timbral装置,那么每一个部分通常设有自己的保持音踏板。值的范围是0-63是关闭,64-127是开。

66号控制器:持续音控制器。

67号控制器:弱音控制器。

68号控制器:连滑音控制器。

69号控制器:保持音控制器。

71号控制器:泛音控制器。它是XG独有的控制器,通过低通滤波器的谐振参数对音色进行变化。如果71号泛音(harmonic content)控制器与74号亮度(Brightness)控制器结合使用,音色将会有变化。71号控制器是用鼠标输入的,取值范围是0-127,初始值时64,不要变化太多,一般到需要变化的时候只输入一个数值就可以了

72号控制器:释音控制器。它的作用是控制音色的振幅包络的变化,把音尾变长或变短。

73号控制器:起音控制器。它的作用也是控制音色的振幅包络的变化,把音头变硬或软。

74号控制器:亮度控制器。用来控制器的截止频率,初始值是64,大于64音色就越明亮,小于64音色越暗淡,74号与71号控制器配合使用音色会有很大变化。比如将71号设置为90,再使用74就会听到变化,反之一样。

91号控制器:外部效果器深度控制器。通常用于混响效果器。

92号控制器:颤音深度控制器。

93号控制器:合唱深度控制器。

94号控制器:风琴音栓深度控制器。XG特有。

120号控制器:关闭所有声音(all sound off)。如果使用note on按下的音符还没有使用note off松开音符(音符个数大于等于1),可以用120号关闭所有的音符,但不是使所有的音符静音(通过键盘演奏的音符)。如果不能确定演奏的音符是通过MIDI IN还是键盘,则不能使用120号控制器。注意:不同于123号控制器,120号控制器立即使所有的声音静音,包括使用的64号控制器的设备。120号控制器的值通常不被使用,默认为0

121号控制器:关闭所有控制器。将该轨道控制设定到GM的初始状态。

122号控制器:本地键盘开关。当你的设备是合成器的时候,值为127是开启状态,键盘弹的时候它本身会发声,当值为0时,为关闭状态,键盘弹时它本身不发声,而是将弹入的信号先输入电脑的音序器软件,然后通过软件再把信号传至键盘,才能使它发声,如果MIDI INOUT同时接在一台设备上,应该设为关闭状态,否则同时同一个音符会发两个音,听到一个如同合唱的效果。

123号控制器:关闭所有音符。如果使用note on按下的音符还没有使用note off松开音符(音符个数大于等于1),可以用120号关闭所有的音符,但不是使所有的音符静音(通过键盘演奏的音符)。如果不能确定演奏的音符是通过MIDI IN还是键盘,则不能使用123号控制器。注意:不同于120号控制器,123号控制器不能关闭64号控制器的设备。进一步说,如果一个装置处于Omni On的状态时,应该忽略这条信息(虽然这条信息出现在任意轨道上)。这个控制器的值通常不被使用,默认为0

126号控制器:单音模式。当第一个音符发音后,紧接着的第二个音符不会发音,而是延续发音前的一个音符,但是,音高时第二个音符的音高。

MIDI控制器用处大,但是占用传输空间,信息量很大,过密的控制器会使设备的处理出现很大的问题,播放的速度很受影响,改动也麻烦,所以不要过多滥用MIDI控制器。

   例9: 00 B6 0A 6F 

          00表示时间差

          B6控制器Bx, 6是轨道,使用第7轨道

          0A相位控制(pan)

          6F 是控制器值,是111

4.3 Program Change

要使音源(音色)按你的音乐意图发出不同声部的声音(或同时发出),就必须使用MIDI的通道功能。即:将不同的声部交给不同的通道去处理和演奏。可以象理解电视频道一样去理解MIDI通道的概念。

MIDI通道有16个,因为,位置字节中,只能分出4位来区分通道,24次方=16。实际上,16个通道来发送MIDI信息,完全不是最多只能有16个声部演奏,它可以演奏更多的声部和发送更多的信息,这取决于音源的质量规格和最大发音数限制。因为MIDI16个基本通道,所以,一套MIDI系统,最多可以连接16个外部音源设备。

 Program Change表达式如下:

状态描述:0xC0-0xCF  其中低字节代表使用的MIDI的不同音轨

数据描述:nn        其中nn 表示使用的乐器音色的号码,范围是0-127,也即00-7FH。可以参照本章的G音色表       

Program Change是使MIDI设备换一种音色使用(这些设备可能是patch、乐器、预调设置等)。很多声音装置有大量的乐器声音,例如piano,guitar,trumpet等等,每一种乐器发出的音色都被包括在音色表里。

因此当使用按下音符事件时,Program Change只需要改变MIDI设备弹奏的乐器的音符,Program Change事件只是选择了目前使用的乐器,不过,别的MIDI事件也可以改变当前的音色的声音。

如果设备是MultiTimbral unit,那么它通常可以立即演奏16部分,每一部分可以通过各自的音轨道获得相应的数据。而且每种乐器的音色只能通过各自的音轨道改变。

针对那些乐器没有声音的MIDI设备,例如Reverb unit,它可能存储有一些重置的“room 规则”,那Program Change信息通常被用来选择使用哪一种重置设备。例如:drum box可以用Program Change去选择一个特殊的节奏。

音色库的选择也不是很标准的,大致有3XGGSGM,本文列出了GM的标准库。不同的音色表有不同的乐器。注意:不同的音色库开始时可能是01,所以实际描写MIDI数据流时需要特别留意。

 例10:选自《passport》第1块音轨

00 C0 03 

00表示时间差

C0表示Program Change发生在第一通道

03表示音色,查表知道是Honky-tonk Piano

事实上,音色的选择是由Program Change和相匹配的控制器事件共同完成。所以例10还需要结合2个匹配的控制器号00和20来实现音色Honky-tonk Piano的选择,附件1得到:00 B0 00 05 00 20 57 00 C0 03

11:取自《克罗地亚狂想曲.mid》第1块音轨

         00 C0 00 00 B0 0A 40

在0轨道使用音色00(原声大钢琴),控制器号码是0A(声像调整pan

 

音色号

英文

英文简写

中文

音色号

英文

英文简写

中文

钢琴类(Piano

簧片乐器(Reed

001

Acoustic Grand Piano

GrandPno

原声大钢琴

065 

Soprano Sax

SprnoSax

高音萨克斯

002

Bright Grand Piano

Britepno

亮音钢琴

066    

Alto Sax

---

中音萨克斯

003

Electric Grand Piano

E.GrandPno

电子大钢琴

067  

Tenor Sax

---

次中音萨克斯   

004

Honky-tonk Piano

HonkyTonk

酒吧钢琴

068

Baritone Sax

Bari.Sax

低音萨克斯  

005

Electric Piano 1

E.Piano1

电钢琴1

069

Oboe

---

双簧管

006

Electric Piano 2

E.Piano2

电钢琴2

070

English Horn

Eng.Horn

英国管

007

Harpsichord

Harpsi

拨弦古钢琴

071  

Bassoon

---

大管

008

Clavinet

Clavi

电子击弦古钢琴

072 

Clarinet

---

单簧管   

半音性打击乐器(Chromatic

Percussion

管鸣乐器(Pipe

009

Celesta

---

钢片琴

073   

Piccolo

--- 

短笛

010

Glockenspiel

Glocken

钟琴

074

Flute

---

长笛

011

Music Box

---

八音盒

075

Recorder

---

竖笛

012

Vibraphone

Vibes

颤音琴

076

Pan Flute

---

牧笛

013

Marimba

---

马林巴

077

Bottle Blow

Bottle

瓶笛

014

Xylophone

Xylophon

木琴  

078 

Shakuhachi

Shakhchi

尺巴   

015

Tubular Bells

TubulBel

管钟

079 

Whistle

---  

口哨  

016

Dulcimer

---

扬琴

080

Ocarina

---

陶笛

风琴类(Organ

合成领奏(Synth Lead 

017

Hammond Organ

HarhondOrgn

哈蒙德风琴

081   

 

Lead 1 (square)

SquareLd

领奏 1 

(方波)

018

Pereussive Organ

PercOrgn

击音管风琴

082

Lead 2 (sawtooth)

Saw.Lead

领奏 2 

(锯齿波)

019

Rock Organ

RockOrgn

摇滚风琴

083 

Lead 3 (calliope)

CaliopLd

领奏 3  

020

Church Organ

ChurchOrgn

教堂管风琴

084

Lead 4 (chiff)

ChiffLd

领奏 4  

021

Reed Organ

ReedOrgn

簧片风琴

085  

Lead 5 (charang)

CharanLd

领奏 5

022

Accordion

---

手风琴

086

Lead 6 (voice)

VoiceLd

领奏 6 (人声)

023

Harmonica

---

口琴  

087   

  

Lead 7 (fifths)

FifthLd

领奏 7 (五度)

024

Tango Accordion

TangoAcd

探戈手风琴

088

Lead 8 (bass+lead)

Bass&Ld

领奏 8 (贝司与领奏)

吉它类(Guitar

合成背景音色(Synth Pad 

025

Acoustic Guitar (nylon)

NylonGtr

尼龙弦吉它

089 

 

Pad 1 (new age)

NewagePd

背景 1 (新时代)   

026

Acoustic Guitar (steel)

SteelGtr

钢弦吉它

090

Pad 2 (warm)

Warm Pd

背景 2 (温暖的)

027

Electric Guitar (jazz)

JazzGtr

爵士吉它

091  

Pad 3 (polysynth)

PolySyPd

背景 3 (复合合成)

028

Electric Guitar (clean)

CleanGtr

纯音吉它

092

Pad 4 (choir)

ChoirPad

背景 4 (唱诗班)  

029

Electric Guitar (muted)

Mute.Gtr

闷音吉它

093   

Pad 5 (bowed)

BowedPad

背景 5 (弓弦音色)

030

Overdriven Guitar

Overdriver

激励音吉它

094

Pad 6 (metallic)

MetalPad

背景 6 (金属般)

031

Distortion Guitar

Dist.Gtr

失真吉它

095   

 

Pad 7 (halo)

HaloPad

背景 7 (问候)

032

Guitar Harmonics

GtrHarmo

吉它泛音   

096

Pad 8 (sweep)

SweepPad

背景 8 (宽阔的)

贝司类(Bass

合成效果(Synth Effects

033

Acoustic Bass

Aco.Bass

原声贝司

097 

   

FX 1 (rain)

Rain

效果 1 (下雨)  

034

Electric Bass (finger)

FngeBass

指弹电贝司

098

FX 2 (soundtrack)

SoundTrk

效果 2 (音轨)

035

Electric Bass (pick)

PickBass

拨片电贝司  

099

FX 3 (crystal)

Crystal

效果 3 (晶体)

036

Fretless Bass

Fretless

无品贝司  

100   

   

FX 4 (atmosphere)

Atmosphr

效果 4 (气氛)

037

Stap Bass 1

---

打弦贝司1

101

FX 5 (brightness)

Bright

效果 5 (明亮)

038

Stap Bass 2

---

打弦贝司2

102 

   

FX 6 (goblins)

Goblins

效果 6   

039

Synth Bass 1

SynBass1

合成贝司1

103

FX 7 (echoes)

Echo

效果 7 (回声)

040

Synth Bass 2

SynBass2

合成贝司2

104

FX 8 (sci-fi)

Sci-Fi

效果 8   

弦乐器(Strings

民间乐器(Ethnic

041

Violin

---

小提琴

105 

   

Sitar

---

西塔尔   

042

Viola

---

中提琴

106

Banjo

---

班卓

043

Cello

---

大提琴

107

Samisen

---

三味线

044

Contrabass

Contrabs

低音提琴  

108

Koto

---

日本筝

045

Tremolo Strings

Trem.Str

弦乐震音

109  

  

Kalimba

---

卡林巴   

046

Pizzicato Strings

Pizz.Str

弦乐拨音

110

Bagpipe

---

风笛

047

Orchestral

Harp Harp

坚琴

111

Fiddle

---

小提琴

048

Timpani

---

定音鼓

112

Shanai

---

山奈

合奏(唱)组(Ensemble

打击乐(Percussive 

049

String Ensemble 1

Strings1

弦乐组 1

113   

 

Tinkle Bell

TnklBell

铃铛

050

String Ensemble 2

Strings2

弦乐组 2

114

Agogo

---

阿果果

051

Synth Strings 1

Syn.Str1

合成弦乐组 1

115

Steel Drums

SteelDrm

钢鼓

052

Synth Strings 2

Syn.Str2

合成弦乐组 2

116

Woodbiock

Woodblok

帮子

053

Choir Aahs

Choir.Aah

唱诗班啊声

117 

Taiko Drom

TaikoDrm

太叩鼓   

054

Voice Oohs

VoiceOoh

哦声合唱

118

Melodic Tom

MelodTom

旋律性嗵嗵鼓

055

Synth Voice

Synvoice

合成人声  

119

Synth Drum

Syn.Drm

合成鼓   

056

Orchestra Hit

Orch.Hit

管弦乐齐奏  

120

Reverse Cymbal

RevCymbal

反钹

铜管乐器(Brass

音响效果(Sound Effects

057  

Trumpet

---

小号

121   

Guitar Fret Noise

FretNoiz

吉它滑品噪音

058

Trombone

---

长号  

122

Breath Noise

Brthnoiz

呼吸声

059

Tuba

---

大号

123

Seashore

---

海浪声

060

Muted Trumpet

Mute.Trp

小号加弱音器  

124  

Bird Tweet

Tweet

鸟叫

061

French Horn

Fr.Horn

法国号   

125

Telephone Ring

Telphone

电话铃声

062

Brass Section

BrasSect

铜管组

126

Helicopter

Helicptr

直升飞机声   

063

Synth Brass 1

SynBras1

合成铜管 1

127  

Applause

---

掌声   

064

Synth Brass 2

SynBras2

合成铜管 2

128

Gunshot

---

枪声

GM音色表

4.4   Channel Pressure

   Channel pressure描述的是变化的力度(音乐家用一定的力度按下音符时产生的),同时是通过通道传输信息的。状态描述如下:

状态描述:0xC0-0xCF  其中低字节代表使用的MIDI的不同音轨

数据描述:nn        其中nn 表示压力值,范围是0-127,也即00-7FH 0是没有压力,127是最大的压力值。

Channel pressure不同于AfterTouch,它们的区别是:

1Channel pressure是针对按下整个键盘时使用的力度值,即使你按下不同的键的力度值不同,模块将最终把这些不同的力度值平均化,这样表现出来的是你按下所有的键的力度值是一样的,也即最终的结果是一些不同的压力值将平均分布在整个键盘上。

2AfterTouch是针对于按下单个键时使用的力度值,力度越大,AfterTouch信息值越大,不同的键产生不同的力度值,也即产生AfterTouch的信息值也是不同的。

控制器一般使用这两个力度值中的一个,但是通常不同时使用。

MIDI控制器很少使用AfterTouch,原因是:AfterTouch要求每个键有相对应的压力感知器,导致器件价格高。channel pressure只要求键盘有一个感知器,所以控制器经常使用这个力度值。

当然,一个设备能够产生这两种信息值,在这种情况下,AfterTouch先产生每个键的力度值,接着把所有的力度值平均化,最终把这个平均值作为channel pressure力度值送出。

4.5   滑音(Pitch Wheel

    滑音也叫pitch wheel,可以理解为:用不同的滑音参数调整MIDI器件来改变音符的值,同时对于不同的MIDI器件的通道,滑音的信息是不同的。所以滑音表达式如下: 

状态描述:0xE0-0xEF  其中低字节代表使用的MIDI的不同音轨

数据描述:nnff        这里的nnff组合构成14bit的值(不考虑字节的最高位,总设为0)。其中nn 0-6bitff7-13bit。总共加起来组成14bit。计算公式nnpitch mod 128ffpitch div 1280x2000是中间值,它的声调不能调大或调小。滑音的参数值值越大声调越高,值越小,声调越低。

滑音的乐理范围对于不同的MIDI设备是不同的。例如虽然0x2000H也即8192总是中间值,但是对于一个MIDI设备,0x3000可能调升一个音阶,但对应别的设备有可能只调升了半个阶。滑音范围是通过RPN控制器信息来调整的。

GM标准建议MIDI默认的滑音范围的信息值是0x0000-0x3FFF,也即16384个单位,最小时为-8192,最大时为8191,每次调升降是半阶。参数为表示没有滑音。但在使用时参数是个正数,比如要设置成0,则应该是0--8192=8192,它才是参数。

如果设备是MultiTimbral unit,那么设备中的每一部分对于不同的滑音的反应是不同的。

1100 E6 00 40

      00时间差,E6表示滑音,在第7通道使用滑音,设置滑音值为0,代入公式:参数是0-(-8192)=8192,8192的7位双字节表示成8192 mod 128=00H(字节的最高位设置为0),8192 div 128=128*64=40H(字节的最高位设置为0)。 

第五章 元事件meta event

元事件也叫meta event,是非MIDI事件流。由于MIDI文件含有大量的非MIDI事件,而且功能不同,所以单独列出一章具体阐述每一个元事件的用法。

注意:并不是每个MIDI文件,都必须描述每一个元事件。

元事件开始的状态位都是FF,紧接着是元事件的各种类型,其中范围01-0F的是预留给各种类型的文本使用的,使用的目的各不相同。MIDI文件结构中各种元事件的定义如下:


设置轨道音序在MIDI文件中存储的表达式如下:

FF0002ssss/ FF0000其中ssss是音序器号码,用来指定MIDI提示信息,范围是00 00-FF FFH

在格式2中使用表达式FF0002ssss,音序器号码主要用来识别不同的状态(例如MTrk),以便一首歌的音序器能用MIDI提示信息找到对应的状态。

如果忽略ssss,使用表达式FF0000可以用MTrk块的位置起始点作为音序器号码(例如:如果第一个MTrk音轨块的音序器号码是0,则第二个MTrk音轨块的音序器号码是1……)。在格式01中,仅仅有一种状态(虽然格式1包含了几个MTrk),在这种情况下,这个事件必须被放置在第一个MTrk音轨块里,位于任何非零时间发生的事件或可传送的MIDI信息事件的前面。所以一组带有不同音序号码的格式0或格式1的文件能组成一个歌的集合。

   

歌曲备注和音轨文本在MIDI文件中存储的表达式如下: 

FF01+字节总数+文本信息(ASCII16进制)

字节总数指的是文本信息的字节数目总和,是可变长度量,类同于时间差的写法

例:选自附件3的TITANIC.MID 

00 FF 01 0F 44 65 72 53 68 69 75 6E 20 53 74 75 64 69 6F 00 FF 01 10 44 65 72 53 68 69 75 6E 20 53 74 75 64 69 6F 0A   

0F表示歌曲备注和音轨文本的总长度为15个字节,对应的ASCII码是“DerShiun Studio 

00表示时间差                                    

这个事件经常放在音轨的开头,有助于日后查看,这个事件可以连续发生,可以从附件3TITANIC.MID中观察到。文本事件也可能发生在其它时间,被用来作为歌词。


歌曲版权在MIDI文件中存储的表达式如下
FF02+字节总数+版本信息(ASCII16进制)

字节总数指的是版本信息的字节数目总和,是可变长度量,类同于时间差的写法

例:附件3TITANIC.MID

00 FF 02 21 43 6F 70 79 72 69 67 68 74 20 31 39 39 38 20 62 79 20 44 65 72 53 68 69 75 6E 20 53 74 75 64 69 6F 

21表示歌曲版本的总长度为33个字节,对应的ASCII码是“Copyright 1998 by DerShiun Studio” 

歌曲版权包括的内容有:字符、版权所有的时间、版权所有者。如果几段音乐同时放在一个MIDI文件中,那么它们的音乐的版权声明应放在一起,并且时间差都为0,放在第一个音轨块里,而且全部放在文件的开头。


歌曲标题/音轨名称在MIDI文件中存储的表达式如下:
FF03+字节总数+歌曲标题(ASCII码的16进制)

字节总数指的是歌曲标题的字节数目总和(此时只用于全局音轨,第一次使用表示主标题,第二次使用表示副标题),是可变长度量,类同于时间差的写法;音轨名称通常用在“Mtrk”之后,表示这个音轨的名称

例:选自愛是永恒.mid,表示歌曲标题

00 FF 03 08 B7 52 AC 4F A5 C3 AB ED

时间差为0

08表示歌曲标题的总长度为8个字节,查ASCII码得出

例:选自附件3,表示音轨名称

00 FF 03 14 54 75 62 75 6C 61 72 20 42 65 6C 6C 73 20 20 20 20 20 20 20

时间差为

14表示音轨名称的总长度为20个字节,查ASCII码得出“Tubular Bells        

MIDI文件中的每一个音轨块,通常都会用音轨名称来标注字段,不过,这个规范并不是必须的,但只要是标注了字段的音轨块,都能对主旋律音轨的提取提供有益的信息,并且表征旋律音轨的特征量所也都能使用[1]

 

乐器名称在MIDI文件中存储的表达式如下:

FF04+字节总数+音轨文本(ASCII码的16进制)

字节总数指的是音轨文本的字节数目总和,是可变长度量,类同于时间差的写法

例:选自附件1     

00 FF 04 1B 4D 69 63 72 6F 73 6F 66 74 20 47 53 20 B2 A8 B1 ED C8 ED BC FE BA CF B3 C9 C6 

00表示时间差为0

1B表示乐器名称的总长度为27个字节,查ASCII码表可知“Microsoft GS 波表合成软件器”

 

歌词在MIDI文件中存储的表达式如下:
FF05+字节总数+歌词(ASCII码的16进制)

字节总数指的是歌词的字节数目总和,是可变长度量,类同于时间差的写法

例:00 FF 05 05 57 61 74 63 68

   00表示时间差为0

   05表示歌词的总长度为5个字节,查ASCII码表可知“Watch

由于每个音节将是一行单独的歌词,应该写清时间。


标记在MIDI文件中存储的表达式如下:
FF06+字节总数+文本标记(ASCII码的16进制)

字节总数指的是文本标记的字节数目的总和,是可变长度量,类同于时间差的写法

例子来源于《passport.mid

00 FF 06 10 43 34 2D 50 39 31 2D 50 4F 4C 59 53 59 4E 54 48

00表示时间差为0

    10表示标记的总长度为16个字节,查ASCII码表可知“C4-P91-POLYSYNTH”

通常出现在格式0的音轨,或格式1的第一个音轨,可以连续出现多个标记事件。


开始点在MIDI文件中存储的表达式如下:
FF07  len text 其中Len为字节总数,是可变长度量,类同于时间差的写法。text是歌曲文件的名字。

这个事件主要为给定的节拍做标记,可以标记一个歌曲文件的开始。

 

Program nameMIDI文件中存储的表达式如下:
FF08  len text 其中Len为字节总数,是可变长度量,类同于时间差的写法;text是歌曲文件的名字。

例:00 FF 08 0A 47 6F 6E 7A 6F 20 48 61 72 70

0A表示设备名字的总长度为1名字长度为10,查ASCII码得出“Gonzo Harp

乐器名字不同于音序器和音轨的名字,是用来播放MTrk音轨块块。例如:音序器的名字是“Butterfly”,但由于音轨是在电子piano上演奏的,所以你也要写上乐器名字“ELECTRIC PIANO”。

在前面提到过,乐器的使用是通过MIDI改变乐器事件和MIDI的控制器事件描述的,当MIDI文件使用非MIDI乐器,这个时候就需要使用乐器标题事件来提示MIDI改变乐器事件。

 

设备名字  DevicePortNameMIDI文件中存储的表达式如下:

FF 09   len text

Len为字节总数,是可变长度量,类同于时间差的写法;text是传输音轨事件所用的MIDI设备的名字(ASCII码的16进制),

例:00 FF 09 0A 4D 49 44 49 20 4F 75 74 20 33

0A表示设备名字的总长度为10,通过查ASCII码得出“MIDI Out 3

这个事件取代了音序器传输MIDI音轨到多种MIDI接口的元事件,主要是为了能够使用超过16MIDI通道才使用的。例如假设你有一个MIDI接口有4MIDI输出接口,分别是“MIDI Out 1”,“MIDI Out 2”,“MIDI Out 3”,“MIDI Out 4”。如果你希望一个特殊的MTRk使用“MIDI Out 1”,那么你可以把一个port name元事件放在MTrk的开始,text是“MIDI Out 1”。

 格式0中,可以使用多个这个事件来表示多种的接口。

格式1中,使用这个事件用来传输一个特殊的接口。


音轨结束标志 在MIDI文件中存储的表达式如下:
FF2F00
每当完成一段音轨块的数据流时,都要加上这个事件作为结束的标志。


设定速度tempoMIDI文件中存储的表达式如下
FF5103tt tt tt  

   表示速度的变化,其中03表示总共3个字节,tt tt tt表示每完成14分音符用多少时间,并以微妙为单位。给出时间直接换算为16进制即可,没有标志位。

例:27985(十进制)=6D51(十六进制

27985除以16=17491. 
1749除以16=1095. 
109除以16=613. 
616,不能再除了,因此,6就成为十六进制数值的首位,然后从下往上逐一加上余数13,5,1.就得到数值6 13 5 1.转化为十六进制就是6D51.

例:选自附件1    00 FF 51 03 09 A3 1A

如果MIDI文件中没有速度事件,速度可以直接被假设为120BPM

格式0中,速度的变化贯穿于整个MTrk音轨。

格式1中,为了使一些设备的速度映射起来,第一个MTrk音轨应该只含有速度和拍子记号事件,最好不放其它的MIDI事件。附件2看出总音轨没有放置MIDI事件,都是元事件。

格式2中,每一个MTrk音轨块的开始应该至少放一个速度事件和拍子记号事件。


SMPTE时间同步在MIDI文件中存储的表达式如下
FF5405hrmnsefrff  其中hrmnsefrff 分别是MTrk音轨块的SMPTE的开始时间(时,分,秒,帧,复帧),应放在MTrk音轨的开始,因为使用的是MIDI时间编码,所以不应该用SMPTE的格式对“时”编码/译码(encode)。

例:选自附件2的愛是永恒.mid

00 FF 54 05 60 00 03 00 00

表示(96小时)3

格式1中,SMPTEOFFSET应该被存储在速度块里(tempo map)例如第一音轨,在其它的MTrk音轨里没有意义。其中ff域是分数帧的个数,在SMPTE里,MTrk块对时间差阐述了一个不同的帧的分区和MThd里的复帧不一样。

拍子记号(Time Signature)在MIDI文件中存储的表达式如下:
FF5804nnddccbb  其中nndd分别表示乐谱上的拍子记号的分子与分母,分母是2的指数:22^2=4分音符的指数,3=2^38分音符的指数等;cc表示一个节拍器的MIDI时钟;bb参数表示一个MIDI4分音符包括的32分音符的个数。

例:例子来源于《passport.mid

4/4拍号
FF5804 04 02 18 08
4/4拍号(4等于2的二次方,因此,这里是0402),四分音符是32个MIDI时间间隔(24的十六进制是18),四分音符等于8个三十二分音符。

如果MIDI文件里没有拍子记号,那么默认为4/4

格式0中,速度变化贯穿于整个MTrk音轨。

格式1中,为了使一些MIDI设备的速度映射起来,第一个MTrk音轨应该只含有速度和拍子记号事件,最好不放其它的MIDI事件。附件2看出总音轨没有放置MIDI事件,都是元事件。

格式2中,每一个MTrk音轨块的开始应该至少放一个速度事件和拍子记号事件。

 

音调符号(Key Signature)在MIDI文件中存储的表达式如下
FF5902sfmi     其中sf=-7

例:FF59020301

sf=03,大调在五线谱上注了三个升号

sf指明乐曲曲调中升号、降号的数目。也就是说,升号数目写成0x,降号数目写成8x
      mf指出曲调是大调还是小调。大调mf=00,小调mf=01


音符特定信息(Proprietary Event)在MIDI文件中存储的表达式如下
FF7F+字节总数+音符特定信息(16进制) 

这个事件被一个乐器存储特定数据,第一个字节应该是一类独特的ID,以便乐器能确定是否属于自己,建议使用ASCII码;字节总数是可变长量,类同于时间差的写法。

例:选自附件3

00 FF 7F 03 00 00 40

 

MIDI通道(MIDI Channel)在MIDI文件中存储的表达式如下

FF 20 01 cc  其中ccMIDI通道,0通常作为第一通道

MIDI Channel指定MIDI文件的那个通道是与这些事件(任何随后的元事件和系统码事件)相关的。

MIDI Channel事件是可选的,通常发生在MTrk块的开始, 

MIDI文件规定不分配给系统码事件一个MIDI通道。同时元事件也没有一个嵌入(imbedded)的通道。

MIDI Channel使用原因:在格式0中,由于所有的元事件和系统码事件都被放在同一个音轨块里,所以把这些事件和各自的MIDI声音信息联系起来是非常困难。例如:在MIDI,你想要分别为通道1Flute Solo”和通道2“Trumpet Solo”命名,那么你需要使用2个音轨名字元事件。但是2个事件都放在一个音轨块里。为了使音轨块名字和自己的MIDI通道映射起来,你需要在“Flute Solo”音轨块名字元事件前面放一个带有通道号码的MIDI通道元事件,对“Trumpet Solo”也是一样。

 

MIDI接口(MIDI port)在MIDI文件中存储的表达式如下

FF 21 01 pp  其中pp是接口的号码,在系统中,0必须放在第一个MIDI文件的母线上。 

MIDI port主要用来使一个音序器能够识别MTrk音轨块里的事件是从哪一个MIDI接口输出的。例如第二个MIDI器件接口的通道1通过第一个MIDI器件接口的通道1

在一个音轨块里可以含有一个以上的这类事件。

MIDI port是可选的,通常发生在MTrk的开始,位于任何非零时间发生的事件或可传送的MIDI信息事件的前面。

MIDI器件的局限性:每个MIDI器件的输入/输出(或用硬件体现MIDI器件的输入/输出的技术)仅仅有16个通道,范围是00-0FH

MIDI port使用的原因:在MIDI器件的宽带下,为了使MIDI器件能够工作在这个局限性下,很多MIDI接口有很多的MIDI输入/输出母线,所以音乐家才能使用多于16个通道的MIDI器件。一些音序器件支持超过一个MIDI器件的接口(同时用来输入/输出),不幸的是,在多于16个通道的情况下,没有任何方法能够在一个MIDI状态字节下编码,所以用MIDI port来识别将要输出的事件。

例:附件2的阿刺伯跳舞女郎.mid

00 FF 21 01 01

第六章MIDI的“速度”描述

在MIDI规范中定义的最小时间单位是Tick。重新定义一个新的时间单位来描述音符的时长,是因为现有的一些时间格式都不太适合MIDI的描述与存储。虽然Tick是一种新的时间单位,但它与其他一些相关的音乐时间(比如BPM、SMPTE)都是相互关联的,也是可以相互转换的。事实上,为了在两台MIDI设备之间控制不同的时间格式以保持它们之间的同步,MIDI规范中专门制定了一个名为MTC(MIDI Time Code)的子协议。MIDI中一个音符的时长是通过开音码和对应关音码之间的间隔时间,即德尔塔(delta)时间来描述的,由于MIDI中没有音符的概念,因此要通过将对应的音符开启和关闭事件配对形成一个音符,称之为原始音符,之后还需要将音符开始时间戳和结束时间戳转换成音符开始时间戳和音符持续长度。为了完成上述两个任务,使用一个大数组缓存16个通道里的128个音的状态。在接收到音符打开与关闭消息时进行记录,并同时计算开始时间与持续时间。

Meta事件的读取

MIDI中的Meta事件中描述的信息在五线谱显示中基本上都是有用的,有些信息还起着至关重要的作用。例如很多说明性的文字信息,需要直接添加到五线谱和各音轨的属性中。当这些说明性信息重复出现时,可以把两段信息的文字连起来,作为一条长的信息出现。调号和拍号信息是Meta信息中非常关键的两条。调号决定了每个音符在五线谱上显示的确切位置及其升降号标志,拍号决定了小节的长度还同时影响合成音符组的规则。这些信息都是整合分析器不可缺少的重要信息。  节拍[meter] 是衡量节奏的单位,在音乐中,有一定强弱分别的一系列拍子在每隔一定时间重复出现。如 2 / 4 、 4 / 4 、 3 / 4 拍等。 

  节拍,乐曲中表示固定单位时值和强弱规律的组织形式。又称拍子。每小节中强拍和弱拍的循环称二拍子;强拍、弱拍 、弱拍的循环称三拍子。表示每小节中基本单位拍的时值和数量的记号,称拍号。拍号的上方数字表示每小节的拍数,下方数字表示每拍的时值。

例如,2/4表示以4分音符为1拍,每小节有 2 拍。拍号中时值的实际时间,应视乐曲所标速度而定。在不同节拍类型中,每小节只有一个强拍的叫做单拍子,如2/4、2/8是单2拍子,3/4、3/8是单3拍子。每小节有一个强拍并有次强拍的叫做复拍子。 如 4/4、6/8是复 2 拍子,9/8、9/16是复3拍子。单位拍时值相同而拍数不同的单拍子组合在一小节内,叫做混合拍子。例如5/4是由2/4+3/4或3/4+2/4组合而成,7/8是2/8+2/8+3/8或3/8+2/8+2/8组合而成。  

6.1   BPM

    在音乐中我们一般用BPM来表述乐曲的速度,BPM(Beat per Minute)的意思是每分钟的拍子数。例如,BPM=100,表示该歌曲的速度是每分钟100拍。注意,对于音乐家来说,BPM中的一拍是指一个四分音符,而不管歌曲的拍号是多少。例如,假设歌曲的拍号是3/8拍(以八分音符为一拍,每小节3拍),BPM=100,那么,音乐家依然会把歌曲的速度认为是以四分音符(非八分音符)为一拍,每分钟100拍。
因此,BPM被称为是“音乐速度(Musical Tempo)”,它与MIDI文件表述的速度(Tempo)是不完全一样的。
MIDI中并没有使用BPM来表示歌曲的速度,取而代之的是Meta Tempo事件,主要是因为Meta Tempo的时间单位比BPM描述更为精确,因为有时需要更精准的拍子时,BPM可能会出现小数,比如BPM=120.5。
因为MIDI文件中并没有定义BPM的信息,因此为了将MIDI中的速度(Meta Tempo)转换为音乐速度(Musical Tempo),需要使用下面的转换公式:

BPM=60000000/microTempo

 上式中,MicroTempo是指Meta Tempo事件(FF 51 03 tt tt tt)中的时间tt tt tt。例如,当MicroTempo=07 A1 20=500000(微秒),则乐曲的BPM=60000000/500000=120。

6.2   PPNQ Clock

对于相关音乐人士来说,使用微秒作为MIDI事件的delta时间,确实让人很难以理解也很费脑筋。因此,MIDI中定义了另一个比微秒更合适的时间单位:Tick。
对于音乐制作者来说,Tick就是MIDI中定义的最小单位(TimeBase),在MIDI音乐制作中,MIDI事件就可以用这种大家都容易接受的方式来描述——小节:拍:Ticks。
为了产生计数TimeBase的时钟(PPQN Clock, Pulses Per Quarter Note),音序器程序一般需要借助硬件(微秒)定时器来实现。那么,如何确定PPQN Clock的时长呢,也就是说1个Tick到底是多少微秒?其实这是可以算出来的,因为Meta Tempo可以告诉你一个四分音符的微秒数,而division告诉了你一个四分音符的Tick数,因此1个Tick的时间可以通过如下的公式计算出来:

 tick=Meta Tempo(微秒)/division


Micro Tempo是指Meta Tempo事件(FF 51 03 tt tt tt)中的时间tt tt tt,例如,MicroTempo=07 A1 20=500000,Division=120,那么1个Tick的时长就是500000/120=4166(微秒)

6.3 MIDI clock

 在MIDI标准中,定义了只有一个状态字节的F8码,它是为两台设备之间(主设备和从设备)同步而定义的MIDI时钟系统信息(稍微高档一点的MIDI设备一般都具有定时发送F8码的功能,我们可以从诸如midiox这样的应用程序中监测得到),并且该信息发送的速率是根据主设备音乐速度的不同而改变的,因为MIDI规范中指定了一个四分音符为24个MIDI Clock,因此每个MIDI Clock的时长可根据下面的公式计算出来:

 

MIDI Clock信息的速率=Micro Tempo(微秒)/24

 

例如,FF 51 Meta Tempo信息中Micro Tempo=500000,则设备发送MIDI Clock信息的频率就是500000/24=20833(微秒)。
    当然,我们也可以用PPQN Clock为单位来表述一个MIDI Clock的时长: 

 

 MIDI Clock信息的频率=Division/24

例如,MIDI文件头信息中Division=120,则设备发送MIDI Clock信息的频率为120/24=5 PPQN Clocks。

6.4   SMPTE

SMPTE是一种基于日常生活基本时间:时、分、秒的时间格式,并且它把秒分为了更小的单位:帧(Frames)。该时间格式最初应用于电影行业,被应用于音乐设备之后,帧又被分为了更小的单位:子帧(SubFrames)。
   SMPTE是一种绝对的时间格式,而不是音乐上用于计时的时间,与音乐速度(Musical Tempo)没有直接的关系,也不会随速度的改变而改变。
    许多MIDI主设备(Master)通常通过SMPTE来同步与之连接的MIDI从设备(Slave),从设备为了响应这种方式的同步就必须转换SMPTE。即以SMPTE时间为基础,得到并维护自己的PPQN Clock,这样,用户才能通过设置BPM来改变乐器的播放速度。
PPQN Clocks必须通过计算传递的SMPTE时间(时:分:秒:Frames:SubFrames)重新来确定,假设SMPTE的fps为25(每秒钟25帧)并且每帧分为40个子帧(SubFrames),那么每秒钟的子帧数就是25×40=1000,也就是说,每个子帧的时间是1毫秒(ms)=1000微秒。
现在假设Meta Tempo=500000(微秒/四分音符),则每个四分音符子帧数为500000/(25×40)=500,再假设Division=96(Ticks/四分音符),则每个Tick的子帧数为500/96=5.2083。因此,在Meta Tempo=500000,Division=96的条件下,每个Tick(PPQN Clock)的子帧数为5.2083,而每个子帧的时间是1000微秒,可知每个Tick的时间是5208.3微秒。设置速度是51 ,但是在其前面必须是FF,然后需要3个字节作为参数,所以字节数为03

第七章 实时分类事件(RealTime Category

实时分类事件也叫realtime category,这类(状态位0xF8-0xFF,仅有一个byte组成)事件只集中于实时功能,也就是说在特定的时间输入输出事件,没有任何的延迟。因此,MIDI文件允许实时分类事件可以在任何时候被传送,即使MIDI文件被插入一些不相关联的MIDI事件。也即任何事件的表达式都必须带有相应的状态位。从附件1中可以看到。

7.1 运行状态(Running Status

运行状态也叫running status,可以理解为:当先前被传送的事件具有相同的状态位时,接下来被传送的同类的MIDI事件可以省略状态位。

原因是:MIDI设备能够存储最后传送进来的MIDI事件的状态位,只要将要传送的事件具有相同的状态位,都可以省略相同的状态位,进行传送一连串的同类事件,最终最大限度的提高了MIDI的传送率。

1选自《阿刺伯跳舞女郎》

00 91 2B 78   00 32 78

连续按下音符

特例:选自《阿刺伯跳舞女郎》

88 7F 92 3C 64    00 41 64   00 39 64    81 1C 39 00   04 3C 00   04 41 00    1C 3E 64这个特例的原因是,按下音符时,如果力度是0,将等同于松开音符,所以可以一连串的按下和松开音符,省略状态位。   

2:选自附件3    

 00 B0 00 05   00 20 57   

连续使用控制器

3:选自附件3    

 0E A0 0C 00   02 03 00   02 02 00 

连续使用aftertouch   

4:选自附件3     

00 E0 00 40  00 00 40  00 00 40 连续使用滑音

注意:一旦使用了非音符事件,接着再使用音符事件时,则必须重新通知打开音符。通过修改音符事件:原来是时间差+音符+力度,现在加入一个打开音符的标志成为:时间差+9x+音符+力度。

注意:时间差为00的控制事件如果出现的时间也是00,在cakewalk中会尽可能的把它们放在轨道信息中,而不在事件列表中重复。可以利用这一点给音轨设置初始乐器和音量

5:连续使用2个控制器和接着松开音符:00 B6 0A 40   00 B6 07 46   83 30 86 41 40

其中000083 30是时间差,这里使用状态位86去松开音符。

由于发生的事件在任一时刻都带有状态标志位,所以实时分类事件能处理任何时间的状态事件,而运行状态信息事件由于省略了事件的状态标志位,所以不能处理实时分类事件。

运行状态事件仅仅能完成声音分类事件(例如0x80-0xEF

 第八章 实例分析MIDI歌曲

 解析MDI文件的难点:

1,时间差是动态字节,无法确定位数;

2按下音符与松开音符一起使用时经常省去状态位;

3控制器一起使用时会省去状态字节。 

8.1 解析实时信息(RealTime) MIDI歌曲

本附件的特点是使用任何一种事件,都有明确的状态位,最容易解析MIDI文件的内容

例子来自《克罗地亚狂想曲》多音轨,GS音色库,调号每个音轨的都一样,不能规定多个不同调号,标准规范的格式非常有利于编程提取数据

4D 54 68 64 00 00 00 06  表示”MTHd”,6个字节

00 01多音轨 00 0A指定轨道数是10,其中9个音轨,也即9种乐器,1个总音轨。01 E0 分区是480

4D 54 72 6B 00 00 00 2C 表示“MTRk2C44)个字节,在此总音轨的字节数,不包括“MTRk”的字节数

00 FF 03 13 20 43 72 6F 61 74 69 61 6E 20 52 68 61 70 73 6F 64 79 20歌曲标题和音轨名称13 (16进制)为歌曲标题字节数总共是19个

00 FF 58 04 04 02 18 00节拍(一首歌曲中节拍可以改变的,往往从3/8变换到4/4

00 FF 51 03 09 A3 1A速度

 89 D0 00 FF 2F 00音轨结束标志, 89 D0 00为时间差

 4D 54 72 6B 00 00表示“MTRk”,25 B9个字节,第一个轨道信息

00 FF 03 05 50 69 61 6E 6F歌曲标题表示音轨名  05为字节数

00 FF 04 1B 4D 69 63 72 6F 73 6F 66 74 20 47 53 20 B2 A8 B1 ED C8 ED BC FE BA CF B3 C9 C6 F7乐器名称总共有1B个字节,也即是27个字节

00 FF 59 02 FD 00  指定调号,大调

00 C0 00  00 B0 0A 40改变音乐,在0轨道使用乐器00(原声大钢琴),使控制器号码是0A(声像调整pan)值是64

8F 00 90 5B 6E 时间差8F 00,按下音符5BG),音阶是4,力度6E  表示:在轨道1按下音符G,与控制器的使用相差的时间是8F 00

 00 90 56 6E  音符是56(D    按下音符56,音阶是6,力度6E,时间差00  表示:与音符G同时按下音符D   

6C 80 5B 40音符是5B         松开,时间差为6C  表示:隔了时间差6C,松开音符G

00 80 56 40   音符是56    松开   表示:同音符G一样同时松开音符D,松开力度也一样。

0C 90 57 6E 时间0C,音符是57(D#)按下音符57

6C 80 57 40  时间是6C     松开音符57

0C 90 54 6E 时间是0C音符是54(C)音阶是6  按下音符54

81 58 80 54 40                  松开音符,时间差为81 58

18 90 5B 50 时间是18,音符是5B 按下音符5B

00 90 56 50                    按下音符56

 6C 80 5B 40                    松开5B

 ……….

88 20 FF 2F 00 结束

4D 54 72 6B 00 00 15 00 第三段音轨迹,字节数 15 00

00 FF 03 06 56 69 6F 6C 69 6E歌曲标题

00 FF 04 1B 4D 69 63 72 6F 73 6F 66 74 20 47 53 20 B2 A8 B1 ED C8 ED BC FE BA CF B3 C9 C6 F7乐器名称总共有1B个字节,也即是27个字节

00 FF 59 02 FD 00  指定调号,大调

00 C6 2C 00 B6 0A 40使用乐器2CG#),音阶是2,控制器号码是0A控制器参数是40

 00 B6 07 46 控制器号码0A,控制器参数是40

00 96 43 50 在通道6,按下音符43,力度50

69 40 86 43 40 松开音符43,时间差69 40

81 36 B6 07 50 

…….

4D 54 72 6B 00 00 15 10 

00 FF 03 06 56 69 6F 6C 69 6E 

00 FF 04 1B 4D 69 63 72 6F 73 6F 66 74 20 47 53 20 B2 A8 B1 ED C8 ED BC FE BA CF B3 C9 C6 F7

 00 FF 59 02 FD 00以上功能类似于第三段音轨

 00 C6 2C第二次使用乐器2C,此时出现问题与查表不符合,不是violin

00 B6 0A 40 00 B6 07 46 连续使用控制器(声像调制以及主音量,粗调)

00 96 43 50 以上功能一样

C9 40 86 43 40 按下音符G,音阶是4

81 36 B6 07 50 使用控制器(主音量,粗调

0A 96 43 50 以下是按下音符及松开音符

86 60 86 43 40   60 96 43 50   83 30 86 43 40   30 96 41 50   83 30 86 41 40    30 96 41 50 83  

30 86 41 40    30 96 3E 50    83 30 86 3E 40 

8.2解析运行状态(Running StatusMIDI歌曲(格式1

下面选自阿刺伯跳舞女郎,多音轨,GM音色表。

特点是省略了音符按下与松开的状态位,一般给定了按下音符的标志位后,会紧接着一串的按下音符事件,但同时由于力度是0,所以可以认为此时是松开音符,相当于按下和松开一串的音符,利用这个特点来分析音符事件。

这里有一条原则就是,肯定是先按下音符,才能松开,还有留心记忆不同的音符,才可以快速分析文件结构。这给编程带来了难度和不准确性。

另外就是关于00的使用,很多是时间差以及松开音符,其中还有大量的控制器,滑音的连续使用。

4D 54 68 64 00 00 00 06 00 01 00 09 00 C0 多音轨,9个轨道,分区是190

4D 54 72 6B 00 00 00 37总音轨是48个字节

00 FF 59 02 00 00,调号是大调,降号

00 FF 21 01 00特殊没有规定

00 FF 58 04 03 03 18 08 节拍

以下描述的是相隔一段时间速度会有变化(一首歌曲中速度往往也是变化的 )

00 FF 51 03 14 58 55 速度 ,时间差为0

81 DE 60 FF 51 03 16 E3 60 速度,时间差为81 DE 60

82 20 FF 51 03 18 BE 75速度,时间差为82 20

82 20 FF 51 03 1C 9C 38速度,时间差为82 20

00 FF 2F 00结束

真实的时间

4D 54 72 6B 00 00 15 7B 

00 FF 03 14 42 61 73 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20歌曲标题

00 FF 21 01 00 特殊没有规定

00 C1 20   00 B1 07 7F使用乐器Bass7号控制器(主音量,粗调),使用第二轨道

00 91 2B 78  按下音符G,音阶是2

00 32 78 按下音符D,音阶是3

00 E1 00 40 时间差,使用滑音

01 B1 0A 40 使用控制器,声像调整pan

27 91 2B 00 按下音符G,音阶是2,力度为0,等同松开

08 32 00 松开音符D音阶是3  00 37 78  按下音符1C 37 00 松开14 37 78 按下2C 37 00 松开04 32 78 ,观察知道前面音符没有按下,所以在此是按下,用来编程00 2B 78按下 0C 2B 00 松开04 32 00松开20 32 78 按下00 2B 78 按下28 2B 00 松开04 32 00松开 04 37 78 按下0C 37 00松开 

24 2B 78按下 00 32 78 按下2C 2B 00松开 04 32 00 松开

下面引用的例子都是这样判断的,可以借此来加深判断

……

20 1F 78   00 26 78   10 26 00   04 1F 00   1C 2B 78 10 2B 00   20 2B 78 10 2B 00   20 26 78 

00 1F 78    0C 1F 00   04 26 00   20 26 78   00 1F 78   0C 1F 00   04 26 00     20 2B 78 

10 2B 00   20 26 78   00 1F 78    82 20 26 00   00 1F 00   00 FF 2F 00 

……

88 7F 92 3C 64    00 41 64   00 39 64    81 1C 39 00   04 3C 00   04 41 00    1C 3E 64 

00 3A 64   3C 3E 00   00 3A 00   24 39 64   00 41 64   00 3C 64   81 20 39 00    00 3C 00

04 41 00   1C 3E 64   00 3A 64   30 3E 00   00 3A 00   30 41 64   00 39 64     00 3C 64   50 39 00

00 3C 00   04 41 00   0C 3F 64   0C 3F 00   04 41 64   10 41 00   08 3F 64   08 3F 00   08 41 64 

0C 41 00    04 3F 64   10 3F 00   08 3E 64    00 3A 64   82 40 3E 00   04 3A 00 

         

……

4D 54 72 6B 00 00 05 FC

00 FF 03 14 4D 65 6C 6F 64 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20  歌曲标题             

00 FF 21 01 00   00 C3 47   00 B3 07 50   00 E3 00 40 使用滑音   01 B3 0A 40使用控制器

88 7F 93 4D 73   81 2C 4D 00   14 4A 73    44 4A 00   1C 4D 73   81 28 4D 00   18 4A 73   48 4A 00    18 4D 73   44 4D 00   1C 4B 73   10 4B 00   08 4D 73   0C 4D 00   04 4B 73    0C 4B 00 

04 4D 73   10 4D 00    00 4B 73   10 4B 00   08 4A 73   82 44 4A 00   3C 4D 73   81 2C 4D 00

 14 4A 73   48 4A 00   18 4D 73   81 28 4D 00   18 4A 73   48 4A 00   18 4D 73   4C 4D 00                              

……

以下选自《MERYXMAS》观察到连续使用控制器,和连续使用音符的区别,当混合使用控制器和音符时,必然会添加状态位,以此区别。

另外注意00作为时间差时,这种描述方法是错误的,00 80,如果描述时间差80,只需写80前面不在多加00,关于这个描述规范可以在前面章节3.2看到

00 FF 21 01 01 表示MIDI port

00 FF 03 14 54 75 62 75 6C 61 72 20 42 65 6C 6C 73 20 20 20 20 20 20 20   mtrk轨道名字通过查询ASCII码可知“TubularspBellsspspspspspspsp”其中0x20H表示”sp”

00 C8 0E  使用Bells  00 B8 00 00音色库选择 使用第8轨道,总轨道00 5B 4F混响效果深度 连续3次使用控制器00 5D 6D 合唱效果深度

83 00 C8 0E 乐器大扬琴,在第9音轨

CC 40 98 46 40按下音符A#,音阶是4

 81 40 46 00  00 43 40  81 40 43 00  89 00 46 40  81 40 46 00  00 43 40 81  40 43 00 以音符符号判断按下与松开

00 FF 2F 00结束

4D 54 72 6B 00 00 07 33 使用轨道00 FF 21 01 01 

00 FF 03 14 46 58 20 31 20 28 52 61 69 6E 29 20 20 20 20 20 20 20 20 20以下可以根据空格来帮助判断执行何种操作

 00 C2 60   00 B2 00 00   00 5B 69   00 5D 7F   83 00 C2 60   97 20 92 41 5D   60 41 00   00 46 5D

60 46 00    00 48 5D   81 40 48 00   00 4A 5D   82 20 4A 00   00 4A 5D   81 40 4A 00    00 48 5D

81 40 48 00   00 4A 5D   60 4A 00   00 46 5D   82 20 46 00   60 46 5D   60 46 00   00 48 5D 

60 48 00   00 4A 5D   81 40 4A 00   00 4B 5D   82 20 4B 00   00 4B 5D   81 40 4B 00 

00 4A 5D   81 40 4A 00   00 46 5D   60 46 00   00 43 5D   82 20 43 00   60 41 5D 

60 41 00   00 46 5D   60 46 00    00 48 5D   81 40 48 00   00 4A 5D    82 20 4A 00   00 4A 5D 

 81 40 4A 00   00 48 5D   60 48 00  00 4A 5D   81 40 4A 00   97 20 90 37 46 其中97 20为时值

24 80 37 3F   0C 90 37 46   24 80 37 40   0C 90 3B 40   24 80 3B 40   0c 90 3E 40   54 80 3E 40 

0c 90 3E 40    81 04 80 3E 40 其中81 04为时值

8.3解析运行状态(Running StatusMIDI歌曲(格式0

以下选自passport.midi,使用GM音色表。

可以从后面的数据流中了解到aftertouch、滑音的使用规范类似于音符和控制器的使用规范。

特点是:多种轨道块的事件写在同一个音轨中,所以每次某个音轨道出现的不同的事件都要写上相应的音轨的状态位,用来区分不同的音轨的不同的事件,同时又具有运行状态事件的特点。

4D 54 68 64 00 00 00 06 

00 00 00 01 01 E0 单音轨

4D 54 72 6B 00 00 5A 67

 00 FF 7F 03 00 00 40音符特定信息

00 FF 58 04 04 02 18 08节拍(可以变化)

 00 FF 59 02 00 00 调号

00 FF 51 03 05 3B 49 速度

00 FF 06 10 43 31 2D 50 34 20 45 4C 45 43 20 50 49 41 4E 4F 标记……也是很多的

00 FF 06 0D 43 32 2D 50 33 37 2D 42 41 53 53 20 31 

00 FF 06 0D 43 33 2D 50 34 30 2D 42 41 53 53 20 32

 00 FF 06 10 43 34 2D 50 39 31 2D 50 4F 4C 59 53 59 4E 54 48 

00 FF 06 13 43 35 2D 50 38 31 2D 53 59 4E 54 48 20 4D 45 4C 4F 44 59 

00 FF 06 10 43 39 2D 50 32 39 20 45 4C 45 43 20 47 55 49 54 

00 FF 06 0F 43 36 2D 50 32 37 2D 43 4C 41 56 49 4E 45 54

 00 FF 06 0D 43 37 2D 50 37 37 2D 42 4F 54 54 4C 45

 00 FF 06 0C 43 38 2D 50 36 32 2D 42 52 41 53 53 

00 FF 06 09 43 31 30 2D 44 52 55 4D 53 

00 FF 06 10 43 31 31 2D 50 35 36 2D 4F 52 43 48 20 48 49 54

 00 FF 06 05 A9 31 39 39 31 

00 FF 06 16 50 61 73 73 70 6F 72 74 20 44 65 73 69 67 6E 73 2C 20 49 6E 63 2E

 00 FF 06 1A 50 72 6F 64 20 62 79 20 4D 75 73 69 63 20 44 61 74 61 20 43 6F 6D 70 61 6E 79 

……

00 B0 00 05 00 20 57   连续使用控制器00 C0 03 使用乐器00 B0 07 53连续使用控制器00 0A ; 3B 

00 E0 00 40 使用滑音00 00 40使用滑音00 00 40使用滑音(使用的是第一轨道)

00 B1 00 00  00 20 00连续使用控制器00 C1 24使用乐器00 B1 07 7C  00 0A 40连续使用控制器

00 91 24 5E  按下音符00 B1 5B 3C使用控制器第二轨道00 B5 00 00  00 20 00连续使用控制器

00 C5 1A使用乐器00 B5 07 60 使用控制器 第六轨道00 B3 00 00  00 20 00连续使用控制器

00 C3 5A       00 B3 07 53  00 0A 59   00 5B 4B连续3次使用控制器

00 B6 00 00  00 20 00连续2次使用控制器00 C6 4C    00 B6 07 73   00 B5 0A 63   00 07 3A  00 5B 37 

00 B8 07 63   00 B9 07 5D   00 0A 40   00 B4 00 00  00 20 00   00 C4 50使用乐器 00 B4 07 64

00 B7 00 00  00 20 00    00 C7 3D   00 B7 07 6D    00 99 2A 44   00 B2 07 59     00 99 24 79

 00 B9 5B 54   00 B8 00 00   00 20 78   00 C8 37   00 B9 00 00 00 20 00     00 C9 00 

00 B2 00 00 00 20 00    00 C2 27   12 B2 0A 40   00 5B 1E   00 5D 28    0E B6 0A 40 

38 99 2A 00    81 18 2A 30   81 0C 2A 00    1C 24 00   30 91 24 00   18 99 2A 39 

78 2A 00   78 2A 2C   00 B7 0A 21    00 91 24 61   00 99 24 6D   7A 2A 00   04 24 00 

00 91 24 00   72 99 2A 39   00 26 77   68 2A 00   81 08 91 1F 57    00 99 2A 28   1E 26 00 

54 91 1F 00    08 99 2A 00   76 2A 3A   00 91 22 66   00 99 24 7D   42 B4 0A 40 00 5B 37   2C 99 2A 00 

81 02 2A 27   6C 2A 00   70 B8 0A 40   00 5B 58连续使用控制器由于前面有控制器标志

0E A0 0C 00  02 03 00   02 02 00连续使用aftertouch

02 99 2A 3B    00 E0 00 40使用滑音00 00 40 00 00 40 连续使用滑音48 99 24 00 轨道10

24 2A 00    81 04 2A 2C   76 2A 00   7A 2A 3C  56 91 22 00轨道2    1C 99 2A 00 轨道10

7E 91 22 5E  轨道2   00 99 2A 2E 轨道10    6C 91 22 00轨道2   1A 99 2A 00轨道10

6A 91 1D 63轨道2   00 99 2A 39以下连续使用轨道10  00 26 77 轨道10   7C 2A 00   74 2A 2F

 52 26 00   32 2A 00 

08 91 1D 00以下连续使用轨道2  64 22 66    00 99 2A 3C连续使用轨道10  00 24 79按下音符  

 81 00 2A 00   3E 24 00    32 2A 38   0A 91 22 00   6C 99 2A 00   7A 91 24 5A   00 99 2A 3B  

 00 24 7B   6C 2A 00      06 E4 08 3A 使用滑音,轨道 00 08 3A    1E 16 33   00 16 33滑音

1E 20 2E   00 20 2E   1E 34 24    00 34 24    1C 3A 21    00 3A 21    08 99 2A 2C    

 18 E4 3C 20   00 3C 20   1E 3E 1F   00 3E 1F   1E 3C 20    00 3C 20   1E 32 25    00 32 25      

  04 99 2A 00   1A E4 2A 29   00 2A 29   16 99 24 00     08 E4 22 2D使用滑音 00 22 2D    1E 20 2E  

00 20 2E     1E 18 32     00 18 32      06 99 2A 3C 按下音符  18 E4 04 3C 使用滑音00 04 3C  

 1E 00 40 00 00 40    0E 91 24 00 按下音符,轨道2  2E 99 2A 00按下音符,轨道10

 7E 24 79   00 2A 2E    00 91 24 61按下音符,轨道2    76 24 00    10 99 2A 00按下音符,轨道10

26 24 00     44 26 79     00 2A 39     7C 2A 00     74 2A 2F     40 26 00     44 2A 00 

6C 2A 3C     81 00 2A 00     70 24 71   00 91 1F 61     00 99 2A 38      76 2A 00    7A 2A 3E 

00 2A 44     10 2A 00    00 2A 00      81 38 91 1F 00     12 99 24 00      16 2A 30    00 91 1F 50 

78 1F 00      14 99 2A 00      64 24 7D     00 91 21 5C    00 99 2A 39     78 2A 00    64 91 21 00 

14 99 2A 2C      2A 24 00      50 2A 00      76 91 22 6A  

                                                                                        

……

 [1]基于音轨特征量的MIDI主旋律抽取方法

[2]MIDI信号的解码即实时音符显示

[3]移动设备中的MIDI和旋铃声播放器的设计

[4] http://xialu817.blog.163.com/blog/static/1004643592009101904515415/MIDI控制器一览表和常用MIDI控制器  

附件1 克罗地亚狂想曲.mid

只选用了开始的一部分

00000000h: 4D 54 68 64 00 00 00 06 00 01 00 0A 01 E0 4D 54 ; MThd.........T

00000010h: 72 6B 00 00 00 2C 00 FF 03 13 20 43 72 6F 61 74 ; rk...,... Croat

00000020h: 69 61 6E 20 52 68 61 70 73 6F 64 79 20 00 FF 58 ; ian Rhapsody .X

00000030h: 04 04 02 18 08 00 FF 51 03 09 A3 1A 89 DD 00 FF ; ......Q..?壿.

00000040h: 2F 00 4D 54 72 6B 00 00 25 B9 00 FF 03 05 50 69 ; /.MTrk..%?..Pi

00000050h: 61 6E 6F 00 FF 04 1B 4D 69 63 72 6F 73 6F 66 74 ; ano...Microsoft

00000060h: 20 47 53 20 B2 A8 B1 ED C8 ED BC FE BA CF B3 C9 ;  GS 波表软件合成

00000070h: C6 F7 00 FF 59 02 FD 00 00 C0 00 00 B0 0A 40 8F ; 器.Y.?.?.?@?

00000080h: 00 90 5B 6E 00 90 56 6E 6C 80 5B 40 00 80 56 40 ; .n.nl[@.V@

00000090h: 0C 90 57 6E 6C 80 57 40 0C 90 54 6E 81 58 80 54 ; .nlW@.n乆€T

000000a0h: 40 18 90 5B 50 00 90 56 50 6C 80 5B 40 00 80 56 ; @.P.Pl[@.V

000000b0h: 40 0C 90 57 50 6C 80 57 40 0C 90 54 50 81 58 80 ; @.PlW@.P乆€

000000c0h: 54 40 18 90 54 6E 00 90 4F 6E 6C 80 54 40 00 80 ; T@.n.nlT@.

000000d0h: 4F 40 0C 90 50 6E 6C 80 50 40 0C 90 4D 6E 81 58 ; O@.nlP@.n

000000e0h: 80 4D 40 18 90 54 50 00 90 4F 50 6C 80 54 40 00 ; M@.P.PlT@.

000000f0h: 80 4F 40 0C 90 50 50 6C 80 50 40 0C 90 4D 50 81 ; O@.PlP@.P?

00000100h: 58 80 4D 40 18 90 56 6E 00 90 51 6E 6C 80 56 40 ; XM@.n.nlV@

00000110h: 00 80 51 40 0C 90 53 6E 6C 80 53 40 0C 90 4F 6E ; .Q@.nlS@.n

00000120h: 81 58 80 4F 40 18 90 56 6E 00 90 4F 6E 81 58 80 ; 乆€O@.n.n乆€

00000130h: 56 40 00 80 4F 40 18 90 4F 6E 00 90 4A 6E 6C 80 ; V@.O@.n.nl

00000140h: 4F 40 00 80 4A 40 0C 90 4B 6E 6C 80 4B 40 0C 90 ; O@.J@.nlK@.?

00000150h: 48 6E 81 58 80 48 40 18 90 4F 6E 00 90 4A 6E 6C ; Hn乆€H@.n.nl

00000160h: 80 4F 40 00 80 4A 40 0C 90 4B 6E 6C 80 4B 40 0C ; O@.J@.nlK@.

00000170h: 90 48 6E 83 30 80 48 40 30 90 5B 6E 00 90 56 6E ; n?H@0n.n

00000180h: 6C 80 5B 40 00 80 56 40 0C 90 57 6E 6C 80 57 40 ; l[@.V@.nlW@

00000190h: 0C 90 54 6E 83 30 80 54 40 30 90 5B 50 6C 80 5B ; .n?T@0Pl[

000001a0h: 40 0C 90 54 50 6C 80 54 40 0C 90 54 6E 00 90 4F ; @.PlT@.n.

000001b0h: 6E 6C 80 54 40 00 80 4F 40 0C 90 50 6E 6C 80 50 ; nlT@.O@.nlP

000001c0h: 40 0C 90 4D 50 83 30 80 4D 40 30 90 54 6E 6C 80 ; @.P?M@0nl

000001d0h: 54 40 0C 90 4D 6E 6C 80 4D 40 0C 90 56 6E 00 90 ; T@.nlM@.n.?

000001e0h: 51 6E 6C 80 56 40 00 80 51 40 0C 90 53 6E 6C 80 ; QnlV@.Q@.nl

000001f0h: 53 40 0C 90 4F 6E 81 58 80 4F 40 18 90 56 6E 00 ; S@.n乆€O@.n.

00000200h: 90 4F 6E 81 58 80 56 40 00 80 4F 40 18 90 4F 6E ; n乆€V@.O@.n

00000210h: 00 90 4A 6E 6C 80 4F 40 00 80 4A 40 0C 90 4B 6E ; .nlO@.J@.n

00000220h: 6C 80 4B 40 0C 90 48 6E 81 58 80 48 40 18 90 4F ; lK@.n乆€H@.

00000230h: 6E 00 90 4A 6E 6C 80 4F 40 00 80 4A 40 0C 90 4B ; n.nlO@.J@.

00000240h: 6E 6C 80 4B 40 0C 90 48 6E 83 30 80 48 40 26 B0 ; nlK@.n?H@&?

00000250h: 07 5A 00 B0 07 5A 00 B0 07 5A 00 B0 07 5A 0A 90 ; .Z.?Z.?Z.?Z.?

000006a0h: 50 6C 80 3F 40 0C 90 3C 50 83 30 80 3C 40 30 90 ; Pl€?@.?P?€<@0

附件2  选自阿刺伯跳舞女郎.mid

00000000h: 4D 54 68 64 00 00 00 06 00 01 00 09 00 C0 4D 54 ; MThd.........T

00000010h: 72 6B 00 00 00 37 00 FF 59 02 00 00 00 FF 21 01 ; rk...7.Y....!.

00000020h: 00 00 FF 58 04 03 03 18 08 00 FF 51 03 14 58 55 ; ..X......Q..XU

00000030h: 81 DE 60 FF 51 03 16 E3 60 82 20 FF 51 03 18 BE ; 佫`Q..鉦?Q..?

00000040h: 75 82 20 FF 51 03 1C 9C 38 00 FF 2F 00 4D 54 72 ; u?Q..?./.MTr

00000050h: 6B 00 00 15 7B 00 FF 03 14 42 61 73 73 20 20 20 ; k...{...Bass   

00000060h: 20 20 20 20 20 20 20 20 20 20 20 20 20 00 FF 21 ;              .!

00000070h: 01 00 00 C1 20 00 B1 07 7F 00 91 2B 78 00 32 78 ; ...?.?.?x.2x

00000080h: 00 E1 00 40 01 B1 0A 40 27 91 2B 00 08 32 00 00 ; .?@.?@'?..2..

00000090h: 37 78 1C 37 00 14 37 78 2C 37 00 04 32 78 00 2B ; 7x.7..7x,7..2x.+

000000a0h: 78 0C 2B 00 04 32 00 20 32 78 00 2B 78 28 2B 00 ; x.+..2. 2x.+x(+.

000000b0h: 04 32 00 04 37 78 0C 37 00 24 2B 78 00 32 78 2C ; .2..7x.7.$+x.2x,

000000c0h: 2B 00 04 32 00 00 37 78 10 37 00 20 37 78 30 37 ; +..2..7x.7. 7x07

000000d0h: 00 00 32 78 00 2B 78 10 32 00 00 2B 00 20 2B 78 ; ..2x.+x.2..+. +x

000000e0h: 00 32 78 30 2B 00 00 37 78 04 32 00 0C 37 00 20 ; .2x0+..7x.2..7. 

000000f0h: 2B 78 00 32 78 30 2B 00 00 37 78 04 32 00 0C 37 ; +x.2x0+..7x.2..7

00000100h: 00 20 37 78 30 37 00 00 32 78 00 2B 78 14 32 00 ; . 7x07..2x.+x.2.

00000110h: 00 2B 00 1C 2B 78 00 32 78 30 37 78 04 2B 00 00 ; .+..+x.2x07x.+..

00000120h: 32 00 10 37 00 1C 2B 78 00 32 78 30 37 78 04 32 ; 2..7..+x.2x07x.2

00000130h: 00 04 2B 00 10 37 00 18 37 78 30 37 00 00 32 78 ; ..+..7..7x07..2x

00000140h: 00 2B 78 10 32 00 00 2B 00 20 2B 78 00 32 78 30 ; .+x.2..+. +x.2x0

00000150h: 32 00 00 37 78 04 2B 00 08 37 00 24 32 78 00 2B ; 2..7x.+..7.$2x.+

00000160h: 78 28 2B 00 08 32 00 00 37 78 1C 37 00 14 37 78 ; x(+..2..7x.7..7x

00000170h: 2C 37 00 04 32 78 00 2B 78 0C 2B 00 04 32 00 20 ; ,7..2x.+x.+..2. 

00000180h: 32 78 00 2B 78 28 2B 00 04 32 00 04 37 78 0C 37 ; 2x.+x(+..2..7x.7

……以下是第2段音轨序列

000015d0h: 4D 54 72 6B 00 00 0A F1 00 FF 03 14 48 61 72 6D ; MTrk...?..Harm

000015e0h: 6F 6E 79 2F 4C 65 61 64 20 20 20 20 20 20 20 20 ; ony/Lead        

000015f0h: 00 FF 21 01 00 00 C2 2C 00 B2 07 7F 00 E2 00 40 ; .!...?.?.?@

00001600h: 01 B2 0A 40 88 7F 92 3C 64 00 41 64 00 39 64 81 ; .?@??d.Ad.9d?

00001610h: 1C 39 00 04 3C 00 04 41 00 1C 3E 64 00 3A 64 3C ; .9..<..A..>d.:d<

00001620h: 3E 00 00 3A 00 24 39 64 00 41 64 00 3C 64 81 20 ; >..:.$9d.Ad.<d?

00001630h: 39 00 00 3C 00 04 41 00 1C 3E 64 00 3A 64 30 3E ; 9..<..A..>d.:d0>

00001640h: 00 00 3A 00 30 41 64 00 39 64 00 3C 64 50 39 00 ; ..:.0Ad.9d.<dP9.

00001650h: 00 3C 00 04 41 00 0C 3F 64 0C 3F 00 04 41 64 10 ; .<..A..?d.?..Ad.

00001660h: 41 00 08 3F 64 08 3F 00 08 41 64 0C 41 00 04 3F ; A..?d.?..Ad.A..?

00001670h: 64 10 3F 00 08 3E 64 00 3A 64 82 40 3E 00 04 3A ; d.?..>d.:d>..:

00001680h: 00 3C 41 64 00 39 64 00 3C 64 81 18 41 00 00 39 ; .<Ad.9d.<d?A..9

00001690h: 00 04 3C 00 24 3E 64 00 3A 64 34 3E 00 04 3A 00 ; ..<.$>d.:d4>..:.

000016a0h: 28 39 64 00 41 64 00 3C 64 81 1C 39 00 00 3C 00 ; (9d.Ad.<d?9..<.

000016b0h: 04 41 00 20 3E 64 00 3A 64 34 3E 00 04 3A 00 28 ; .A. >d.:d4>..:.(

000016c0h: 41 64 00 39 64 00 3C 64 4C 39 00 04 3C 00 04 41 ; Ad.9d.<dL9..<..A

000016d0h: 00 0C 3F 64 0C 3F 00 0C 41 64 0C 41 00 04 3F 64 ; ..?d.?..Ad.A..?d

000016e0h: 08 3F 00 08 41 64 10 41 00 00 3F 64 14 3F 00 04 ; .?..Ad.A..?d.?..

000016f0h: 3E 64 00 3A 64 84 5C 3E 00 00 3A 00 44 43 64 00 ; >d.:d>..:.DCd.

00001700h: 46 64 81 28 43 00 00 46 00 18 45 64 00 48 64 40 ; Fd?C..F..Ed.Hd@

00001710h: 45 00 00 48 00 20 46 64 00 4A 64 34 46 00 00 4A ; E..H. Fd.Jd4F..J

00001720h: 00 2C 46 64 00 4A 64 81 04 46 00 00 4A 00 3C 4A ; .,Fd.Jd?F..J.<J

……

选自愛是永恒.mid

00000000h: 4D 54 68 64 00 00 00 06 00 01 00 10 00 F0 4D 54 ; MThd.........T

00000010h: 72 6B 00 00 0B A6 00 FF 03 08 B7 52 AC 4F A5 C3 ; rk...?..稲琌ッ

00000020h: AB ED 00 FF 02 2D 43 6F 70 79 72 69 67 68 74 20 ; ..-Copyright 

00000030h: 63 20 31 39 39 37 20 62 79 20 54 63 68 69 61 6E ; c 1997 by Tchian

00000040h: 67 20 43 61 72 6C 6F 73 20 64 6F 20 52 6F 73 61 ; g Carlos do Rosa

00000050h: 72 69 6F 00 FF 01 07 B1 69 BE C7 A4 CD 0A 00 FF ; rio...眎厩ね..

00000060h: 54 05 60 00 03 00 00 00 FF 58 04 03 02 18 08 00 ; T.`.....X......

00000070h: FF 59 02 FD 00 00 FF 51 03 0F 42 40 85 50 FF 51 ; Y.?.Q..B@匬Q

00000080h: 03 11 3A 85 81 70 FF 51 03 0F 21 F8 81 70 FF 51 ; ..:厑pQ..!鴣pQ

00000090h: 03 0F 11 64 81 70 FF 51 03 0F 00 F4 81 70 FF 51 ; ...d乸Q...魜pQ

000000a0h: 03 12 90 21 81 70 FF 51 03 11 1A 63 81 70 FF 51 ; ..?乸Q...c乸Q

000000b0h: 03 11 2A CE 81 70 FF 51 03 13 53 C0 81 70 FF 51 ; ..*蝸pQ..S纴pQ

000000c0h: 03 10 98 3C 81 70 FF 58 04 01 02 18 08 81 70 FF ; ..?乸X.....乸

000000d0h: 58 04 03 02 18 08 00 FF 51 03 12 3F 9E 81 70 FF ; X......Q..?瀬p

000000e0h: 51 03 11 1A 63 81 70 FF 51 03 13 44 22 81 70 FF ; Q...c乸Q..D"乸

000000f0h: 51 03 0E 0C EA 81 70 FF 51 03 12 D1 93 81 70 FF ; Q...陙pQ..褤乸

00000100h: 51 03 0F B4 28 81 70 FF 51 03 10 67 84 81 70 FF ; Q..?乸Q..g剚p

00000110h: 51 03 11 4B 2F 81 70 FF 51 03 10 77 61 81 70 FF ; Q..K/乸Q..wa乸

00000120h: 51 03 0E 4E 1C 81 70 FF 51 03 11 5B 21 81 70 FF ; Q..N.乸Q..[!乸

00000130h: 51 03 10 D9 1F 81 70 FF 58 04 01 02 18 08 00 FF ; Q..?乸X......

00000140h: 51 03 0F F5 53 81 70 FF 58 04 03 02 18 08 00 FF ; Q..鮏乸X......

00000150h: 51 03 10 05 C5 81 70 FF 51 03 11 9C 14 81 70 FF ; Q...艁pQ..?乸

00000160h: 51 03 15 DF 05 81 70 FF 51 03 0F F5 53 81 70 FF ; Q..?乸Q..鮏乸

00000170h: 51 03 18 29 AB 81 70 FF 51 03 0F 73 07 81 70 FF ; Q..)珌pQ..s.乸

00000180h: 51 03 0F 21 F8 81 70 FF 51 03 0C 45 56 81 70 FF ; Q..!鴣pQ..EV乸

00000190h: 51 03 0F F5 53 81 70 FF 51 03 0E D0 7A 81 70 FF ; Q..鮏乸Q..衵乸

000001a0h: 51 03 0A FF A7 81 70 FF 51 03 09 17 75 81 6E FF ; Q..pQ...u乶

附件3  选自Passport.mid

00000000h: 4D 54 68 64 00 00 00 06 00 00 00 01 01 E0 4D 54 ; MThd.........T

00000010h: 72 6B 00 00 5A 67 00 FF 7F 03 00 00 40 00 FF 58 ; rk..Zg....@.X

00000020h: 04 04 02 18 08 00 FF 59 02 00 00 00 FF 51 03 05 ; ......Y....Q..

00000030h: 3B 49 00 FF 06 10 43 31 2D 50 34 20 45 4C 45 43 ; ;I...C1-P4 ELEC

00000040h: 20 50 49 41 4E 4F 00 FF 06 0D 43 32 2D 50 33 37 ;  PIANO...C2-P37

00000050h: 2D 42 41 53 53 20 31 00 FF 06 0D 43 33 2D 50 34 ; -BASS 1...C3-P4

00000060h: 30 2D 42 41 53 53 20 32 00 FF 06 10 43 34 2D 50 ; 0-BASS 2...C4-P

00000070h: 39 31 2D 50 4F 4C 59 53 59 4E 54 48 00 FF 06 13 ; 91-POLYSYNTH...

00000080h: 43 35 2D 50 38 31 2D 53 59 4E 54 48 20 4D 45 4C ; C5-P81-SYNTH MEL

00000090h: 4F 44 59 00 FF 06 10 43 39 2D 50 32 39 20 45 4C ; ODY...C9-P29 EL

000000a0h: 45 43 20 47 55 49 54 00 FF 06 0F 43 36 2D 50 32 ; EC GUIT...C6-P2

000000b0h: 37 2D 43 4C 41 56 49 4E 45 54 00 FF 06 0D 43 37 ; 7-CLAVINET...C7

000000c0h: 2D 50 37 37 2D 42 4F 54 54 4C 45 00 FF 06 0C 43 ; -P77-BOTTLE...C

000000d0h: 38 2D 50 36 32 2D 42 52 41 53 53 00 FF 06 09 43 ; 8-P62-BRASS...C

000000e0h: 31 30 2D 44 52 55 4D 53 00 FF 06 10 43 31 31 2D ; 10-DRUMS...C11-

000000f0h: 50 35 36 2D 4F 52 43 48 20 48 49 54 00 FF 06 05 ; P56-ORCH HIT...

00000100h: A9 31 39 39 31 00 FF 06 16 50 61 73 73 70 6F 72 ; ?991...Passpor

00000110h: 74 20 44 65 73 69 67 6E 73 2C 20 49 6E 63 2E 00 ; t Designs, Inc..

00000120h: FF 06 1A 50 72 6F 64 20 62 79 20 4D 75 73 69 63 ; ..Prod by Music

00000130h: 20 44 61 74 61 20 43 6F 6D 70 61 6E 79 00 FF 06 ;  Data Company..

00000140h: 0E 43 31 33 2D 50 36 34 2D 4D 65 6C 6F 64 79 00 ; .C13-P64-Melody.

00000150h: FF 06 0C 43 31 34 2D 50 32 2D 50 69 61 6E 6F 00 ; ..C14-P2-Piano.

00000160h: FF 06 0B 43 31 35 2D 50 31 2D 42 61 73 73 00 FF ; ..C15-P1-Bass.

00000170h: 06 0F 50 41 53 53 50 4F 52 54 20 50 4C 45 41 53 ; ..PASSPORT PLEAS

00000180h: 45 00 FF 06 09 43 31 36 2D 44 72 75 6D 73 00 B0 ; E...C16-Drums.?

00000190h: 00 05 00 20 57 00 C0 03 00 B0 07 53 00 0A 3B 00 ; ... W.?.?S..;.

000001a0h: E0 00 40 00 00 40 00 00 40 00 B1 00 00 00 20 00 ; ?@..@..@.?.. .

000001b0h: 00 C1 24 00 B1 07 7C 00 0A 40 00 91 24 5E 00 B1 ; .?.?|..@.?^.?

000001c0h: 5B 3C 00 B5 00 00 00 20 00 00 C5 1A 00 B5 07 60 ; [<.?.. ..?.?`

000001d0h: 00 B3 00 00 00 20 00 00 C3 5A 00 B3 07 53 00 0A ; .?.. ...?S..

000001e0h: 59 00 5B 4B 00 B6 00 00 00 20 00 00 C6 4C 00 B6 ; Y.[K.?.. ...?

000001f0h: 07 73 00 B5 0A 63 00 07 3A 00 5B 37 00 B8 07 63 ; .s.?c..:.[7.?c

00000200h: 00 B9 07 5D 00 0A 40 00 B4 00 00 00 20 00 00 C4 ; .?]..@.?.. ..?

00000210h: 50 00 B4 07 64 00 B7 00 00 00 20 00 00 C7 3D 00 ; P.?d.?.. ..?.

00000220h: B7 07 6D 00 99 2A 44 00 B2 07 59 00 99 24 79 00 ; ?m.?D.?Y.?y.

00000230h: B9 5B 54 00 B8 00 00 00 20 78 00 C8 37 00 B9 00 ; T.?.. x.?.?

00000240h: 00 00 20 00 00 C9 00 00 B2 00 00 00 20 00 00 C2 ; .. ..?.?.. ..?

00000250h: 27 12 B2 0A 40 00 5B 1E 00 5D 28 0E B6 0A 40 38 ; '.?@.[..](.?@8

00000260h: 99 2A 00 81 18 2A 30 81 0C 2A 00 1C 24 00 30 91 ; ?.?*0?*..$.0?

00000270h: 24 00 18 99 2A 39 78 2A 00 78 2A 2C 00 B7 0A 21 ; $..?9x*.x*,.?!

00000280h: 00 91 24 61 00 99 24 6D 7A 2A 00 04 24 00 00 91 ; .?a.?mz*..$..?

00000290h: 24 00 72 99 2A 39 00 26 77 68 2A 00 81 08 91 1F ; $.r?9.&wh*.??

000002a0h: 57 00 99 2A 28 1E 26 00 54 91 1F 00 08 99 2A 00 ; W.?(.&.T?..?.

000002b0h: 76 2A 3A 00 91 22 66 00 99 24 7D 42 B4 0A 40 00 ; v*:.?f.?}B?@.

000002c0h: 5B 37 2C 99 2A 00 81 02 2A 27 6C 2A 00 70 B8 0A ; [7,?.?*'l*.p?

……

以下选自TITANIC.MID

00000000h: 4D 54 68 64 00 00 00 06 00 00 00 01 00 78 4D 54 ; MThd.........xMT

00000010h: 72 6B 00 00 4B F9 00 FF 03 13 4D 79 20 68 65 61 ; rk..K?..My hea

00000020h: 72 74 20 77 69 6C 6C 20 67 6F 20 6F 6E 00 FF 02 ; rt will go on..

00000030h: 21 43 6F 70 79 72 69 67 68 74 20 31 39 39 38 20 ; !Copyright 1998 

00000040h: 62 79 20 44 65 72 53 68 69 75 6E 20 53 74 75 64 ; by DerShiun Stud

00000050h: 69 6F 00 FF 01 0F 44 65 72 53 68 69 75 6E 20 53 ; io...DerShiun S

00000060h: 74 75 64 69 6F 00 FF 01 10 44 65 72 53 68 69 75 ; tudio...DerShiu

00000070h: 6E 20 53 74 75 64 69 6F 0A 00 FF 01 1F 45 2D 6D ; n Studio....E-m

00000080h: 61 69 6C 3A 64 65 72 73 68 69 75 6E 40 6D 73 31 ; ail:dershiun@ms1

00000090h: 37 2E 68 69 6E 65 74 2E 6E 65 74 0A 00 FF 21 01 ; 7.hinet.net..!.

000000a0h: 00 00 F0 0A 41 10 42 12 40 00 7F 00 41 F7 00 FF ; ..?A.B.@..A?

000000b0h: 21 01 00 00 FF 58 04 04 02 18 08 00 FF 59 02 00 ; !...X......Y..

000000c0h: 00 00 FF 51 03 09 27 C0 00 B0 5B 7F 00 5D 7F 00 ; ..Q..'?癧.].

000000d0h: B1 5B 7F 00 B2 5B 26 00 B3 5B 7F 00 B4 5B 7F 00 ; .&...

000000e0h: B5 5B 7F 00 B6 5B 7F 00 B7 5B 7F 00 B8 5B 7F 00 ; ....

000000f0h: B9 5B 7F 7A C0 05 01 B0 07 6E 00 0A 3F 04 C1 4F ; z?.?n..?.

00000100h: 01 B1 07 5A 00 0A 3F 04 C2 20 01 B2 07 5A 00 0A ; .?Z..?.?.?Z..

00000110h: 3F 04 C3 31 01 B3 07 64 00 0A 3F 04 C4 36 01 B4 ; ?.?.?d..?.?.?

00000120h: 07 50 00 0A 3F 04 C5 44 01 B5 07 41 00 0A 3F 04 ; .P..?..?A..?.

00000130h: C6 3C 01 B6 07 46 00 0A 3F 04 C7 49 01 B7 07 41 ; ?.?F..?..?A

00000140h: 00 0A 3F 05 B8 07 78 00 0A 3F 04 C9 0A 01 B9 07 ; ..?.?x..?.?.?

00000150h: 5A 00 0A 3F 85 20 91 4C 6E 3C 4C 00 00 4E 6E 3C ; Z..??n<L..Nn<

00000160h: 4E 00 00 90 3B 46 00 40 46 00 31 50 00 91 4E 6E ; N..?F.@F.1P.n

00000170h: 00 99 2C 3C 1E 2C 00 1E 90 3B 00 00 91 4E 00 00 ; .?<.,..?....

00000180h: 90 3B 46 00 91 50 6E 00 99 2C 1E 1E 2C 00 1E 90 ; ?F.n.?..,..?

00000190h: 40 00 00 40 50 00 99 2C 3C 1E 2C 00 1E 90 3B 00 ; @..@P.?<.,..?.

000001a0h: 00 40 00 00 3B 46 00 4C 50 00 40 50 00 99 2C 1E ; .@..;F.LP.@P.?.

000001b0h: 1E 2C 00 1E 2C 3C 1E 2C 00 1E 90 3B 00 00 3B 41 ; .,..,<.,..?..;A

000001c0h: 00 99 2C 1E 1E 2C 00 1E 91 50 00 00 90 40 00 00 ; .?..,......

000001d0h: 4C 00 00 3B 00 00 3B 46 00 40 50 00 91 4E 6E 00 ; L..;..;F.@P.n.

000001e0h: 99 2C 3C 1E 2C 00 0A 91 4E 00 00 50 5A 0A 50 00 ; ?<.,....PZ.P. 

 

 

附件4  选自 BREATH.MID

00000000h: 4D 54 68 64 00 00 00 06 00 01 00 14 00 F0 4D 54 ; MThd.........T

00000010h: 72 6B 00 00 00 9A 00 FF 58 04 04 02 18 08 00 FF ; rk...?X......

00000020h: 59 02 FC 00 00 FF 51 03 09 89 68 00 FF 06 1C 54 ; Y.?.Q..塰...T

00000030h: 41 4B 45 20 4D 59 20 42 52 45 41 54 48 20 41 57 ; AKE MY BREATH AW

00000040h: 41 59 20 2D 20 42 65 72 6C 69 6E 8F 00 FF 06 03 ; AY - Berlin?..

00000050h: 69 6E 74 9E 00 FF 06 01 31 81 B4 00 FF 06 01 32 ; int?..1伌...2

00000060h: 81 96 00 FF 06 06 62 72 69 64 67 65 81 96 00 FF ; 仏...bridge仏.

00000070h: 06 01 33 81 87 00 FF 06 04 63 6F 64 61 8F 00 FF ; ..3亣...coda?

00000080h: 06 02 7C 3A F2 30 FF 51 03 0B 2A 3B 81 70 FF 51 ; ..|:?Q..*;乸Q

00000090h: 03 0D 76 B1 81 70 FF 51 03 10 F4 47 81 70 FF 51 ; ..v眮pQ..鬐乸Q

000000a0h: 03 16 E3 60 87 40 FF 51 03 09 89 68 00 FF 2F 00 ; ..鉦嘆Q..塰./.

000000b0h: 4D 54 72 6B 00 00 00 84 00 FF 21 01 00 00 FF 03 ; MTrk...?!....

000000c0h: 0C 53 6F 66 74 20 4B 61 72 61 6F 6B 65 00 FF 01 ; .Soft Karaoke..

000000d0h: 13 40 4B 4D 49 44 49 20 4B 41 52 41 4F 4B 45 20 ; .@KMIDI KARAOKE 

000000e0h: 46 49 4C 45 00 FF 01 07 40 4B 56 30 31 30 30 00 ; FILE...@KV0100.

000000f0h: FF 01 23 40 49 20 4C 79 72 69 63 73 20 65 6E 74 ; .#@I Lyrics ent

00000100h: 65 72 65 64 20 62 79 20 52 61 70 68 61 65 6C 20 ; ered by Raphael 

00000110h: 50 75 6E 67 69 6E 00 FF 01 1E 40 49 20 62 72 33 ; Pungin...@I br3

00000120h: 32 36 40 63 6C 65 76 65 6C 61 6E 64 2E 66 72 65 ; 26@cleveland.fre

00000130h: 65 6E 65 74 2E 65 64 75 00 FF 2F 00 4D 54 72 6B ; enet.edu./.MTrk

00000140h: 00 00 08 14 00 FF 21 01 00 00 FF 03 05 57 6F 72 ; .....!.....Wor

00000150h: 64 73 00 FF 01 06 40 4C 45 4E 47 4C 00 FF 01 15 ; ds...@LENGL...

00000160h: 40 54 54 41 4B 45 20 4D 59 20 42 52 45 41 54 48 ; @TTAKE MY BREATH

00000170h: 20 41 57 41 59 00 FF 01 08 40 54 42 65 72 6C 69 ;  AWAY...@TBerli

00000180h: 6E 00 FF 01 1E 40 54 47 69 6F 72 67 69 6F 20 4D ; n...@TGiorgio M

00000190h: 6F 72 6F 64 65 72 2F 54 6F 6D 20 57 68 69 74 6C ; oroder/Tom Whitl

000001a0h: 6F 63 6B AD 00 FF 01 06 5C 57 61 74 63 68 78 FF ; ock?..\Watchx

000001b0h: 01 04 69 6E 67 20 78 FF 01 03 65 76 65 78 FF 01 ; ..ing x..evex.

000001c0h: 03 72 79 20 78 FF 01 02 6D 6F 81 70 FF 01 04 74 ; .ry x..mo乸..t

000001d0h: 69 6F 6E 78 FF 01 04 2F 49 6E 20 81 70 FF 01 03 ; ionx../In 乸..

000001e0h: 6D 79 20 78 FF 01 04 66 6F 6F 6C 78 FF 01 04 69 ; my x..foolx..i

000001f0h: 73 68 20 78 FF 01 02 6C 6F 81 70 FF 01 06 76 65 ; sh x..lo乸..ve

00000200h: 72 27 73 20 78 FF 01 04 67 61 6D 65 8F 78 FF 01 ; r's x..game弜.

00000210h: 04 5C 4F 6E 20 78 FF 01 05 74 68 69 73 20 78 FF ; .\On x..this x

00000220h: 01 03 65 6E 64 78 FF 01 05 6C 65 73 73 20 78 FF ; ..endx..less x

00000230h: 01 01 6F 81 70 FF 01 04 63 65 61 6E 78 FF 01 03 ; ..o乸..ceanx..

00000240h: 2F 46 69 81 70 FF 01 06 

4D 54 72 6B 00 00 10 4A ; way ./.MTrk...J

00000960h: 00 FF 21 01 00 00 FF 03 06 4C 79 72 69 63 73 AD ; .!.....Lyrics?

00000970h: 00 FF 05 05 57 61 74 63 68  00 9F 55 01  3B 55 00 ; ...Watch.烾.;U.

00000980h: 3D FF 05 04 69 6E 67 20  00 9F 55 01  3B 55 00 3D ; =..ing .烾.;U.=

00000990h: FF 05 03 65 76 65  00 9F 55 01  3B 55 00  3D FF 05 ; ..eve.烾.;U.=.

000009a0h: 03 72 79 20 00 9F 55 01 3B 55 00 3D FF 05 02 6D ; .ry .烾.;U.=..m

000009b0h: 6F 00 9F 55 01 3B 55 00 81 35 FF 05 05 74 69 6F ; o.烾.;U.?..tio

000009c0h: 6E 20 00 FF 05 00 00 FF 05 01 0D 00 9F 55 01 3B ; n ........烾.;

000009d0h: 55 00 3D FF 05 03 49 6E 20 00 9F 55 01 3B 55 00 ; U.=..In .烾.;U.

000009e0h: 81 35 FF 05 03

 

00001920h: 62 72 65 61 74 68 20 00 9F 55 01 3B 55 00 3D FF ; breath .烾.;U.=

00001930h: 05 01 61 00 9F 55 01 3B 55 00 3D FF 05 04 77 61 ; ..a.烾.;U.=..wa

00001940h: 79 20 00 FF 05 00 00 FF 05 01 0D 00 9F 55 01 3B ; y ........烾.;

00001950h: 55 00 99 65 FF 05 05 54 61 6B 65 20 00 9F 55 01 ; U.檈..Take .烾.

00001960h: 3B 55 00 3D FF 05 03 6D 79 20 00 9F 55 01 3B 55 ; ;U.=..my .烾.;U

00001970h: 00 3D FF 05 07 62 72 65 61 74 68 20 00 9F 55 01 ; .=..breath .烾.

00001980h: 3B 55 00 3D FF 05 01 61 00 9F 55 01 3B 55 00 3D ; ;U.=..a.烾.;U.=

00001990h: FF 05 04 77 61 79 20 00 9F 55 01 3B 55 00 A5 05 ; ..way .烾.;U.?

000019a0h: 62 01 81 6F 62 00 00 FF 2F 00 4D 54 72 6B 00 00 ; b.b../.MTrk..

000019b0h: 03 06 00 FF 21 01 00 00 FF 03 0E 41 63 6F 75 73 ; ...!.....Acous

000019c0h: 74 69 63 20 53 6E 61 72 65 00 C9 00 00 B9 07 78 ; tic Snare.?.?x

000019d0h: 00 B9 0A 40 14 B9 79 00 00 5B 7F 94 3C 99 26 69 ; .?@...[??i

000019e0h: 52 26 00 86 6E 26 69 52 26 00 86 6E 26 69 52 26 ; R&.&iR&.&iR&

000019f0h: 00 86 6E 26 69 52 26 00 86 6E 26 69 52 26 00 86 ; .&iR&.&iR&.?

……

00001ca0h: 6E 26 69 52 26 00 86 6E 26 69 52 26 00 86 6E 26 ; n&iR&.&iR&.&

00001cb0h: 69 52 26 00 00 FF 2F 00 4D 54 72 6B 00 00 08 40 ; iR&../.MTrk...@

00001cc0h: 00 FF 21 01 00 00 FF 03 0B 42 61 73 73 20 44 72 ; .!.....Bass Dr

00001cd0h: 75 6D 20 31 8F 00 99 24 5F 51 24 00 82 17 24 5F ; um 1??_Q$.?$_

00001ce0h: 29 24 00 4F 24 5F 3C 24 00 83 24 24 5F 51 24 00 ; )$.O$_<$.?$_Q$.

00001cf0h: 82 17 24 5F 29 24 00 4F 24 5F 3C 24 00 83 24 24 ; ?$_)$.O$_<$.?$

00001d00h: 5F 51 24 00 82 17 24 5F 29 24 00 4F 24 5F 3C 24 ; _Q$.?$_)$.O$_<$

……

000024e0h: 00 83 24 24 5F 51 24 00 82 17 24 5F 29 24 00 4F ; .?$_Q$.?$_)$.O

000024f0h: 24 5F 3C 24 00 83 24 24 5F 3C 24 00 00 FF 2F 00 ; $_<$.?$_<$../.

00002500h: 4D 54 72 6B 00 00 13 96 00 FF 21 01 00 00 FF 03 ; MTrk...?!....

00002510h: 07 68 69 67 68 68 61 74 8F 00 99 2A 5F 29 2A 00 ; .highhat??_)*.

00002520h: 4F 2A 5F 23 2A 00 55 2A 5F 30 2A 00 48 2A 5F 2A ; O*_#*.U*_0*.H*_*

00002530h: 2A 00 4E 2A 5F 2D 2A 00 4B 2A 5F 26 2A 00 52 2A ; *.N*_-*.K*_&*.R*

00002540h: 5F 2C 2A 00 4C 2A 5F 29 2A 00 4F 2A 5F 29 2A 00 ; _,*.L*_)*.O*_)*.

00002550h: 4F 2A 5F 23 2A 00 55 2A 5F 30 2A 00 48 2A 5F 2A ; O*_#*.U*_0*.H*_*

00002560h: 2A 00 4E 2A 5F 2D 2A 00 4B 2A 5F 26 2A 00 52 2A ; *.N*_-*.K*_&*.R*

……

00003880h: 2A 00 4E 2A 5F 2D 2A 00 4B 2A 5F 26 2A 00 52 2A ; *.N*_-*.K*_&*.R*

00003890h: 5F 2C 2A 00 4C 2A 5F 29 2A 00 00 FF 2F 00 4D 54 ; _,*.L*_)*../.MT

000038a0h: 72 6B 00 00 0B 75 00 FF 21 01 00 00 FF 03 06 43 ; rk...u.!.....C

000038b0h: 61 62 61 73 61 8F 00 99 45 64 63 45 00 81 0D 45 ; abasa?dcE.?E

000038c0h: 64 81 01 45 00 6F 45 64 81 01 45 00 6F 45 64 81 ; d?E.oEd?E.oEd?

000038d0h: 08 45 00 68 45 64 63 45 00 81 0D 45 64 81 01 45 ; .E.hEdcE.?Ed?E

000038e0h: 00 6F 45 64 81 01 45 00 6F 45 64 81 08 45 00 68 ; .oEd?E.oEd?E.h

000038f0h: 45 64 63 45 00 81 0D 45 64 81 01 45 00 6F 45 64 ; EdcE.?Ed?E.oEd

00003900h: 81 01 45 00 6F 45 64 81 08 45 00 68 45 64 63 45 ; ?E.oEd?E.hEdcE

00003910h: 00 81 0D 45 64 81 01 45 00 6F 45 64 81 01 45 00 ; .?Ed?E.oEd?E.

……

000043f0h: 81 01 45 00 6F 45 64 81 08 45 00 68 45 64 63 45 ; ?E.oEd?E.hEdcE

00004400h: 00 81 0D 45 64 81 01 45 00 6F 45 64 81 01 45 00 ; .?Ed?E.oEd?E.

00004410h: 6F 45 64 81 08 45 00 00 FF 2F 00 4D 54 72 6B 00 ; oEd?E../.MTrk.

00004420h: 00 01 F1 00 FF 21 01 00  00 FF 03 04 74 6F 6D 73 ; ..?!.....toms

00004430h: A8 28 99 32 69 1C 32 00 5C 2F 69 00 32 69 2D 2F ; ??i.2.\/i.2i-/

00004440h: 00 03 32 00 81 40 2B 69 00 2F 69 30 2B 00 02 2F ; ..2.+i./i0+../

00004450h: 00 F2 76 32 69 6F 32 00 81 01 2F 69 16 2F 00 62 ; .2io2.?/i./.b

00004460h: 2B 69 00 2F 69 30 2B 00 11 2F 00 81 2F 2B 69 35 ; +i./i0+../.?+i5

00004470h: 2B 00 B6 73 32 69 4B 32 00 81 25 2F 69 15 2F 00 ; +.2iK2.?/i./.

00004480h: 63 2F 69 31 2F 00 81 03 2B 69 22 2B 00 1A 2B 69 ; c/i1/.?+i"+..+i

00004490h: 2C 2B 00 F2 7C 32 69 58 32 00 81 18 2F 69 16 2F ; ,+.2iX2.?/i./

000044a0h: 00 62 2F 69 81 25 2F 00 4B 2F 69 00 2B 69 2E 2B ; .b/i?/.K/i.+i.+

000044b0h: 00 2B 2F 00 9A 3F 32 69 1D 32 00 5B 2F 69 00 32 ; .+/.?2i.2.[/i.2

000044c0h: 69 3E 2F 00 28 32 00 81 0A 2F 69 00 2B 69 39 2B ; i>/.(2.?/i.+i9+

……

000045f0h: 00 61 2F 69 00 32 69 3A 2F 00 18 32 00 81 1E 2F ; .a/i.2i:/..2.?/

00004600h: 69 55 2F 00 23 2B 69 0A 2B 00 6E 2B 69 24 2B 00 ; iU/.#+i.+.n+i$+.

00004610h: 00 FF 2F 00 4D 54 72 6B 00 00 00 96 00 FF 21 01 ; ./.MTrk...?!.

00004620h: 00 00 FF 03 0E 43 72 61 73 68 20 43 79 6D 62 61 ; ....Crash Cymba

00004630h: 6C 20 31 8F  00 99 31 50  81 19 31 00  9C 67 31 50

  43 31 00  F7 3D 31 50  81 1F 31 00  BA 61 31 50 3E 31 00 F7

 42 31 50 81 12 31 00 9C 6E 31 50 4E 31 ; 1.1P?1.1PN1

00004660h: 00 9D 32 31 50 53 31 00 9D 2D 31 50 42 31 00 8E ; .?1PS1.?1PB1.?

00004670h: 3E 31 50 44 31 00 8E 3C 31 50 31 31 00 BB 4F 31 ; >1PD1.?1P11.1

00004680h: 50 42 31 00 F7 3E 31 50 45 31 00 9D 3B 31 50 39 ; PB1.?1PE1.?1P9

00004690h: 31 00 9D 47 31 50 50 31 00 9D 30 31 50 4B 31 00 ; 1.1PP1.?1PK1.

000046a0h: 9D 35 31 50 3F 31 00 9D 41 31 50 3D 31 00 00 FF ; ?1P?1.滱1P=1..

000046b0h: 2F 00 4D 54 72 6B 00 00 00 4B 00 FF 21 01 00 00 ; /.MTrk...K.!...

000046c0h: FF 03 05 62 65 6C 6C 73 00 C0 58 00 B0 07 78 00 ; ..bells.繶.?x.

000046d0h: B0 0A 40 83 B3 00 90 52 70 82 68 4D 70 03 52 00 ; ?@.pMp.R.

000046e0h: 83 5D 46 70 08 4D 00 86 44 46 00 81 6C 57 70 82 ; Fp.M.F.Wp?

000046f0h: 68 52 70 0E 57 00 83 4C 52 00 06 4B 70 88 1C 4B ; hRp.W.R..Kp?K

00004700h: 00 00 FF 2F 00 4D 54 72 6B 00 00 07 69 00 FF 21 ; ../.MTrk...i.!

00004710h: 01 00 00 FF 03 0C 53 79 6E 74 68 20 42 61 73 73 ; .....Synth Bass

00004720h: 20 31 00 C1 26 00 B1 07 78 00 B1 0A 40 14 B1 79 ;  1.?.?x.?@.

00004730h: 00 00 5B 0A 8B 0C 91 1B 7F 78 1D 7F 11 1B 00 67 ; ..[.??x....g

00004740h: 20 7F 05 1D 00 73 22 7F 07 20 00 71 20 7F 0C 22 ;  ...s". .q ."

00004750h: 00 86 3C 1B 7F 06 20 00 6B 1B 00 07 1F 7F 86 48 ; .?.. .k....

00004760h: 18 7F 03 1F 00 6B 18 00 0A 1D 7F 86 43 1D 00 05 ; ....k.......

00004770h: 1B 7F 78 1F 7F 05 1B 00 83 55 1F 00 06 1B 7F 78 ; .x........x

00004780h: 1D 7F 04 1B 00 69 1D 00 0B 20 7F 78 22 7F 09 20 ; ....i... x". 

00004790h: 00 6F 20 7F 10 22 00 86 38 1B 7F 0E 20 00 61 1B ; .o .".?.. .a.

 

 

 

00004e50h: 78 1B 7F 1A 16 00 82 7C 1B 00 4A 1B 7F 78 1D 7F ; x......J.x.

00004e60h: 0B 1B 00 6D 20 7F 01 1D 00 77 22 7F 14 20 00 5E ; ...m ...w". .^

00004e70h: 22 00 00 FF 2F 00 4D 54 72 6B 00 00 05 63 00 FF ; "../.MTrk...c.

00004e80h: 21 01 00 00 FF 03 0E 41 63 6F 75 73 74 69 63 20 ; !.....Acoustic 

00004e90h: 47 72 61 6E 64 00 C2 00 00 B2 07 7F 00 B2 0A 50 ; Grand.?.?.?P

00004ea0h: 14 B2 79 00 00 5B 41 8B 0C 92 3F 6C 78 41 78 09 ; ...[A??lxAx.

00004eb0h: 3F 00 65 41 00 0A 44 74 75 44 00 03 46 72 78 44 ; ?.eA..DtuD..FrxD

00004ec0h: 74 09 46 00 84 4F 3F 70 06 44 00 65 3F 00 0D 44 ; t.F.?p.D.e?..D

00004ed0h: 72 78 43 73 02 44 00 85 45 43 00 09 3F 6C 77 3F ; rxCs.D.C..?lw?

00004ee0h: 00 01 43 72 78 41 77 03 43 00 85 3B 41 00 12 3C ; ..CrxAw.C.?A..<

00004ef0h: 72 78 41 75 07 3C 00 71 43 75 05 41 00 84 46 43 ; rxAu.<.qCu.A.C

00004f00h: 00 0D 3F 74 78 41 73 04 3F 00 72 41 00 02 44 74 ; ..?txAs.?.rA..Dt

00004f10h: 6E 44 00 0A 46 70 78 44 76 1D 46 00 84 44 44 00 ; nD..FpxDv.F.D.

 

 

000053b0h: 70 41 72 81 6E 41 00 02 3F 6D 83 7B 3F 00 5D 3F ; pArA..?m?.]?

000053c0h: 6E 78 41 75 10 3F 00 67 41 00 01 44 73 6C 44 00 ; nxAu.?.gA..DslD.

000053d0h: 0C 46 70 78 44 76 08 46 00 8F 49 44 00 00 FF 2F ; .FpxDv.F.廔D../

000053e0h: 00 4D 54 72 6B 00 00 07 4E 00 FF 21 01 00 00 FF ; .MTrk...N.!...

000053f0h: 03 0F 53 79 6E 74 68 20 53 74 72 69 6E 67 73 20 ; ..Synth Strings 

00005400h: 31 00 C5 32 00 B5 07 78 00 B5 0A 32 14 B5 79 00 ; 1.?.?x.?2..

00005410h: 00 5B 41 8B 0C 95 3F 68 78 41 6D 09 3F 00 6F 44 ; .[A??hxAm.?.oD

00005420h: 6C 03 41 00 71 44 00 04 46 69 78 44 6C 13 46 00 ; l.A.qD..FixDl.F.

00005430h: 84 41 44 00 04 3F 70 6C 3F 00 0C 44 6D 78 43 69 ; D..?pl?..DmxCi

00005440h: 0A 44 00 85 46 3F 6C 07 43 00 66 3F 00 0B 43 6C ; .D.?l.C.f?..Cl

 

00005b10h: 84 0D 3F 00 4B 3F 6C 78 41 6C 0D 3F 00 6A 41 00 ; ??.K?lxAl.?.jA.

00005b20h: 01 44 6E 77 44 00 01 46 69 78 44 6C 02 46 00 8F ; .DnwD..FixDl.F.?

00005b30h: 11 44 00 00 FF 2F 00 4D 54 72 6B 00 00 07 49 00 ; .D../.MTrk...I.

00005b40h: FF 21 01 00 00 FF 03 0A 43 68 6F 69 72 20 41 61 ; !.....Choir Aa

00005b50h: 68 73 00 C6 34 00 B6 07 78 00 B6 0A 46 14 B6 79 ; hs.?.?x.?F.

00005b60h: 00 00 5B 41 8B 0C 96 3F 68 78 41 70 09 3F 00 6F ; ..[A??hxAp.?.o

00005b70h: 44 6C 03 41 00 71 44 00 04 46 6B 78 44 6C 13 46 ; Dl.A.qD..FkxDl.F

00005b80h: 00 84 41 44 00 04 3F 71 6C 3F 00 0C 44 70 78 43 ; .D..?ql?..DpxC

00005b90h: 69 0A 44 00 85 46 3F 6E 07 43 00 66 3F 00 0B 43 ; i.D.?n.C.f?..C

00005ba0h: 6C 78 41 6C 0F 43 00 85 41 3C 6F 01 41 00 77 41 ; lxAl.C.<o.A.wA

 

 

 

00006270h: 00 01 44 70 77 44 00 01 46 69 78 44 6E 02 46 00 ; ..DpwD..FixDn.F.

00006280h: 8F 11 44 00 00 FF 2F 00 4D 54 72 6B 00 00 07 6F ; ?D../.MTrk...o

00006290h: 00 FF 21 01 00 00 FF 03 0B 53 6C 61 70 20 42 61 ; .!.....Slap Ba

000062a0h: 73 73 20 32 00 C7 25 00 B7 07 78 00 B7 0A 40 14 ; ss 2.?.?x.?@.

000062b0h: B7 79 00 00 5B 41 8B 0C 97 27 60 78 29 60 11 27 ; ..[A??`x)`.'

000062c0h: 00 67 2C 60 05 29 00 73 2E 5E 07 2C 00 71 2C 60 ; .g,`.).s.^.,.q,`

000062d0h: 0C 2E 00 86 3C 27 61 06 2C 00 6B 27 00 07 2B 60 ; ...?'a.,.k'..+`

000062e0h: 86 48 24 60 03 2B 00 6B 24 00 0A 29 61 86 43 29 ; $`.+.k$..)a)

000062f0h: 00 05 27 5F 78 2B 61 05 27 00 83 55 2B 00 06 27 ; ..'_x+a.'.+..'

00006300h: 60 78 29 5D 04 27 00 69 29 00 0B 2C 5F 78 2E 60 ; `x)].'.i)..,_x.`

 

000069d0h: 22 5F 78 27 61 1A 22 00 82 7C 27 00 4A 27 60 78 ; "_x'a.".'.J'`x

000069e0h: 29 61 0B 27 00 6D 2C 60 01 29 00 77 2E 60 14 2C ; )a.'.m,`.).w.`.,

000069f0h: 00 5E 2E 00 06 2C 61 8F 08 2C 00 00 FF 2F 00 4D ; .^...,a?,../.M

00006a00h: 54 72 6B 00 00 07 19 00 FF 21 01 00 00 FF 03 12 ; Trk.....!.....

00006a10h: 4F 72 63 68 65 73 74 72 61 6C 20 53 74 72 69 6E ; Orchestral Strin

00006a20h: 67 73 00 C8 30 00 B8 07 78 00 B8 0A 40 14 B8 79 ; gs.?.?x.?@.

00006a30h: 00 00 5B 41 8E 6C 98 3C 65 00 3F 62 00 44 64 85 ; ..[A?e.?b.Dd?

00006a40h: 42 3F 00 03 44 00 00 3C 00 81 7B 43 66 00 3C 62 ; B?..D..<.Cf.<b

00006a50h: 00 3F 5F 86 2F 43 00 08 3C 00 0C 3F 00 7D 38 62 ; .?_?C..<..?.}8b

……

000070f0h: 00 05 3D 00 82 46 3A 61 00 37 66 00 3F 61 84 2F ; ..=.:a.7f.?a?

00007100h: 3A 00 05 37 00 1C 3F 00 82 70 3C 66 00 3F 61 00 ; :..7..?.<f.?a.

00007110h: 44 61 8F 49 3F 00 01 3C 00 05 44 00 00 FF 2F 00 ; Da廔?..<..D../.

00007120h: 4D 54 72 6B 00 00 00 92 00 FF 21 01 00 00 FF 03 ; MTrk...?!....

00007130h: 0E 52 65 76 65 72 73 65 20 43 79 6D 62 61 6C 00 ; .Reverse Cymbal.

00007140h: CA 77 00 BA 07 78 00 BA 0A 40 14 BA 79 00 00 5B ; .?x.?@...[

00007150h: 41 8C 40 9A 55 5C 00 49 5A 8B 48 55 00 10 49 00 ; A孈歎\.IZU..I.

00007160h: 91 30 49 6B 00 55 71 8E 39 49 00 06 55 00 E9 05 ; ?Ik.Uq?I..U.?

00007170h: 49 6F 00 55 72 8D 18 49 00 05 55 00 81 A6 63 49 ; Io.Ur?I..U.cI

00007180h: 72 00 55 77 90 26 49 00 06 55 00 8F 08 49 6E 00 ; r.Uw?I..U.?In.

00007190h: 55 73 8A 35 49 00 01 55 00 CF 4A 49 72 00 55 76 ; Us?I..U.Ir.Uv

000071a0h: 8C 73 55 00 0D 49 00 81 A5 4C 55 78 00 49 7C 8C ; U..I.LUx.I|?

000071b0h: 43 55 00 0A 49 00 00 FF 2F 00 4D 54 72 6B 00 00 ; CU..I../.MTrk..

000071c0h: 07 A1 00 FF 21 01 00 00 FF 03 06 61 75 72 6F 72 ; .?!.....auror

000071d0h: 61  00 CB 62 00 BB 07 78  00 BB 0A 40  14 BB 79 00 ; a..?x.?@..

000071e0h: 00 5B 41 84 8C 6C 9B 48  76 00 50 70 00 4B 6E 68 ; .[Alv.Pp.Knh

000071f0h: 50 00 07 48 00 05 4B 00 40 48 76 00 50 70 00 4B ; P..H..K.@Hv.Pp.K

00007200h: 70 15 4B 00 08 48 00 09 50 00 81 0E 48 74 00 50 ; p.K..H..P.?Ht.P

 

 

00007940h: 6C 81 10 43 00 0E 4B 00 01 46 00 83 39 50 6F 00 ; l?C..K..F.?Po.

00007950h: 48 74 00 4B 6C 8E 75 48 00 01 4B 00 03 50 00 00 ; Ht.KlH..K..P..

00007960h: FF 2F 00 4D 54 72 6B 00 00 00 5B 00 FF 21 01 00 ; /.MTrk...[.!..

00007970h: 00 FF 03 0E 45 6C 65 63 74 72 69 63 20 47 72 61 ; ...Electric Gra

00007980h: 6E 64 00 CC 02 00 BC 07 78   00 BC 0A 40   14 BC 79 00  00 5B 41  83 B2 6C 9C 52 73  82 68 4D 73  03 52 00  83 5D 46 73  08 4D 00  86 44 46 00  81 6C 57 73  82 68 52 73  0E 57 00  83 4C 52 00  06 4B 73  88 1C 4B 00  00 FF 2F 00            

 

 

 

 

00000000h: 4D 54 68 64 00 00 00 06 00 01 00 05 00 60 4D 54 ; MThd.........`MT

00000010h: 72 6B 00 00 00 19 00 FF 58 04 04 02 18 08 00 FF ; rk.....X......

00000020h: 59 02 00 00 00 FF 51 03 07 A1 20 00 FF 2F 00 4D ; Y....Q..?./.M

00000030h: 54 72 6B 00 00 07 C6 00 FF 21 01 00 00 B1 00 00 ; Trk...?!...?.

00000040h: 00 B1 20 00 00 C1 00 5F 91 40 5F 01 3C 5F 00 37 ; .?..?__.<_.7

00000050h: 5F 5B 3C 00 00 40 00 01 37 00 82 1E 40 5F 00 3C ; _[<..@..7.?@_.<

00000060h: 5F 00 39 5F 5A 40 00 02 39 00 00 3C 00 82 18 41 ; _.9_Z@..9..<.?A

000002a0h: 00 3C 5F 81 0C 3C 00 5C 35 00 01 40 5F 01 37 5F ; .<_?<.\5..@_.7_

000002b0h: 2B 40 00 01 37 00 01 3E 5F 01 35 5F 2D 35 00 00 ; +@..7..>_.5_-5..

000002c0h: 3E 00 03 3C 5F 01 37 5F 00 34 5F 82 14 3C 00 01 ; >..<_.7_.4_?<..

000007b0h: 00 3B 00 01 35 00 02 3C 5F 00 35 5F 81 39 3C 00 ; .;..5..<_.5_?<.

000007c0h: 01 35 00 5C 40 5F 00 37 5F 01 37 5F 2D 40 00 01 ; .5.\@_.7_.7_-@..

000007d0h: 37 00 01 3E 5F 00 35 5F 2D 3E 00 01 35 00 00 37 ; 7..>_.5_->..5..7

000007e0h: 00 03 3C 5F 00 37 5F 01 34 5F 83 53 3C 00 01 34 ; ..<_.7_.4_<..4

000007f0h: 00 00 37 00 83 9B 26 3C 00 00 FF 2F 00 4D 54 72 ; ..7.儧&<../.MTr

00000800h: 6B 00 00 03 E7 00 FF 21 01 00 00 B0 00 00 00 B0 ; k...?!...?..?

00000810h: 20 00 00 C0 2C 8B 03 90 40 4E 2A 40 00 02 43 4E ;  ..??N*@..CN

00000b80h: 0B 45 00 05 40 4E 11 40 00 02 3E 4E 14 3E 00 03 ; .E..@N.@..>N.>..

00000b90h: 3C 4E 13 3C 00 03 3E 4E 13 3E 00 04 40 4E 81 37 ; <N.<..>N.>..@N?

00000ba0h: 40 00 03 3E 4E 59 3E 00 03 3C 4E 82 15 3C 00 03 ; @..>NY>..<N?<..

00000bb0h: 40 4E 59 40 00 05 3E 4E 2A 3E 00 01 3C 4E 82 48 ; @NY@..>N*>..<N

00000bc0h: 3C 00 5D 40 4E 2F 40 00 01 3E 4E 2B 3E 00 03 3C ; <.]@N/@..>N+>..<

00000bd0h: 4E 81 39 3C 00 5D 40 4E 2F 40 00 01 3E 4E 2B 3E ; N?<.]@N/@..>N+>

00000be0h: 00 06 3C 4E 83 54 3C 00 00 FF 2F 00 4D 54 72 6B ; ..<N僒<../.MTrk

00000bf0h: 00 00 06 21 00 FF 21 01 00 00 B2 00 00 00 B2 20 ; ...!.!...?..?

00000c00h: 00 00 C2 40 02 92 30 4A 5C 30 00 30 30 4A 2E 30 ; ...?J\0.00J.0

00000c10h: 00 02 30 4A 5C 30 00 03 30 4A 2A 30 00 01 2F 4A ; ..0J\0..0J*0../J

00000c20h: 2F 2F 00 02 2D 4A 5E 2D 00 2D 2D 4A 32 2D 00 02 ; //..-J^-.--J2-..

00000c30h: 2D 4A 58 2D 00 01 2D 4A 2F 2D 00 00 2B 4A 30 2B ; -JX-..-J/-..+J0+

00000c40h: 00 02 29 4A 5B 29 00 30 29 4A 32 29 00 01 29 4A ; ..)J[).0)J2)..)J

00000c50h: 59 29 00 01 29 4A 2F 29 00 01 2D 4A 2B 2D 00 02 ; Y)..)J/)..-J+-..

00000c60h: 2B 4A 5E 2B 00 30 2B 4A 2E 2B 00 02 2B 4A 5C 2B ; +J^+.0+J.+..+J\+

00000c70h: 00 03 2B 4A 2A 2B 00 02 2F 4A 2E 2F 00 02 30 4A ; ..+J*+../J./..0J

00000c80h: 59 30 00 30 30 4A 31 30 00 02 30 4A 5A 30 00 01 ; Y0.00J10..0JZ0..

00001200h: 30 4A 5B 30 00 30 30 4A 30 30 00 01 30 4A 62 30 ; 0J[0.00J00..0Jb0

00001210h: 00 00 FF 2F 00 4D 54 72 6B 00 00 0B 4D 00 FF 21 ; ../.MTrk...M.!

00001220h: 01 00 00 B9 00 00 2E 99 2C 17 1A 2C 00  00 2C 17 ; ...?..?..,..,.

00001230h: 17 2C 00 02 23 2C 2E 2C 17 16 2C 00 00 2C 17 18 ; .,..#,.,..,..,..

00001240h: 2C 00 00 23 00 01 2B 2C 2D 2C 17 16 2C 00 00 2C ; ,..#..+,-,..,..,

00001250h: 17 1B 2C 00 01 2B 00 00 23 2C 2B 2D 17 30 2D 00 ; ..,..+..#,+-.0-.

00001260h: 01 23 00 2E 2C 17 17 2C 00 00 2C 17 1B 2C 00 02 ; .#..,..,..,..,..

00001270h: 30 17 00 23 2C 29 2C 17 19 2C 00 01 2C 17 19 2C ; 0..#,),..,..,..,

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/797788
推荐阅读
相关标签
  

闽ICP备14008679号