How Compressor Attack and Release Works? A Beginner Tutorial

Before you read this tutorial, make sure you fully understand dynamic range compression first as being applied in music production.

This tutorial will demystify one of the confusing features in audio compression: attack and release times. To illustrate this carefully, it needs to be defined first:

Attack time – the time it takes for the compressor to complete the gain reduction (or bring down the level) based on the compression ratio.

For example, if the compression ratio is set to 1:2 and the threshold is set at -20dB, this means that if the input level is -10dB (needs compression because it is above threshold), the output will be -20dB. If the attack time is set to 30ms; this means that when the input is -10dB = it takes 30ms for the compressor to reduce its gain to become -20dB (output of the compressor).

Release time – the time it takes for the compressor to bring up the level to be the same as the input level once it realizes that the input level does not anymore need compression (because it is now below threshold level).

A good example is that the input level now changes from -10dB back again to -40dB (below the -20dB threshold). The compressor realizes that this does not anymore need compression, so it “releases” the signal and apply some gain to bring back to its original level (uncompressed level) which is -40dB.

A picture is worth a thousand of words. I know that beginners find those definitions still confusing and too technical. So for the best explanation and illustration; I will use diagrams. Refer below:

Credits: Iain Fergusson (iainisbald.wordpress.com)

OK based on the above diagram, it is obvious the following are given:

Threshold= +3dB
Given input level= +9dB
Resulting output level= +6dB

 

Computing the compression ratio:

Compression ratio= Sample Input level/Sample output level = +9dB/+6dB= 3/2 or 1.5:1

Since the threshold is +3dB; the compressor won’t do anything to the input level as long as it is below +3dB (no compression, input level=output level). However based on the diagram above, the input level changes from 0dB to +9dB; this activates the compressor since +9dB is above the +3dB threshold.

But the compressor cannot compress or reduce the input level “abruptly”; instead it has a transition phase from +9dB to +6dB targeted output level (based on the compression ratio set). This transition phase is called the “attack phase” as indicated in the diagram above. How long this attack phase depends on the compressor “attack time”. You will see the “linear” transition from +9dB until it reaches the +6dB output level.

As long as the input level is +9dB, the output level is +6dB (one way to think of a “compressor” is an automatic volume regulator). However the input level went down from +9dB back to 0dB; the compressor realizes that starting from +3dB all the way down to 0dB does not anymore need compression, so it “releases” the input level.

The compressor also cannot “abruptly” releases the input level immediately back to 0dB.Based on the diagram above; when the input level is 0dB, the compressor output level is still -3dB. But since 0dB does not need anymore need compression; the compressor “releases” then applies gain to be the same with the input level again. This transition phase is called “release phase”, how long this phase depends on the compressor “release time”.

If you are using the compressor effect in your audio recording, mixing and mastering; you can creatively set the following compressor parameters to get the sound you want: threshold, attack time, release time and the compression ratio. These are the basic elements of a compressor. Setting different values of attack time, release time and other parameters can have significant effect on the resulting sound.

转载于:https://www.cnblogs.com/ConfusedITer/archive/2012/03/06/2381457.html

来源:http://www.cnblogs.com/ConfusedITer/archive/2012/03/06/2381457.html


智能推荐

SuiteScript Tutorial - How to use it and why use it?

What you will learn: What SuiteScript is? How to create a Script record in NetSuite? How to write and upload a JavaScript file? How to run your scripts? How to turn off your scripts? Where to go next?...

How Tomcat Works: Introduction

How Servlet Container works (1) 为一个servlet处理一个request, 主要做三件事     I. 创建一个request 对象(包含parameters,headers,cookies,query string,URI等信息). request 对象是javax.servlet.ServletRequest 接口或该接口的实现实...

how tomcat works 笔记

1 tomcat是模块化的服务器,由两大模块:connector和container。 connector主要用来处理网络通讯,接收tcp请求,构造httprequest和httpresponse对象,然后传递给container。 容器的主要任务是触发Servlet.service(ServletRequest arg0, ServletResponse arg1)...

How MapReduce Works

  一、从Map到Reduce MapReduce其实是分治算法的一种实现,其处理过程亦和用管道命令来处理十分相似,一些简单的文本字符的处理甚至也可以使用Unix的管道命令来替代,从处理流程的角度来看大概如下: 简单的流程图如下: 对于Shuffle,简单地说就是将Map的输出通过一定的算法划分到合适的Reducer中进行处理。Sort当然就是对中间的结果进行按key排序,因为Reduc...

How BIOS Works

1.Introduction to How BIOS Works One of the most common uses of Flash memory is for the basic input/output system of your computer, commonly known as the BIOS (pronounced "bye-ose"). On virt...

猜你喜欢

How Flyway works

The easiest scenario is when you point Flyway to an empty database. It will try to locate its schema history table. As the database is empty, Flyway won't find it and will cre...

How Webkit works笔记

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 主要是参考google的这个幻灯片 webkit的作用就是将html,css,javascript渲染成web page。 它的主要组件有: api接口 webkit,webkit2 和平台的具体实现做绑定 bindings。绑定的准确定义我还没完全弄清,从搜集到的资料来看,绑定是为了将Webkit上的对象转...

原型对象,原型链

函数都有prototype属性,它指向原型对象。 实例对象有__proto__属性,它指向对象原型 每一个原型对象都有constructor输赢,指向构造函数,每一个原型对象又具有__proto__属性,这个指向Object.prototype.在这里插入图片描述...

Node 调用 dubbo 服务的探索及实践

2.Dubbo简介 2.1 什么是dubbo Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 2.2 流程图 Provider : 暴露服务的服务提供方。 Consumer : 调用远程服务的服务消费方。 Registry : 服务注册与发现的注册中心。 Monito...

mysql总结

mysql基础入门的总结     关于数据库:     数据库是软件开发人员要掌握的基本工具,软件的运行的过程就是操作数据的过程,数据库中的数据无非就是几个操作:增-删-查-改。         Mysql安装完成后,需要配置变量环境,找到配置路径path,然后把mysql安装目录bin文件导入就可以了。 然后运行cm...

问答精选

Correctly formatting GCM notifications?

I'm currently trying out the google cloud messaging service with its sample application "Guestbook." https://developers.google.com/cloud/samples/mbs/ I'm attempting to send notifications tha...

Are there any performance benefits of using Asynchronous functions over Synchronous in Node Js?

Now I came across an article that distinguishes between an Asynchronous function and Synchronous functions. From my understanding of the different examples and explanations, synchronous functions are ...

Python: Costing calculator output

Good day all I'm busy creating a small costing calculator for the signage department. I'm not getting the calculator to output the amount. Brief Description: You enter the height and width and then wh...

Flask-SQLAlchemy - model has no attribute 'foreign_keys'

I have 3 models created with Flask-SQLalchemy: User, Role, UserRole role.py: user.py: user_role.py: If I try (in the console) to get all users via User.query.all() I get AttributeError: 'NoneType' obj...

Seeding many PRNGs, then having to seed them again, what is a good quality approach?

I have many particles that follow an stochastic process in parallel. For each particle, there is a PRNG associated to it. The simulation must go through many repetitions to get average results. For ea...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答