说到数字音频,大家肯定不会陌生,现在谁的手机里还不存几首MP3? * [* N1 U9 L J( ?* o# O) C' u/ J2 p' z- _- ~2 c
自然界的音频信号是连续的模拟信号,为了让电子设备能够识别并播放音频,需要将模拟型号转换成数字信号。这个过程包含采样、量化、编码三个阶段,我们常见的数字音频文件都是经过这种方式来得到的。MP3的采样率范围为8kHz到48kHz,而wav则使用44.1kHz的采样率。' n. l, H5 o/ q- S0 B
+ ^ w1 w/ l. f" o. U' m6 R人耳的频率响应范围约为20Hz-20kHz,换算下来,当采样率达到40kHz以上时,人耳就很难分辨数字信号和模拟信号间的差异了。) t; p4 W# }* c+ [9 @( q1 {% F
+ f. p3 E7 G& ?5 s3 C5 c . | ~/ y9 D; x1 l9 U: R4 J" }; M* Z2 y% S1 R
在众多的数字音频格式中,有一种音频格式却没有遵循上述的特点,这个另类就是MIDI。 . S9 z; N( |$ o7 V1 H( p( F! Y: f/ k9 T1 G( V
MIDI的英文全称为Musical Instrument Digital Interface,直译为乐器数字接口。这种编码格式的提出是为了解决各种电声乐器之间通信问题。- X% S% d& l, }( K
/ \& `7 q( s$ C
与常规的音频文件不同,MIDI编码的文件存储的并不是对模拟信号采样后的数字音频信号,而是一系列控制指令。) f) r: q/ \ B
: [3 b" u. K5 z" u/ w7 d7 S每个MIDI文件开头的4个字节为「4d 54 68 64」,对应的ASCII字符为「MThd」,它表示这个文件是MIDI文件,后续的10个字节则定义了该MIDI文件的一些全局信息,如音轨数、节拍时长等信息,在这14个字节之后的内容就是真正的「音频」部分。 ! Z3 x1 R+ h3 G K5 V 8 T$ l4 o* ?6 \MIDI的音频部分由一系列的MIDI Event组成,每一个Event可以理解为对当前时刻的音符的描述,包括音符的音高、音色、持续时间、力度等。当我们在PC上播放MIDI音频文件时,PC的声卡就会根据这些Event实时「合成」对应的声音并播放出来,而不是「回放」,这也就决定了MIDI文件的播放效果取决于声卡品质的高低。! N- I, x f& e; A) S% B