数字音频是以数字的方式(Digital)存储以及处理电声信号,有着模拟方式(Analog)无法比拟的便捷以及低成本。
数字音频的宗旨即尽可能真实的存储以及还原声信号。
Keywords
AD/DA 模数/数模转换
DAC(Digital to Analog Converter)数模转换器
SR(Sample Rate)采样率,即采样频率
Bit Depth采样精度
dB分贝
PCM(Pulse Code Modulation)脉冲编码调制
ADPCM(Adaptive Differential Pulse Code Modulation)自适应差值脉冲编码调制
模拟信号经过AD变成数字信号经历三个过程,采样、量化、编码。每秒钟采样的次数称作采样率,样本的量化所用的Bit数称为采样精度。比如一个语音信号为10KHz,16Bit,即使用10KHz的频率采样,每个样本精度位16Bit。如下图,图中的正弦曲线代表原始音频曲线;填了颜色的方格代表采样后得到的结果
不难看出,采样的频率越高,精度越高,还原的信号就越真实。
在有限的条件下,采样的频率以及精度不能无限的提高。在采样频率为F的情况下,至多只能采到频率为F/2的信号。这个称之为采样定理。所以女声要采集到同样程度的细节需要比男声更为高的采样频率才可以,乐器中谐波丰富的弦乐器以及Cymbal等高频打击乐器都需要较高的采样频率来表现细节。人耳的频率响应范围约为20Hz-20KHz,所以使用44.1KHz的采样率时可完整的还原人耳所能听到的频率范围的任何声音。
量化精度决定采样的质量。过低的采样精度会引入量化噪音,并且大大的降低信噪比以及动态(Dynamic Range)。这里引入dB计量。dB为声压级单位L=10lg(W1/W2)=20lg(U1/U2)
U1为信号电平U2为噪音电平时,L即为信噪比;
U2为人耳最小听阀(20uPa)时,L即为声音的dB值;
通常以数字音频的最大电平作为U2,得出的L为信号的dB值,比如一个1/2大小的电平为-6dB;
每增加一个Bit精度,动态增加6dB。
PCM是用一组二进制数据来表示脉冲电平的编码方式。比如精度为8Bit时,每个样本使用8Bit的数据量化其电平。
任何信号,不论语音或图像,采用直接采样-量化-编码的方式进行编码,都会发现码组之间具有很强的相关性。由于相关性的存在,存在大量冗余信息,ADPCM就是通过对信号采样值和预测值的差值进行量化编码,实现数据压缩目的。
基础乐理
乐音不同于噪音在于规律性,乐理在于阐述乐音的规律。声音的频率与时间等等信息之间有着自然的定律,人类从不同弦长或者管长的乐器中总结出了律制,音乐发展到今天已经有了完善的理论体系。
Keywords
Note音符
Volume音量
Pitch音高,即音符的基频
Duration时值
Timbre音色
Octave八度,一个倍频程
Twelve Tone十二平均律
Chord和弦
Harmonic泛音
区别不同的乐音有三个要素,音高、响度、音色。音高即为乐音的基频,响度由音量,或者说振幅决定。音色决定于乐音的泛音列,即谐波构成。下图即为不同音色的频谱
把一个倍频程等比的平均分成12份的调律方法叫做十二平均律。这12个音的音名如下:
一般在音名后面加上数字表示组别。在以C4位中央C时,A4的音高称为国际标准音,频率为440Hz。其他音符的频率可以通过等比数列推算得到。
要记录下音乐的演奏,仅仅记下音高以及音色是不够的,音符的时间关系也是非常重要的。我们需要知道每个音符何时开始演奏何时结束。我们通常用时值来表示音符的演奏持续时间,由于音乐的连续性,所以仅用音符以及休止符的时值就可以描述音符的时间关系了。时值的单位有小节(Measure)以及拍子(Beat)。
常用音符时值如下所示:
全音符 Whole Note 4 Beat
二分音符 Half Note 2 Beat
四分音符 Quarter Note 1 Beat
8分音符 8th Note ? Beat
16分音符 16th Note ? Beat
32分音符 32th Note 1/8 Beat
附点音符(Dotted)为原音符的3/2倍,三连音(Tri)为原音符的2/3倍
三个及三个以上的音符按特定规律组合叫做和弦。
MIDI理论以及在IC中的应用
MIDI(Musical Instruments Digital Interface)是一种在数字乐器中进行数据交换的协议,它不像数字音频本身包含声音信号,它包含的是一系列的演奏指令(事件)。
今年是MIDI的第二个本命年。
Keywords
MIDI(Musical Instruments Digital Interface) 乐器数字化接口
MIDI Event MIDI事件
Sequencer 音序器
Synthesizer 合成器
Polyphonic 复音数
WG(Wave Generator)波形发生器
TVA(Time Variable Amplifier) 时间变量放大
TVF(Time Variable Filter) 时间变量滤波
Envelope包络
EG(Envelope Generator) 包络发生器
ADSR 标准ADSR四段包络
前面提到过,要记录下音乐的演奏信息,最基本的需要记录音符的时间关系,音高以及音色。即什么时候用什么乐器演奏多长时间的什么音。MIDI里面自然要比乐谱更精确的包含了所有的这些信息。仅有这些最基本的信息是不够的,演奏者可以根据自己的理解对乐谱的传达的信息进行生动的演奏,而机器只能是按部就班的。所以MIDI还包含了大量的控制器信息等,使传达的演奏信息更为精准生动。
MIDI Event 主要包含以下种类
Note 音符事件,包含音符的键值即音高(Key),音符的长度(Duration),力度(Velocity)信息;
Controller Change 控制器事件,包含控制器编号(#CC)以及控制数据(Data)信息;
Program Change 音色改变事件,包含音色号信息;
Pitch Wheel 弯音轮事件,即时改变音符的音高,包含弯音轮值的高7位与低7位;
Key Aftertouch 按键触后事件,包含键值与触后数据信息;
Channel Aftertouch 通道触后事件,包含通道触后信息;
Text 文本信息。
MIDI有16个独立的Channel,每个Channel有自己的音色,自己的音量,自己的表情控制等等……注意:Channel != Polyphonic。在GM标准中,第十通道固定作为打击乐器通道使用。每个通道的发音数没有限制,取决于合成器的响应状况。
下面为控制器号与对应的控制器
0 Bank Select (coarse)
1 Modulation Wheel (coarse)
2 Breath controller (coarse)
4 Foot Pedal (coarse)
5 Portamento Time (coarse)
6 Data Entry (coarse)
7 Volume (coarse)
8 Balance (coarse)
10 Pan position (coarse)
11 Expression (coarse)
12 Effect Control 1 (coarse)
13 Effect Control 2 (coarse)
16 General Purpose Slider 1
17 General Purpose Slider 2
18 General Purpose Slider 3
19 General Purpose Slider 4
32 Bank Select (fine)
33 Modulation Wheel (fine)
34 Breath controller (fine)
36 Foot Pedal (fine)
37 Portamento Time (fine)
38 Data Entry (fine)
39 Volume (fine)
40 Balance (fine)
42 Pan position (fine)
43 Expression (fine)
44 Effect Control 1 (fine)
45 Effect Control 2 (fine)
64 Hold Pedal (on/off)
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)
70 Sound Variation
71 Sound Timbre
72 Sound Release Time
73 Sound Attack Time
74 Sound Brightness
75 Sound Control 6
76 Sound Control 7
77 Sound Control 8
78 Sound Control 9
79 Sound Control 10
80 General Purpose Button 1 (on/off)
81 General Purpose Button 2 (on/off)
82 General Purpose Button 3 (on/off)
83 General Purpose Button 4 (on/off)
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)
99 Non-registered Parameter (coarse)
100 Registered Parameter (fine)
101 Registered Parameter (coarse)
120 All Sound Off
121 All Controllers Off
122 Local Keyboard (on/off)
123 All Notes Off
124 Omni Mode Off
125 Omni Mode On
126 Mono Operation
127 Poly Operation
MIDI Event需要用音序器记录下来,音序器会对MIDI Event出现的时间顺序进行描述。在记录每个Event出现的时间上会以Tick为最小单位计量。Tempo用来描述每两个Tick之间的时间。TPQN(Tick Per Quarter Note)即每个四分音符的Tick数,通常用来描述MIDI File或者在音序器中的解析率。
演奏指令需要被发送到合成器才能发出声音。合成器的原理不外乎由波形发生器(WG)发生波形,再进行调制、处理等等变成需要的乐音。根据WG原理的不同可以分成FM式、采样式以及声学建模式。FM方式是使用振荡器生成不同的简谐波,再进行调频等操作丰富波形;采样方式是把真实乐器的波形通过数字采样存储在媒介中回放来得到乐音的波形;声学建模式是通过数理计算得到波形。特别的,在采样方式下,如要获得一个较长的乐音,需要使用其中的一段波形进行Loop播放,如要获得不同音高的乐音,则需改变回放样本的采样率来获得不同的音高。
生成的波形需要通过TVA以及TVF的调制,TVA可以控制不同时间音乐的振幅,TVF可以控制不同时间乐音的谐波。它们的值由不同的EG给出。最常见的ADSR EG如下图所示:
一套基本的MIDI合成系统大致数据流图如下:
IC的Melody解决方案即一套简单的MIDI合成系统。它有着自己的Sequenser以及Synthesizer,只不过比标准MIDI简单很多。下面就KBL的DualTone方案(以下简称KB)以及Sitronix 26xx的Melody方案(以下简称ST)来讨论这样的合成系统是如何在IC中实现的。
两个方案都有自己的Sequenser,对演奏信息的编码也很不一样。
演奏信息方面,KB中只能对Note事件进行编码,也就是只能表现Note事件,ST除了Note事件,还能支持Program Change事件。在表现的Note的Pitch值范围上,KB只能是48-84(其实完全可以更大),ST无限制。在对时间的编码上,KB的解析率为32TPQN,ST高于这个数值,但因为资料不全不能给出精确值。KB没有记录每个Note的起始时间,而只是记录Duration。很多复音数较少的IC都使用这种方法,这样能够节约大量的数据。两个方案均可对Tempo值进行调整,即调整每两个Tick间的时间。
两个方案都有自己的Synthesizer。KB的Synthesizer是FM方式的,而ST的Synthesizer则是采样方式的。KB的WG发生的是一定频率的方波(Square Wave),并没有经过FM,所以WG只能发生方波。ST的WG是使用Wavetable回放生成波形,并且每个样本分成两段,Attack+Loop段。但是它的Loop段的样本数量只能是256的倍数,并且采样率只能是8372Hz,每个音色必须也只能采集C3(130.81Hz),C5(523.25Hz)两个样本。其他的声音通过采集的这两个样本变频回放得到。特别的,打击乐器的回放不需要变频也不Loop。
两个方案都只有TVA没有TVF。控制TVA的EG有不一样的地方。KB的EG为坐标式,是一个以一定的时间为DeltaTime的离散函数。函数值通过查表得到。ST的EG为参数式,分成ADSR四个段,通过给定每个段的目标值以及Delta得到整个曲线。虽然ST的EG叫做ADSR,可是和之前讲到的标准ADSR有很大不一样。首先,参数从4个变成了9个,可是设计并不合理,以致还没有标准的4参数ADSR好用。Sustain段基本相当于无效,并不能保持住音色。所以该EG只能叫做4段包络器。
由此看来,消费类IC合成音乐与专业合成器的原理是一样的,只是因为应用方向的要求不一样而导致复杂程度以及成本的不一样,自然,效果也就相差很多了。
其他信息
www.midi.org MIDI官方网站
www.midifan.com MIDI爱好者
www.amei.or.jp AMEI 音乐电子事业协会
www.jspa.gr.jp JSPA 日本合成器程序协会
www.roland.com Roland公司