FM 合成:用两个正弦波造配方
两个正弦波,两个数字。RATIO 决定哪些谐波可能存在,调制指数决定其中有多少真正带着能量。
这门课到目前为止的每一课,都是从一个丰富的波形出发,再拿掉一些东西。FM 反过来:从两个正弦波开始,也就是最空的声音,往里加谐波。其中一个正弦是载波(carrier),就是你听到的那个音。另一个是调制波(modulator),它的输出永远到不了喇叭,而是接到载波的频率上,每秒把这个频率往上往下推几百次。第 6 课已经画过这条界线:一个振荡器接到音高上,低于大约 20 Hz 时是颤音;同样的接线放到 440 Hz,就快到根本听不出是在动了,取而代之的是载波周围出现的一组新频率。它们叫边带(sidebands),就是这个新声音的谐波。
下面那个玩具搭出来的全部电路。虚线是调制:调制波的输出进的是载波的频率输入端(图上标为 f),从不进入音频通路。载波固定在 220 Hz;RATIO 把调制波的频率设成它的倍数,INDEX 决定载波被推多远。
边带落在哪里
边带成对出现,载波上方一个、下方一个,间隔是调制频率的整数倍。写出来就是 c ± k·m,k = 1、2、3 一路往上。玩具把载波固定在 220 Hz,并把前八对画成琥珀色刻度,于是预测就摆在它所预测的那些绿色柱子旁边。把 RATIO 设为 2.00,调制波跑在 440 Hz。第一对是 660 Hz 和 −220 Hz;第二对是 1100 Hz 和 −660 Hz。
那些负数是真的,而且这正是多数讲解跳过的部分。载波下方的边带会一直减到零以下,而 −220 Hz 听起来就是 220 Hz:它折回正半轴,落在那里已有的东西上面。玩具画刻度时替你折了一次,因为音频本身也在折。把 RATIO 2.00 的那串折回来,整个频谱塌缩到 220、660、1100、1540、1980、2420、2860 和 3300 Hz——都是 220 Hz 的奇数倍,也就是第 2 课分给方波和单簧管的那一族,玩具第二个预设的名字也由此而来。
比率挑选配方
两个频率之间的比率决定哪些倍数能在折叠后活下来,也就决定了这个声音属于哪一族。RATIO 1.00 时调制波与载波同为 220 Hz,边带落在它的每一个倍数上:220、440、660、880 一路往上,另外还有一项落在 0 Hz,你听不见。这是锯齿波一族,也是玩具的第一个预设。2.00 时只有奇数倍活下来。3.00 时除了第 3、6、9、12 次以外每一个倍数都在,留下一个薄而带簧片味的音,接近窄脉冲。整数继续变大,这组音只会更稀。
玩具那个 220 Hz 载波在两个 RATIO 设定下的预测边带,背景是 220 Hz 谐波序列的淡色网格。2.00 时每一根都落在网格线上,梳齿等距。3.50 时间距开始交替,九根里有四根(550、990、2090 和 2530 Hz)正好落在两个谐波中间。只画位置:柱子的高度不携带任何信息。
不是整数的比率会把这些刻度推离谐波网格,耳朵把这种情况听成敲击金属,而不是一个音。RATIO 3.50 是滑块能给出的最清楚的例子。它的刻度落在载波的 1、2.5、4.5、6、8、9.5、11.5、13 和 15 倍上,九根里有四根夹在谐波之间。钟和锣的分音排列和这个很像,FM 就是这样在 1980 年代拿下了这一块音色设计。滑块以 0.25 为步进,所以它能到达的每一个比率仍然会把频谱落在某个规则网格上;3.50 时那个网格是 110 Hz,载波的一半。要彻底离开网格,得用下面的 FINE。
调制量就是亮度
RATIO 决定哪些频率可以出现,调制指数(modulation index)决定其中有多少真正带着能量。它决定调制波把载波推多远:玩具把这个峰值摆幅设为指数乘以调制频率。在单簧管预设上,RATIO 2.00、指数 2,调制波跑在 440 Hz,载波的 220 Hz 正被往两边各推 880 Hz。指数为 0 时没有摆幅,载波就是一个普通正弦。往上抬会把能量从载波取走、向外摊开,一个可用的经验法则是大约有「指数 + 1」对边带响到足以算数:指数 1 给两对,指数 4 给五对,指数 8 把玩具预测的八对填满。这是 FM 版本的「打开滤波器」,也是为什么一个发闷的 FM 音色,通常先要抬的是调制器的电平。
两个正弦波,再无其他。琥珀色刻度是当前设定下预测的边带位置,绿色柱是分析仪读到的真实输出。先从 2:1 clarinet 预设开始,把柱子和刻度一根根对上。然后把指数归零再慢慢抬起,看中间那根柱子变矮、外侧的长起来。再把 RATIO 从 1.00 按 0.25 一步步走到 8.00,用耳朵把这些设定分成两堆:听起来像一个音的,和听起来像一口钟的。最后停在 FINE 上。
FINE:走到钟声的最后一步
FINE 在比率给出的频率之上,再给调制波加最多 20 Hz,步进 0.5 Hz。相对 440 Hz 这是个很小的数,它做的事却和体量不成比例。RATIO 2.00 时,某一对的上边带和下一对的下边带落在同一个频率上,那串干净的奇次谐波堆就是这么来的。加上 7 Hz 的 FINE,每一处重合都分开 7 Hz。相差 7 Hz 的两个音每秒拍频七次,于是整个频谱开始闪。把 FINE 推到 20 Hz 的上限,拍频快到数不过来,听起来就成了粗糙感。
这个偏移还会往上累积:第 k 根边带被移动的是 k 乘以 FINE 的量,所以频谱顶端偏离网格的程度大于底端。这一点值得和调音旋钮分开来看。移动载波会把整个频谱整体平移,间距不变;移动调制波改变的是间距本身。玩具只提供后者,因为它的载波被钉死在 220 Hz。它的 bell 预设是 RATIO 3.50 配 FINE +7.0,调制波因此落在 777 Hz,分音落在 220、557、997、1334、1774 Hz 一路往上。没有一个是 220 Hz 这个音的整数倍。
Digitone II 的 FM TONE 机型就是这一课,只是把两个 operator 换成四个,分成 C、A 和 B(B1 与 B2)三组,由 ALGO 在八种固定接法里挑一种。C 永远作为载波,它的比率基本被限制在整数上,因为它负责承载音高;A 则被特意给了更宽的比率列表,好够到这一课用来做钟声的那些非谐关系。每个调制器的 LEV 就是它的指数,并且走的是一条 attack/decay/end 包络,于是亮度会在音符上移动,像被敲响的钢琴弦那样。DTUN 给 operator A 和 B2 加偏移,正是 FINE 那个实验的落脚处:到 64 左右都还很轻微,再往上就失谐得厉害。一个记号上的提醒——手册把比率写成 carrier:modulator,所以这一课说的比率 2,在那里印成 1:2。FM DRUM 是同一个引擎,三个 operator 外加一条音高扫描。