① FM音乐合成原理
  上节介绍了乐音的四大要素,而且已说明了对音高、时值的基本控制。关于响度通常可借助硬件改变声波的整体幅度来满足要求。那么对丰富的音色模拟如何实现呢?这可借助基于调角波理论的波形发生方法实现。
  FM是使高频振荡波的频率按调制信号规律变化的一种调制方式。由调制理论可知,调角波一般采用下列复时函数表示:
  
  相应实函数表示式为:
  
  其中Wc是载波基频,ψ(t)是调制的瞬时相角。在考虑音乐合成时,可采用下面的调制方式:
  
  即用频率为ωm的单音调制信号(Isinωmt)去调制基波(sinωmt)的相角。对上式进行第一类贝数展开,可得:

  式中Jn(I)为n阶第一类贝塞尔函数。上式表明,单音调制时,调频波由载波基频和无数对边频分量所组成。F(t)的各阶谐波的幅值由调制指数I的各阶塞尔函数Jn(I)的值确定。因此采用不同的调制波频率Wm和调制指数,就可以方便地合成具有不同频谱分布的波形,再现某些东器的音色。我们还可以采用这种方法得到具有独特效果的"电子模拟声",创造出丰富多彩的真实乐器不具备的音色,这也是FM音乐合成方式特有的魅力之一。
  为了实现上节所述的FM音乐合成系统,需要增加某些相应的硬件。以下三个基本硬件功能块是必须的:
  ·相位产生单元:产生相应的Wt相位信号。
  ·包络产生单元:产生作为时间函数的预期被调波幅值A和调制指数I,可以表示为A(t)和I(t)。
  ·正弦计算电路:进行正弦函数的计算。上述三个单元的组合称为一个操作单元(oopera-torcell:)。FM音乐产生可以通过两个操作单元的组合进行,如图3.39所示。
 图 3.39 FM音乐合成操作单元
  
        (a) f(t)=Asinωct+Isinωm)
  
  其中图3.39所示的方式就是FM调制电路的典型形式。只要给出Wc,Wm,A(t),I(t)各项参数,这个电路就能输出某一特定的调角波F(t)。
  一个音发生的过程中,响度的变化是由A(t)决定的。为了较为近似地模拟真实乐器的发音需要建立一个灵活又具有较强通用性的A(t)模型。如图1-28所示,它是一个具有下键(ATTACK)、衰减(DECAY)、保持(SUSTAIN)、松键(RELEASE)四部分的调形函数A(t)。若建立钢琴的调形函数,基于钢琴发音特点,ATTACK部分应较尖锐,经过短暂的DECAY阶段,
  A(t)就进入了逐渐消失的RELEASE时期。因为钢琴的发音是下键后产生较强声音然后渐弱,SVS-TAIN阶段极短,甚至可以取消。其它乐器的声音也基本由这四个阶段组成,只是各阶段时间及幅值不同。包络处理单元就是按照我们指定的各阶段相应在数据产生预期的调形函数A(t)。这样,就逼真地模拟出乐器发音的音强(响度)。
 图3.40 基本包络波形
 
  由上述可知,各次谐波的幅值决定于调制波的频率Wm和幅值I(t)。Wm由相位处理单元处理,I(t)由包络处理单元生成。为了简化硬件结构和软件设计,同时保证产生足够多变和有特色的音色频谱,I(t)也同样采用上述ADSR(Attack-Decay-Sustain-Release)方式进行。表3.14中给出wm、I(l)与音色的简要关系。由于ADSR不同设定组合的数目极大,这样产生的音色将非常丰富,异彩纷呈。
 表3.14 Wm I(t)、Wm、I(t)与音色的关系
 
  ② FM音乐合成芯片实例
  基于前面所述的FM音乐合成原理,我们选择音频卡中常用的FM合成芯片YM3812,简述如何实现FM音乐合成,如何模拟各种乐器的音色。
  YM3812简介
  YM3812是一种广泛使用的新型音乐合成芯片。它采用FM合成方式,能够在软件的控制下产生变化极为丰富的各种音色,它的主要特点是:
  ·FM方式产生真实音响
  ·两种工作模式: 9声道同时发音
  6种旋律加5种节奏乐
  ·内置颤音振荡器/调幅(AM)振荡器
  ·可采用正弦波组合方式合成语音
  ·输入/输出为TTL电平
  图3.41给出了YM3812的管脚排列图。
  各引脚的功能如下:
  M: 主时钟输入, 频率为3.6MHz。
  SY、SH:D/A转换所需的时钟和同步信号。
  DO-DF: 八位双向数据总线。
  CS、RD、WR、AO: 数据总线控制。
  CS、RD、WR、AO
  图3.41 YM381管脚排列
  
  0100 OPL I的寄存器地址写入方式
  0101 OPL I的寄存器写入内容选择定方式
  0010 OPL I状态寄存器读出方式
  0011 无意义
  1000 置DO-DF为高阻状态
  IRQ: 可屏蔽定时中断
  IC: 清除OPL I所有寄存器内容,初始化OPL I
  MO: 数字音乐信号输出, 13位精度
  使用YM3812构成的音乐系统如图3.42。由于YM3812输出的是数字信号, 因此系统需要一数/模转换,如YM3014。微机通过总线传输必要的数据,由YM3812将它们变成相应的音高、音色、响度的数字频信号,经数/模转换变成模拟量,再经功率放大得到音响输出。
 图3.42 音乐系统框图
 
  YM3812的内部结构框图的3.43。其核心中分是我们已介绍过的三个基本单元。包络
 图 3.43 YM3812内部结构框图
 
  (c) 根据所需音高与相应的频率参量F。
  (d) 操作单元1,2的频率倍乘因子MVL置为1。这样能够得到丰富的次谐波,符合钢琴音色特点。
  (e) 调整调制波的强度、音阶调型率(KSR)及音阶音强调整(KSL)
  (f) 设置ADSR数据。钢琴A(t)形状的特点是保持阶段极短、带有急剧上升的过程和缓慢消失的松键过程。I(t)的ADSR的数据设置由下键上升和基本无变化的保持过程组成。可通过实验决定参数,以模拟出钢琴的音色。
  (g) 进行上述各数据综合调整,使它们的配合完美,音色动听。
  (h) 加入各种效果,如用颤音振荡器加入颤音。
  (5) FM音乐文个的插放和开发
  使用YM3812的音频卡很多,典型的有Sound Blaster。厂家已为这些产品配备了相应的软件,使我们可以脱离硬件来进行音乐创作和演奏。
  系统提供FM音乐驱动程序,将其装入内存后,就可以播放FM音乐了。开发工具提供高级语言界面,也可通过高级语言播放FM音乐。
  那么如何获得FM音乐文件呢?Sound Blaster提供了简谱编写软件。可先利用文字编辑器写出类似简谱格式的文件,再转换或FM音乐文件。为了获得FM音乐文件,还可以通过格式转换,把其它格式的音乐文件(如MIDI)转换成FM音乐文件。
  调频音乐合成:
  调频音乐合成是使高频振荡波的频率按调制信号规律变化的一种调制方式。采用不同调制波频率和调制指数,就可以方便的合成具有不同频谱分布的波形,再现某些乐器的音色。我们可以  采用这种方法得到具有独特效果的"电子模拟声",创造出丰富多彩的声音,是真实乐器所不具备的音色,这也是FM音乐合成方法特有的魅力之一。
  波表合成:
  波表的英文名称为"WAVE TABLE",从字面翻译就是"波形表格"的意思。其实它是将各种真实乐器所能发出的所有声音(包括各个音域、声调)录制下来,存贮为一个波表文件。播放时,根据MIDI文件纪录的乐曲信息向波表发出指令,从"表格"中逐一找出对应的声音信息,经过合成、加工后回放出来。