第 3 课 · 约 75 分钟

滤波器:把刺耳变好听,再让它动起来

这节课先弄懂泛音从哪来、能拿它做什么,再学一个完整的合成器模型:振荡器 → 滤波器 → 放大器,每一级都可以用包络控制。课后你会有两个自己做的 Surge 音色:一个暖贝斯,一个会"哇"一声的拨弦。

0 · 热身:凭记忆回答

上一课最后留了一道推理题。先自己回答,再展开看答案。

一个 220 Hz 的锯齿波,泛音在 440、660、880… Hz。把低通 Cutoff 设到 600 Hz,四种波形为什么几乎分不出来?

低通滤波器会让 600 Hz 以下的频率通过,削弱 600 Hz 以上的。剩下的基本只有 220 Hz 的基频和被削弱了一些的 440 Hz。而四种波形的区别全在泛音上:方波和三角波只有奇数次泛音,第一个就在 660 Hz,已经被削掉了,所以它们都变得接近正弦波。滤波器削掉的,正是区分音色的那部分信息。这就是这节课的出发点。

1 · 泛音:一个音里其实有一串音

前两课一直在说“泛音决定音色”,这一节把它讲透:泛音从哪来,你能拿它做什么。先听懂理论,第 3 节再到 Surge 的频谱上亲眼看到它。

泛音是怎样产生的

拿一根两端固定的弦来看(吉他、钢琴都是)。弦的两端钉死不能动,所以弦上能稳定存在的振动只有几种特定的形状:整根弦一起拱起来;分成两半、一上一下;分成三段……第 n 种形状的频率正好是第一种的 n 倍。UNSW 的 Joe Wolfe:“any vibration of the string must have nodes at each end”;“the nth mode has frequency n times that of the fundamental. All of the modes … are called the harmonics.”见 Strings, standing waves and harmonics。

基频 f 第 1 泛音 n=1 2f 高八度 n=2 3f n=3 4f n=4
图 1. 两端固定的弦只能这样振动。一次拨弦,这些形状同时发生、叠在一起,所以你听到的一个音,其实是 f、2f、3f、4f… 一整串频率。

关键在“同时”:真实的弦不会只按一种形状振动,而是所有形状叠在一起。最低的那个频率叫基频,决定你听到的音高;它的整数倍叫泛音(harmonics),一起组成泛音列。管乐器里的空气柱、人的声带也是同样的道理。合成器的振荡器没有弦,但任何周期重复的波形,都能拆成基频加一串整数倍的泛音,结果一样。

泛音决定音色

同样弹 A2,钢琴、贝斯、锯齿波听起来完全不同,因为各自的泛音强弱比例不同。“It is mostly the relative strength of the different overtones that give an instrument its particular timbre.” 见 Harmonic series (music)。 第 2 课的四种波形就是四种比例:正弦只有基频;三角和方波只有奇数次泛音,三角衰减得更快;锯齿全都有,第 n 个的强度约为 1/n。另外,弦被拨了以后高次泛音先消失,所以吉他的音会越来越“圆”,这正是下面 Filter EG 要模仿的。Wolfe:“the high frequency components … quickly disappear – which is why the sound of a guitar note becomes more mellow.”

动手:泛音实验台

下面每根推子是一个泛音的强弱,下方的曲线是叠加出来的波形。先点“开始发声”,再按顺序做:

  1. 点锯齿,然后从第 16 根开始,一根根往下拉到 0,一直拉到只剩前三四根。声音怎样变?这就是低通滤波器做的事,第 2 节会讲。
  2. 对比方波和只有偶数:都只少了一半泛音,听感差在哪?
  3. 点去掉基频:第 1 根推子是 0,没有任何声音在 110 Hz。音高变了吗?
  4. 点只留 4·5·6,听听像什么。

另一个现成的演示:Chrome Music Lab · Harmonics,能看到弦上的每种振动形状并单独听它。

怎样利用泛音

1. 为什么一根弦发出的泛音频率都是基频的整数倍?

2. 去掉基频后,为什么音高没有变?

3. 想让贝斯在笔记本扬声器上也听得清,应该怎么做?

2 · 减法合成:先给多,再削掉

上节课你发现原始锯齿波太刺耳,而加了低通之后立刻好听了。这就是合成器最经典的思路,叫减法合成(subtractive synthesis):振荡器先产生一个泛音很丰富的波形,比如锯齿波,再用滤波器把不想要的泛音削掉,最后由放大器按音量包络决定声音怎样出现、怎样消失。像写数据处理管道:osc | filter | amp。每一级都有参数,包络是随时间自动去拧这些参数的"脚本"。

振荡器 OSC锯齿:泛音多 滤波器 FilterCutoff · Resonance 放大器 Amp决定音量 Filter EG Amp EG 拧 Cutoff拧音量

图 1b. 减法合成。上节课只学了右下角的 Amp EG,这节课补上中间的滤波器和它的包络。Surge 界面上就是这几个模块。

从泛音到滤波器

第 1 节说过,音色就是泛音的高矮轮廓。那想改音色,最直接的办法就是给每一根泛音乘一个倍数:想留的乘 1,想削的乘一个小于 1 的数。滤波器就是这样一条“倍数曲线”:横轴是频率,纵轴是这个频率被放大或削弱多少。声音穿过滤波器时,每根泛音的高度都按它所在位置的曲线高度缩放。

Cutoff 100 1k 5k 浅色:原来的锯齿泛音 深色:经过滤波器后 曲线:滤波器给每个频率的“音量倍数” 曲线 ×1

图 1c. 低通滤波器作用在 110 Hz 锯齿波上。曲线左边平、右边往下掉,Cutoff 附近有一个共振小鼓包。

最常用的低通滤波器(LP, low-pass)就是图里这条曲线,它的形状由三个参数决定:

为什么要从锯齿开始?因为滤波器只能削,不能凭空造泛音。正弦波只有一根基频,什么滤波器都改变不了它的音色;锯齿泛音最多,可削的空间最大。所以叫“减法”合成。

先在网页上玩一下

不用装任何东西,这两个现成的网页可以直接拖着听:

练耳:听出 Cutoff 在哪一档

这一组比上节课难:同样是锯齿波,只改 Cutoff。先把四档参考音都听一遍,再开始答题。

3 · 在 Surge 里亲眼看到泛音

下面每一步都配了你自己 Mac 上的截图,黄框里的编号对应文字里的 ①②。整张界面的标注见 Surge 界面地图。

  1. 新建工程,Insert › Virtual instrument on new track… 插入 Surge XT。在 Patch Browser 里切到 Templates › Init Saw,这是一个只有一个锯齿振荡器的空白音色。
  2. 打开频谱图:按 ⌥O,或者右键右上角的音量表(图 2 ①),选 Oscilloscope。
    1
    图 2. 打开示波器:右键 ① 音量表,选 Oscilloscope;或者直接按 ⌥O。
    弹出的面板左上角有两个按钮(图 3 ①):Waveform 是示波器,横轴是时间,画出波形的样子;Spectrum 是频谱,横轴是频率,画出每个频率有多强。点 Spectrum。频谱图就是对输出做 FFT。Surge 用的块大小是 8192 个采样(手册)。
    12
    图 3. 示波器面板。① 左边 Waveform(示波器,看波形),右边 Spectrum(频谱,看泛音);② 关闭面板。
  3. 在频谱上找到泛音:按住一个低音,比如 F2(约 87.3 Hz)。频谱上的一排尖峰,就是第 1 节说的泛音列:最左边是基频,往右依次是 2 倍、3 倍、4 倍……
    1234
    图 2b. 你按住 F2 时的频谱。① 基频 87.3 Hz;② 2 倍 175 Hz;③ 3 倍 262 Hz;④ 4 倍 349 Hz……横轴是对数刻度,所以越往右挤得越密。

    Surge 的横轴是对数刻度(100、1k、10k 等距),所以在 Hz 上等间距的泛音,在图上越往右越密。对照第 1 节的实验台,这一排尖峰的高矮轮廓就是音色:正弦波只剩最左边一根;方波只有奇数次泛音(第 1、3、5…根);锯齿全都有。下一步换波形时,就盯着这个轮廓看。

  4. 换波形:示波器面板会盖住主界面,先点图 3 ② 的红色 ×(或再按一次 ⌥O)关掉它,左上方就是振荡器区(图 4)。Init Saw 用的是 Classic 振荡器,波形由 Shape 决定(图 4 ②):0% 是锯齿,−100% 是脉冲波;脉冲波时把下面的 Width 1 设成 50% 就是方波。要正弦波,点图 4 ① 的 CLASSIC 下拉框,换成 Sine。每换一次都按 ⌥O 打开频谱,看尖峰怎样变化。手册 Classic 一节:“Shape: −100% = pulse, 0% = saw, 100% = dual saw”;“Width 1: Duty cycle (pulse)”。
    12
    图 4. 振荡器区。① 振荡器类型,Init Saw 是 CLASSIC,点开可换成 Sine;② Shape 和下面的 Width 1。
  5. 先打开滤波器:Init Saw 的 Filter 1 类型是 Off(图 5 ①),这时拧 Cutoff 没有任何作用。点开它,选一个 LP 开头的类型。
  6. 换回锯齿。按住一个音,慢慢把 Cutoff(图 5 ②)往下拉,眼睛看频谱,耳朵听:右边的尖峰一根根矮下去,声音越来越暗。
    12
    图 5. Filter 1。① 类型,Init Saw 里是 Off,要先选 LP;② Cutoff 和 Resonance。
  7. 找到 Cutoff 在频谱上的位置:Cutoff 停在中间,慢慢加 Resonance,频谱上会有一两根泛音被单独抬高,冒出一个尖峰。为什么要找它:Cutoff 推子上只是一个位置,看不出它对应哪个频率;共振峰正好出现在 Cutoff 处,相当于在频谱上给 Cutoff 插了一面小旗。找到它,你就能把“推子位置”和“哪几根泛音被削掉”对应起来:旗子左边的泛音基本保留,右边的被削弱。再拖动 Cutoff,看旗子左右移动、泛音一根根被抬起又放下,这就是后面滤波扫频的原理。另外也能看清:Resonance 并没有凭空加新的声音(直到自激之前),它只是把 Cutoff 附近已有的泛音放大。

深入:Resonance 为什么会“嘟嘟嘟”

你按住 F2 把 Resonance 拉满时,听到了高频的“嘟嘟嘟”蜂鸣。这一段用信号与系统的语言解释它,再用一个实验来验证。

先分清两条反馈。Surge 的 Filter Configuration 图上画的 FB 线(图 8 ②)是整个滤波模块的外环,由 Feedback 推子(图 8 ④)控制。你选的 S3 是“跟 S2 一样,但 Filter 2 放在反馈回路里”。Surge 手册 Filter Configuration 一节:“Serial 3 is the same as with Serial 2, but Filter 2 is in the feedback loop”。Serial 1 没有反馈路径,Feedback 推子不起作用。 Resonance 是另一条反馈,藏在 F1 方块内部(图 8 ①),图上没画。两者原理相同,都是把输出送回输入。验证方法:Feedback 推子留在中间,只拉 Resonance,蜂鸣照样出现。

1234
图 8. Filter Configuration(你的截图,S3)。① F1:Resonance 的反馈在这个方块内部;② FB:整个模块的外环反馈;③ S3 按钮;④ 外环的 Feedback 推子,在中间就是 0。

二阶低通。LP 12 dB 是二阶(2-pole)滤波器(手册 Filter Types)。它的标准形式是

H(s) = ω0² / ( s² + (ω0/Q)·s + ω0² )

1
图 9. 按住 F2,Resonance 较低。泛音一根根分开,谷很深;① 600 Hz 附近被共振稍微抬高。
12
图 10. Resonance 拉满。① 共振峰明显更高;② 泛音之间的谷被填满:出现了不是 87.3 Hz 整数倍的成分。

“嘟嘟嘟”从哪里来。F2 约 87.3 Hz,它的泛音都落在 87.3 Hz 的整数倍上。滤波器自激的频率是 Cutoff 本身,一般不正好落在某个泛音上。两个很接近但不相等的频率叠加,会产生拍频(beating):音量以两者的频率差为周期忽强忽弱,听起来就是嘟、嘟、嘟。滤波器的非线性还会产生更多互调成分,把泛音之间的谷填满(图 10 ②)。这只是一个假设,下面做实验验证它。

实验:让拍频消失

手册:拖动 Cutoff 时按住 ⌘,会吸附到最近的音名频率。先写下你的预测,再动手。

  1. 先保护耳朵:把系统音量调低。手册建议在 Global Volume 上用限幅器(limiter),右键这个推子,菜单里有就打开(手册没写具体在哪个菜单)。自激时声音可能突然变大。手册:“Take special care with feedback, effects, and resonance features… You should use the limiter on Global Volume”。
  2. Filter 1 用 LP 12 dB,Resonance 拉到会出现蜂鸣的位置,按住 F2 不放。
  3. ⌘ 拖动 Cutoff 到 F5(≈ 698 Hz),也就是 F2 的第 8 个泛音(87.3 × 8)。预测:自激频率和泛音重合,拍频消失,只剩一个稳定、带鼻音的音。
  4. 再拖到 E5(≈ 659 Hz),夹在第 7 泛音(611 Hz)和第 8 泛音(698 Hz)之间。预测:嘟嘟声回来,而且更快、更粗糙。
  5. 每一步都打开 Spectrum 看泛音之间的谷:拍频消失时,谷应该重新变深。结果跟预测不一样的话,记下你听到的,告诉我。

预测题:按住 F2,Cutoff 吸附到 F5 时拍频为什么应该消失?

这个现象以后会用上:Daft Punk 式的滤波扫频,常常就是把 Resonance 开高、慢慢扫 Cutoff,让共振峰依次扫过一个个泛音。

4 · 让滤波器动起来:Filter EG

原理:真实乐器的泛音会随时间变化

第 1 节提到,弦被拨了以后高次泛音最先消失,所以吉他的音会越来越“圆”。Wolfe:“the high frequency components … quickly disappear – which is why the sound of a guitar note becomes more mellow.” 你弹的钢琴也一样:按住不放,它不只是越来越小声,还越来越暗。换成第 2 节的说法,就是Cutoff 在随时间往下走:刚发声时很高,泛音全在;然后慢慢落下,高次泛音一根根被削掉。

所以只要让 Cutoff 随时间自动变化,就能模仿这种“先亮后暗”。第 2 课学过用 ADSR 让音量随时间变化;同样的 ADSR 拿来拧 Cutoff,就叫滤波器包络(Filter EG)。Attack 是 Cutoff 被推上去用多久,Decay 是落回来用多久,Sustain 是按住时停在哪。

对应到 Surge

Surge 右下方的 Filter EG(图 6 ①)就是这个包络,跟 Amp EG(图 6 ③)长得一样,但它拧的是 Cutoff,不是音量。拧多少由它里面标着 ▸F1 的推子(图 6 ②)决定,手册叫 FEG Mod Amount。▸F1 是 0 的话,Filter EG 怎么调都听不出变化。手册原文:"To modulate Filter 1 or Filter 2 with the filter envelope, move FEG Mod Amount sliders >F1 and >F2."

123
图 6. 包络区。① Filter EG 的 A D S R;② ▸F1:Filter EG 拧 Cutoff 的量;③ Amp EG(音量包络)。

做两个音色,存成你自己的

  1. warm-bass(暖贝斯):从 Init Saw 开始,先把 Filter 1 设成 LP(图 5 ①)。在键盘上用八度键往下挪,弹低音区。Cutoff 拉到较低,让声音变圆变厚但还能听清音高;Resonance 加一点点。Amp EG(图 6 ③):Attack 最小,Sustain 高,Release 短。点 Patch Browser 右边的 Save(图 7 ①),命名为 warm-bass。
    1
    图 7. Patch Browser。① Save:保存音色。
  2. filter-pluck(会"哇"的拨弦):再从 Init Saw 开始,同样先把 Filter 1 设成 LP。把 Cutoff 拉得很低,声音几乎闷住;然后把 ▸F1(图 6 ②)推高;Filter EG(图 6 ①)设 Attack 0、Decay 约 0.3 秒、Sustain 0、Release 短。弹一下:声音一开始很亮,然后迅速变暗。改 Filter EG 的 Decay 和 Resonance,听"哇"的形状怎样变。保存为 filter-pluck。
  3. (可选)sweep-pad:Filter EG 的 Attack 设 2 秒以上、Sustain 高,Amp EG 也慢起。按住和弦,声音会像"慢慢睁开眼"一样逐渐变亮。
  4. 把 warm-bass 和 filter-pluck 分别放在两条 Surge 轨道上,另存为 /Volumes/Ventoy/REAPER/Projects/0003-filters/filters.RPP。退出 REAPER 后检查:
    python3 /Volumes/Ventoy/REAPER/Course/assets/check.py 3
    你存的 Surge 音色在 ~/Documents/Surge XT/Patches,每个只有几十 KB,放在系统盘没问题。

5 · 回顾

1. filter-pluck 那一声“哇”从亮变暗,是哪个模块在随时间变化?

2. 做减法合成时,为什么常从锯齿波而不是正弦波开始?

3. 把低通滤波器的 Cutoff 往下拉,声音会怎样?

4.(复习)钢琴按住不放仍然会慢慢变小声,说明它的 Amp EG 哪项接近 0?

延伸

主要资料:Ableton Learning Synths 的"滤波器"和"包络"部分,可以在浏览器里拖着玩,跟这节课的顺序一样。
参考:Surge XT User Manual 里的 Filters、Envelope Generators、Oscilloscope 三节。另外 Surge 的 Patch Browser 里有一个 Tutorials 分类,里面是官方的示范音色。
挖宝作业:去 Surge 的 Basses、Plucks 分类里各找一个喜欢的预设,看它的 Filter EG 和 ▸F1 是怎么设的。你会发现,你已经能看懂大部分预设在做什么了。

哪个旋钮的效果跟你预想的不一样、频谱图看不懂,或者想知道某个预设是怎么做出来的,直接问我。