컨볼루션 리버브(Convolution reverb) 는 사운드 디자이너가 동굴, 교회, 사무실, 복도 같은 물리적 위치에서 임펄스 반응(Impulse Response, IR) 을 캡처하고 오디오를 마치 해당 위치에서 재생되는 것처럼 실시간으로 처리하도록 지원하는 흥미로운 기술입니다. IR은 실제 장소의 리버브를 캡처 하므로 환경 오디오 프로세싱에 한층 뛰어난 사실감과 몰입감을 불어넣을 수 있습니다.
현실 세계의 리버브를 캡처하는 것 외에도 알고리즘 리버브 출력, 폴리, VO(씩씩거림, 호흡 등), 컨택트 마이크 등 모든 사운드 소스에서 IR을 파생시킬 수 있습니다. IR은 다른 사운드 소스와 마찬가지로 필터링, 어테뉴에이션, 반전, 분할, 편집 등을 통해 편집 및 처리할 수 있습니다. 컨볼루션 리버브 기능을 사용하면 이와 같은 방식을 통해 완전히 새로운 차원의 실험을 시도해 볼 수 있습니다.
컨볼루션 리버브는 딜레이 버퍼, 필터 및 다양한 DSP 토폴로지를 결합하여 리버브를 시뮬레이션하는 기존 알고리즘 리버브 기법을 뛰어넘는 데이터에 기반한 접근법을 제공합니다.
개념 배경
컨볼루션 연산
컨볼루션 은 덧셈, 뺄셈, 적분, 내적, 외적 등 다른 수학 연산과 같은 수학 연산입니다. 내적과 외적이 벡터 또는 신호를 곱하는 서로 다른 방식으로 고려되듯이, 컨볼루션은 벡터 변환과 관련된 제 3의 방식으로 생각할 수 있습니다. 즉, 외적과 마찬가지로 두 신호의 결과를 제 3의 신호로 합성합니다.
복잡한 수학은 잠시 접어두고 컨볼루션의 개념을 가장 단순하게 설명하자면 출력 신호 y(t) 의 모든 샘플을 시간 변이 입력 신호 x(t) 의 가중치 합계 g(t) 로 간주하는 것입니다. 이처럼 컨볼루션은 일종의 블러 연산자로 생각할 수 있습니다.
오디오에서의 컨볼루션
컨볼루션은 통계, 머신 러닝, 그래픽 렌더링 같은 수많은 분야에서 다양하게 활용되고 있습니다. 오디오에서 컨볼루션은 IR을 통해 오디오 신호를 처리하는 방식을 가리키며, 모델링에 이 컨볼루션의 개념을 도입하지 않으면 매우 복잡한 현실 세계의 시스템을 재현하는 것은 사실상 불가능합니다.
입력 오디오 신호가 f(t) 이고 가중치 g(t) 가 모델링할 복잡한 시스템을 재현하는 IR인 경우, 출력 x(t) 는 오디오 신호가 해당 시스템을 통해 피딩된 결과물이라고 생각할 수 있습니다.
계산 고려 사항
컨볼루션은 기본적으로 비용이 높은 수학 연산입니다. 입력 신호 f(t)_의 모든 엘리먼트는 합성되는 신호 _g(t) 의 모든 엘리먼트로 곱해지고 합해져서 출력 신호 _x(t)_의 모든 엘리먼트를 산출합니다. 큰 리버브 공간을 나타내는 큰 IR의 경우 비용이 매우 높아집니다. 컨볼루션 연산을 직접 수행하는 것은 일반적으로 리얼타임 시나리오에서 비용이 너무 높습니다.
다행히 대체 연산을 통해 컨볼루션 속도를 크게 높일 수 있습니다. 즉, 시간 도메인 에서 두 신호를 합성하는 것과 주파수 도메인 에서 신호를 곱하는 것은 결과적으로 동일합니다. 신호의 주파수 도메인은 고속 푸리에 변환(Fast Fourier Transform, FFT) 을 통해 산출할 수 있습니다. FFT는 그 이름에서 알 수 있듯이 매우 빠릅니다. 입력 신호와 IR에 대해 이 단계를 수행하면 컨볼루션 리버브를 CPU에서 실시간으로 계산할 수 있습니다. 하지만 기존 알고리즘 리버브보다 비용이 높은 편이므로 주의해야 합니다.
컨볼루션 연산에 대한 최신 CPU의 기능이 향상되고 하드웨어 가속 기능이 지원되면서 게임 오디오에서 컨볼루션 리버브를 선택할 여지가 늘어나고 있습니다. 이러한 배경으로 인해 컨볼루션 리버브는 차세대 오디오 기술로 주목받게 되었습니다.
컨볼루션 리버브 사용 방법
편집(Edit) > 플러그인(Plugins) > 오디오(Audio) > 합성 및 DSP 이펙트(Synthesis and DSP Effects) 로 이동하여 합성 및 DSP 이펙트 플러그인을 활성화합니다. 이 플러그인은 다양한 선택적 합성 및 DSP 기능을 포함합니다.
플러그인이 활성화되어 있는 상태에서 임포트된 사운드 웨이브를 '콘텐츠 브라우저(Content Browser)'에서 우클릭하고 임펄스 반응 생성(Create Impulse Response) 을 선택합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
이렇게 하면 선택된 사운드 웨이브에서 임펄스 반응이 생성됩니다. 이처럼 모든 사운드 웨이브는 컨볼루션 리버브 알고리즘에 대한 IR이 됩니다(원하는 사운드와 합성 가능). 그러면 이름에 _IR 이 붙은 새 에셋이 생성됩니다.
사운드 웨이브를 임포트할 때 사용하는 것과 동일한 프로세스로 IR을 임포트합니다.
이 에셋은 컨볼루션 리버브 이펙트에서 사용되는 것과 동일한 데이터를 포함하며, 각 임펄스 반응에 대해 설정할 수 있는 정규화 값도 포함합니다. 개별 오디오 임펄스 반응 에셋에 대한 볼륨 정규화 값을 설정하려면 디테일(Details) 패널을 엽니다.
정규화 볼륨(dB)(Normalization Volume dB) 은 이 임펄스 반응을 사용 중인 컨볼루션 이펙트에 적용되는 데시벨 어테뉴에이션입니다. 이를 통해 다양한 임펄스 반응 간에 동일한 음량을 손쉽게 얻을 수 있습니다.
트루 스테레오(True Stereo) 는 임펄스 반응 채널이 트루 스테레오 또는 개별 채널 임펄스 중 어떤 것으로 해석되는지 정의하는 체크박스입니다.
컨볼루션 리버브 이펙트를 사용하려면 '콘텐츠 브라우저'에서 우클릭하고 오디오 > 이펙트(Effects) > 서브믹스 이펙트 프리셋(Submix Effect Preset) 을 선택하여 서브믹스 이펙트 프리셋 을 생성합니다. 새 에셋을 생성하는 경우에는 '서브믹스 이펙트 클래스 선택(Pick Submix Effect Class)' 대화창이 표시됩니다. SubmixEffectConvolutionReverbPreset 을 선택합니다.
[
컨볼루션 리버브 이펙트에 대한 디테일 패널을 열려면 '콘텐츠 브라우저'에서 더블클릭하고 임펄스 반응 에셋을 사용할 것으로 구성합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
기타 파라미터에는 다음이 포함됩니다.
- 바이패스(Bypass): true인 경우, 입력 오디오가 모든 이펙트를 적용하면서 출력 오디오로 직접 라우팅됩니다.
- 임펄스 반응 포맷에 입력 채널 포맷 믹스(Mix Input Channel Format to Impulse Response Format): true인 경우, 서브믹스 입력 오디오가 임펄스 반응 에셋의 오디오 채널 포맷과 일치하도록 다운믹스됩니다. false인 경우, 입력 오디오 채널이 임펄스 반응 오디오 채널에 일치됩니다.
- 출력 채널 포맷에 리버브 출력 믹스(Mix Reverb Output to Output Channel Format): true인 경우, 리버브된 오디오가 서브믹스 출력 오디오 포맷과 일치하도록 업믹스 또는 다운믹스됩니다. false인 경우, 리버브 오디오 채널이 서브믹스 출력 오디오 채널에 일치됩니다.
- 후방 채널 서라운드 블리드(dB): 컨볼루션 이펙트의 출력에서 얼마나 많은 데시벨을 서라운드 사운드 환경의 후방 채널로 전송할지 결정합니다. -60.0 이하의 값은 무음으로 간주됩니다.
- 후방 채널 블리드 페이즈 반전(Invert Rear Channel Bleed Phase): 서라운드 사운드 환경에서 후방 채널로 전송된 오디오 페이즈의 반전 여부입니다.
- 후방 채널 서라운드 플립(Surround Rear Channel Flip): 후방 채널로 전송하기 전에 이펙트의 왼쪽 및 오른쪽 채널을 플립할지 여부입니다.
고급 파라미터에는 다음이 포함됩니다.
- 블록 크기(Block Size): 런타임 퍼포먼스에 영향을 미칠 수 있는 내부 프로세싱 블록 크기를 설정합니다.
- 하드웨어 가속 활성화(Enable Hardware Acceleration): 타깃 플랫폼에서 하드웨어 가속을 지원하는 경우 활성화합니다.
이를 서브믹스 이펙트에서 사용하려면 서브믹스 이펙트 체인에서 원하는 서브믹스에 서브믹스 이펙트로 추가합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
이 서브믹스를 사용할 마스터 리버브 서브믹스로 설정하면 자동으로 리버브 오디오를 서브믹스로 전송할 수 있습니다. 또는 수동으로 오디오를 서브믹스 센드 이펙트로 이 서브믹스에 전송할 수 있습니다.