MIDI消息
MIDI设备使用的一系列MIDI音符,可被认为是告诉音乐合成器如何播放一小段音乐的指令。因为MIDI数据是一套音乐符号的定义,而不是实际的音乐声音,因此MIDI文件的内容被称为MIDI消息(MIDI messages)。一个MIDI消息由1个8位的状态字节并通常跟着2个数据字节组成。在状态字节中,最高有效位设置成“1”,低4位用来表示这个MIDI消息是属于哪个通道,4位可表示16个可能的通道,其余3位的设置表示这个MIDI消息是什么类型的消息。MIDI消息可分成通道消息(Channel Messages)和系统消息(System Messages)两大类,如图12-14所示。
MIDI通道消息可分成通道声源消息(Voice Messages)�携带的演奏数据,和通道方式消息(Mode Messages)—表示合成器响应MIDI数据的方式;MIDI系统消息分成公共消息(Common Messages)—标识在系统中的所有接收器、实时消息(Real Time Messages)—用于MIDI部件之间的同步和独占消息(Exclusive Messages)—厂商的标识代码。
MIDI音序器和标准MIDI文件
MIDI合成器实时接收和处理MIDI消息(MIDI messages)。当合成器接收到一个“note on (乐音开)”MIDI消息时就演奏相应的声音,当接收到一个“note off (乐音关)”MIDI消息时就停止演奏。如果MIDI数据源是乐器键盘,“note on”消息就实时产生,在像这样的实时应用中,就无需与MIDI消息一起发送一个定时信息。如果MIDI数据存储成数据文件,或者使用音序器编辑的数据文件,MIDI消息就需要某种形式的定时标记(time-stamping)。
国际MIDI协会(International MIDI Association)出版了标准MIDI文件(Standard MIDI Files)规范,该标准说明了处理定时标记MIDI数据的一种标准化方法。这种方法适合各种应用软件共享MIDI数据文件,这些软件包括音序器、乐谱软件包和多媒体演示软件。
标准MIDI文件(Standard MIDI File)规范定义了3种MIDI文件格式,MIDI音序器能够管理文件标准规定的多个MIDI数据流,即声轨(tracks)。MIDI文件格式0(Format 0)规定所有MIDI音序数据(MIDI sequence data)必须存储在单个声轨上,它仅用于简单的单声轨设备;MIDI文件格式1(Format 1)规定数据以一个声轨集的方式存储;MIDI文件格式2(Format 2)可用几个独立模式存储数据。