작곡/사운드와 관련된 리뷰/강좌/팁/인터뷰 등을 올릴 수 있는 게시판입니다

컴프레서를 조작하는데 사용하는 설정값보다는 그 바깥쪽에 해당하는 구조를 알아보기 위해서 크게 레벨 감지, 게인리덕션 계산, 게인리덕션 적용이라는 세 가지 부분으로 나누고 Block Diagram을 그려서 라우팅 차이를 알아봅니다

 

* 설명하면서 나오는 생소한 용어인 Window Time, Envelope Level 등은 알고리즘을 설명하는데 사용되고, 아래 링크의 알고리즘에서의 용어/변수명을 위주로 적었습니다. 알고리즘/개발자에 따라 다른 용어를 사용할 수 있습니다

 

 

 

1. 컴프레서의 작동 구조 : 레벨 감지, 게인리덕션 계산과 적용

 

0-feed-forward.jpg

- Feed-forward 방식 컴프레서의 Block Diagram -

 

컴프레서의 작동 구조를 간단하게 풀면 신호의 레벨을 감지(Level Detection)하고, 얼마만큼 게인리덕션을 할지 계산(Gain Computer)하여, 출력될 신호의 레벨을 조절하는 것(Gain Control)입니다

 

1-1. 레벨 감지(Level Detection)

신호의 레벨을 감지하는 것은 Peak, RMS 레벨미터와 비슷하게 생각하시면 되는데..

Peak방식은 절대값( |x| )으로 처리하고, RMS방식은 Window Time(Integration Time) 동안의 레벨을 감지하고

보통 레벨미터보다 짧은 시간으로 레벨을 감지합니다

 

1-2. 게인리덕션 계산(Gain Computing)

Detect Level(감지된 레벨)과 Envelope Level을 비교하고

Attack/Release/Threshold/Ratio/Knee과 같은 설정값들로 얼마만큼 게인리덕션을 할지 계산합니다

 

Envelope Detector알고리즘(  http://www.musicdsp.org/en/latest/Analysis/97-envelope-detector.html )과 같은 방식으로

Detect Level이 Envelope Level보다 [높으면 Attack Time을 / 낮으면 Release Time을] 반영한 변화량을 더합니다

이렇게 계산된 레벨(=Envelope Level)은 다음 계산에서 사용하는 방식으로 연속되며 시간적 요소가 구현됩니다

 

1-3. 게인리덕션 적용(Gain Control)

계산된 게인리덕션 양만큼 출력될 오디오 신호의 레벨을 줄여야 하는데..

디지털에서는 간단하게 오디오 신호 Sample값에 게인리덕션이 적용되는 배수를 곱하면 되고

아날로그에서는 Optical, Tube, VCA, FET 방식 등을 사용합니다

 

아날로그에서 사용되는 방식 이름들은 앰프/증폭회로의 소자로도 보셨을 겁니다

앰프/증폭회로는 전원 소스를 입력신호로 컨트롤하여 출력하는 것에 가깝고 레벨을 줄이는 것 역시 가능합니다 (증폭률이 1보다 작음)

시대적으로 개발된 증폭 소자, 회로 자체에서 오는 캐릭터나 반응 속도의 차이가 있기도 합니다
 

 

2. 어느 신호를 디텍팅할까? : Feed-forward, Feed-back, External Sidechain

 

1-feed-forward-back.jpg

- Feed-forward(좌) / Feed-back(우) 방식 컴프레서의 Block Diagram - 

 

레벨 감지 단계에서 어느 신호를 디텍팅하느냐에 따라

  • Feed-forward : 게인리덕션이 적용되기 전의 신호를 디텍팅, 입력신호의 레벨 변화에 직접적으로 반응
  • Feed-back : 게인리덕션이 적용된 후의 신호 디텍팅, 게인리덕션이 적용된 상태의 출력신호의 레벨 변화에 반응

로 볼 수 있고, 이 두 가지 신호를 섞어서 레벨 감지를 하는 컴프레서도 있습니다

 

 

완전히 외부의 신호를 가져와 레벨디텍팅하는 것은 External Sidechain입니다

External Sidechain 처럼 레벨디텍팅 신호와 입력된 신호가 불일치한 경우는 더 있습니다

 

2-sidechain-lookahead.jpg

- Sidechain Filter(좌)와 Lookahead(우)가 사용된 Block Diagram -

 

Sidechain Filter는 레벨디텍팅할 신호에만 따로 적용하는 Filter입니다

오디오 신호와 다른 주파수 밸런스로 반응하도록 조작하게 되는데..

 

HPF(High-pass Filter를 사용해 낮은 주파수 대역에 덜 반응하게 할 수도 있고,

만약 Sidechain Filter를 목소리의 치찰음(대략 5kHz~8kHz)위주로 반응하도록 BPF(Band-pass Filter)를 사용한다면

모든 주파수 대역에 적용되는 방식의 디에서처럼 작동할 수 있습니다

 

Lookahead(Preview) 기능은 딜레이를 통해

입력신호보다 레벨디텍팅 신호를 먼저 인식하도록 타이밍을 다르게 하여 작동하는 방식으로 구현됩니다

신호 자체가 지연되며, 플러그인에서는 DAW로 정보를 보내 Delay Compensation으로 보정 할 수 있습니다

 

 

간단하게 컴프레서의 설정값 밖의 부분들을 살펴봤습니다

컴프레서마다 세부적인 알고리즘은 다르지만.. 전반적으로 어떻게 작동하는지를 이해하는 데 도움이 되었으면 좋겠습니다

 

 

참고자료

서버에 요청 중입니다. 잠시만 기다려 주십시오...