MakeNoise09 - 压缩 Compression

在音频处理中,压缩可以指数据压缩格式(如 mp3 格式),如何压缩可以减少文件大小。本文学习的则是动态范围(Dynamic range)的压缩。


image

EQ(均衡器) 和 Compressor(压缩器)是 Sound engineering 里面最基础最常用的效果器。压缩器是动态处理器的一种。动态处理器最简单的形式就像一个自动的音量控制器(gain control),当音量太大时减低音量,当音量太小时调高音量。

想象一下,你家的电视有两个不同的频道。一个频道总是很小声,需要用遥控器调整到 20 才听得清楚。另外一个频道却很大声,必需用遥控器调到 12 才不会吵到邻居。

Compressor 的作用,就相当于每次切换这两个频道的时候,自动帮你调整声音大小,使之保持在合适的范围。


image

在音频处理中,压缩的目的是让乐器、人声或录音的动态范围保持在我们想要的范围

  • 控制动态性能
  • 填补漏洞
  • 声音包络控制/塑形
  • 调控音色
  • 调整峰值和失真
  • Sidechain compression(ducking/dipping/pumping)

image

更直观来说,压缩处理可以:

  • 使音频的动态范围更平整(even out)
  • 融合两种乐器的声音(如bass 和底鼓),听起来更为整体
  • 提亮音量比较小的声音
  • 控制太响的声音
  • 使声音获得特定的音色效果
  • 创造特别的声音

所有的动态处理器基本上都是指定一个开始工作的信号电平,然后对信号做出某种形式动态变化。

image

不同压缩方法对 dynamic range 的影响:


image

MakeNoise 06 中我们学习了均衡器(EQ)。那么在处理音频时,应该是先调 EQ 还是先调 Compressor 呢?

Placing an EQ before a compressor can have the effect of exaggerating the applied EQ. Placing an EQ after a compressor you can often attain more audible results with less EQ, producing results that often do not "sound EQ's EQ" -- Chuck Zwicky

一般来说,EQ 在 Compressor 之前,主要为了调整 Compressor 的反应;EQ 在 Compressor 之后,是为了调整波形达到更好的混音效果。当然也要取决于声音素材和想要的效果

在 Ableton Live 里压缩不同的音轨

进入 Ableton Live,在效果库里面找到 Compressor,拖到音轨上,就看到 Compressor 面板中调整压缩的参数:

  • Threshold/Input:控制何时触发压缩
  • Gain reduction (GR):有多少 dynamic range 被去掉
  • Output/Makeup gain:补偿因压缩导致的音量减小,设定输出的最高电平
  • Attack:当信号达到阈值时,压缩器在多少时间内开始处理。Fast attcak 0.01~10 ms, slow attack > 50 ms
  • Release:当压缩时,原始信号被保留多久。通常以音频的 tempo 为基准
  • Ratio:以输入为基础,按比例设定输出值
  • Link:连接双声道/单声道压缩器到另外一个单声道,形成立体效果
  • Side chain:使用信号而不是主输入来控制压缩
  • Bypass:压缩过滤

如何调整不同乐器音轨的压缩器,请看下面视频里的详细讲解:

<iframe frameborder="0" width="640" height="498" src="https://v.qq.com/iframe/player.html?vid=d0711gj2yf2&tiny=0&auto=0" allowfullscreen></iframe>

Compressor in Ableton Live_腾讯视频

用 Max/MSP 实现 Compressor

更进一步,我们到 MSP 里拆解 Compressor 是如何实现的。

官方文档里提供了详细的说明和例子。00 调整和补充了一些注释:

压缩器主要有三部分构成:参数、压缩流程和处理算法。下面分别看看每一部分的实现。

可控制的参数主要有 Input gain, Threshold, Ratio, Attack time, Release time,之前我们在 Ableton Live 的 Compressor 面板里都看到了:

压缩处理的主流程:先实时监测 input level,把信号从 amplitude 转换为 dB,然后跟阈值参数比较,判断是否进行压缩:

如果达到阈值后开始压缩,需要降低的 gain 由以下部分计算。公式是 (Threshold - Level) * (1 - 1/ratio)

然后将计算值再换算为 amplitude,输出到 compression 的主流程中,最后再加一道 rampsmooth~ 来平滑 gain 的变化。

Ref

---

Art & Code 的热门文章

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,095评论 19 139
  • The Audio Listener acts as a microphone-like device. It r...
    Moment__格调阅读 6,223评论 0 1
  • 1 数字音频基础知识# 1.1 声波### 声音始于空气中的振动,这些振动一起推动邻近的空气分子,而轻微增加空气压...
    朱细细阅读 18,702评论 0 25
  • 觉得我和你会再次相遇这一次是永不分离
    野笔阅读 1,229评论 0 0
  • 公司用outlook当邮件客户端。收发邮件、会议邀请都很方便,但有两个地方真是很不方便: 1. 没有开机自启动 每...
    黑白之间阅读 4,673评论 3 1

友情链接更多精彩内容