오디오 레이턴시에 대해서

Dennis J Wilkins
원문 Audio Latency Tutorial

Dennis J Wilkins이 작성한 이번 기사에서는 오디오 레이턴시에 대해 설명하고자 합니다. 어디선가 DAW에서 레이턴시는 매우 낮게 설정해야 한다는 말을 들어본 적이 있을 겁니다. 어떤 인터페이스가 낮은 레이턴시를 가지고 있는지에 대한 테스트나 기사를 본 적도 있을 것이고, 혹은 지금 내 작업 환경의 레이턴시가 좋지 않은 것인지 우려해 본 경험도 있을 겁니다.

unnamed
Dennis J Wilkins

오디오 레이턴시란?

옥스퍼드 영어 사전에 따르면 레이턴시(대기 시간)의 사전적 정의는 "존재하지만 아직 개발되거나 나타나지 않은 상태"라고 합니다. 네, 하지만 저희한테는 그다지 유용한 설명은 아닌 것 같습니다. 혹은 "전송 지시가 내려진 직후 데이터가 전송되기 전까지의 지연 시간"이라는 현대적인 정의도 있습니다.

기본적으로 레이턴시란 '지연(Delay)'입니다. 디지털 오디오 처리에 있어서 레이턴시에는 여러 종류가 있으며, 녹음 엔지니어에게 가장 중요한 레이턴시는 "왕복 레이턴시(round-trip latency)"입니다. 이는 처음에 컴퓨터의 오디오 인터페이스의 인풋에 신호가 보내지는 시점부터, 컴퓨터의 오디오 인터페이스의 아웃풋에서 동일한 오디오를 재생할 수 있는 시점까지의 지연 시간입니다.

'제로' 오디오 레이턴시?

아마 많은 분들이 연주하는 동안 자신의 목소리나 악기를 실시간으로 듣는 경우 레이턴시가 0이 되기를 바랄 겁니다. 하지만 절대 레이턴시는 0이 될 수 없습니다. 여기엔 여러 가지 이유가 있습니다. 기본적인 문제는 컴퓨터의 샘플 버퍼입니다. 컴퓨터는 데이터를 처리하기 위해 유한한 시간을 필요로 합니다. 디지털 오디오가 0과 1로 이루어진 데이터에 불과하더라도 이를 처리할 시간을 제공하는 샘플 버퍼가 필요합니다.

오디오 데이터가 컴퓨터 안에서 이동하는 동안 처리 시간을 확보하기 위해 데이터 버퍼를 사용해 지연이 적용됩니다. 버퍼의 크기는 샘플 단위로 측정됩니다. 현재로서는(2021년 기준) 맥에서 14, 윈도우즈에서 16이 사용할 수 있는 가장 작은 크기의 샘플입니다.

하지만 모든 컴퓨터와 인터페이스가 이렇게 작은 버퍼를 사용할 수 있는 것은 아닙니다. 대개 32에서 64 정도가 인터페이스에서 사용할 수 있는 가장 작은 단위입니다. 그리고 종종 CPU 사용량과 레이턴시 사이의 적절한 타협점으로 128이나 256 샘플을 사용하게 됩니다.

타협점

왜 여기서 타협을 해야할까요? 컴퓨터는 오디오(또는 모든 데이터)를 처리하는 데 어느 정도 시간이 걸리기 때문에 버퍼 크기가 너무 낮으면 오디오에 문제가 생길 수 있습니다. 오디오는 지정된 샘플 속도에 맞춰 계속 흘러가야 합니다. 그렇지 않으면 오디오가 멈추는 '드롭아웃' 현상이나 딱딱거리는 소리, 팝 노이즈 등이 발생합니다.

일반적인 저전력 컴퓨터에서 낮은 버퍼 사이즈를 사용하면 오디오 문제가 발생할 가능성이 더 높습니다. 높은 버퍼 사이즈를 사용하면 이런 문제는 해결되겠지만, 더 긴 레이턴시가 생길 것입니다.

내 컴퓨터가 어느 정도까지 다룰 수 있을까?

요즘 시대의 고성능 컴퓨터(혹은 맥)은 일반적으로 32 샘플 버퍼를 비우는 시간 동안 꽤 많은 양의 데이터를 처리할 수 있습니다. 이는 초당 44,100 샘플이라고 하면 0.73ms 혹은 0.00073초가 걸리는 것입니다. 사실, 3.5 GHz 4코어 인텔 하스웰 CPU는 0.73ms면 약 8,500만 개의 명령을 처리할 수 있습니다!

이 정도면 꽤 많은 것처럼 보이는데요(실제로 그렇습니다), 하지만 대부분의 프로세스는 많은 명령을 필요로 합니다. 또한 컴퓨터는 오디오 데이터뿐만 아니라 다양한 많은 프로세스들을 동시에 수행하고 있습니다. 게다가 만약 고사양의 EQ, 컴프레서, 리버브 플러그인을 사용한다면 그것만으로도 정말 많은 처리 능력이 필요할 것입니다.

더 읽어보기 : 오버샘플링 이해하기

레이턴시 늘리기

다시 레이턴시의 이야기로 돌아가 봅시다. 앞서 언급한 왕복 레이턴시는 인풋과 아웃풋의 버퍼링을 둘 다 필요로 합니다. 고로 버퍼 사이즈 지연에 2를 곱해야 합니다. 그럼 32 샘플이라면 이상적으로는 1.5ms 정도의 레이턴시를 가지게 됩니다.

하지만 왕복 레이턴시에는 다른 요소들도 개입합니다. 마이크나 앰프를 통해 나온 아날로그 오디오는 오디오 인터페이스의 인풋으로 들어가 디지털 데이터로 변환되기 위해 반드시 A-to-D 컨버터(A/D)를 거쳐야 합니다. 이 과정에서 컨버터는 더 많은 지연을 발생시킵니다.

그리고 신호가 압축되 DAW로 들어간 뒤, 그 소리를 들어보고 싶다면 인터페이스는 또다시 D/A 컨버터를 통해 데이터를 아날로그로 변환해야 하기 때문에 지연 시간이 늘어납니다. A/D와 D/A 변환은 일반적으로 각각 약 1ms 정도 지연 시간을 추가합니다. 이 지연 시간은 A/D와 D/A 하드웨어 사양이나 오디오 인터페이스 드라이버의 영향을 받습니다. 덜 효율적인 오디오 인터페이스라면 프로세스 시간에 몇 밀리초가 더해질지도 모릅니다. 고로, 1.5ms라는 이상적인 값은 3~6ms 정도까지 늘어납니다. 이는 현재 사용되는 대부분 오디오 인터페이스에 해당됩니다.

DAW에서 추가되는 레이턴시

이제 DAW는 어떤지 봅시다. 좋은 소식은 DAW들은 그 자체만으로는 버퍼 대기 시간 이상의 지연을 추가하지 않는다는 것입니다. 하지만 많은 FX 프로세서들, 특히 리니어 페이즈 EQ나 Look-Ahead 기능을 가지고 있는 컴프레서 및 리미터, 컨볼루션 리버브 같은 플러그인은 단지 몇 샘플 정도를 추가하는 것이 아니라 몇천 샘플을 추가합니다. 실제로 2048 샘플이나 4096 샘플도 아주 드문 경우는 아니며 심지어 저는 한 개의 플러그인이 8192 샘플의 지연을 추가하는 것도 본 적이 있습니다!

초당 44,100 샘플의 상황에서 2048 샘플은 46ms 정도의 지연을 추가합니다. 아마 이 정도면 'Slap-Back' 딜레이 효과 같은 느낌을 받게 될 것입니다. 해결책이라면 녹음하면서 오디오를 모니터링 해야하는 상황에 높은 지연의 플러그인을 사용하지 않는 것입니다. 그 대신 보통 지연 시간이 추가되지 않는 간단한 EQ나 리버브 및 기본 컴프레서를 사용하면 됩니다.

또한 간단한 플러그인들은 매우 낮은 CPU 자원을 소모합니다. 고로 최신형 컴퓨터라면 32 샘플 버퍼에서 3~6ms 범위의 매우 현실과 유사한 왕복 레이턴시를 구현할 수 있습니다. 3~6ms면 소리가 공기를 통해 1~2미터를 이동하는 데 걸리는 시간입니다.

더 읽어보기 : DAW에서 아날로그 작업 방식을 재현하는 7가지 팁

PDC란 무엇인가

플러그인 지연에 대해 논할 때는 PDC에 대해 언급해야 합니다. PDC는 Plug-in Delay Compensation의 약자로 플러그인들이 서로 다른 지연 시간을 가질 때, 모든 오디오 트랙을 가장 지연 시간이 긴 플러그인에 맞춰 자동으로 정렬시켜 줍니다. 이는 녹음을 모니터링할 때는 전혀 도움이 되지 않지만 오디오 믹싱이나 마스터링에서는 중요합니다. 녹음할 때는 버퍼 대기 시간 이상으로 지연을 추가하는 플러그인을 사용하지 않는 것이 가장 좋습니다.

버퍼 사이즈가 얼마나 낮아야 할까

하지만 정말 스튜디오 작업에서 낮은 지연 시간이 필요할까요? 오디오를 녹음하면서 보컬이나 뮤지션에게 헤드폰으로 믹스를 보내야 하는 경우라면, 레이턴시는 중요한 점검 요소입니다. 5ms의 지연 시간 때문에 화를 내는 뮤지션은 거의 없을 것입니다. 모니터 스피커나 기타 앰프 캐비넷에서 몇 미터 이상 떨어져서 듣는 경우는 거의 없습니다. 다만 드러머라면 4ms 정도의 지연에도 예민할 수 있습니다.

제로 레이턴시 모드

종종 오디오 인터페이스에 녹음할 때 레이턴시를 1ms 미만으로 줄이는 기능이 탑재되어 있기도 합니다. (제로 레이턴시 모드라고 불리긴 하지만 실제로는 대부분의 경우 수백 마이크로초의 레이턴시가 있습니다) 이는 인풋에서 아웃풋으로 통하는 내부 라우팅으로 구현됩니다. 어떤 인터페이스는 이런 폴드백(Fold-Back) 오디오 신호에 리버브, EQ, 컴프레서를 더해주기도 합니다. 저도 종종 이 방법을 잘 활용하기도 했습니다만, 제가 녹음을 진행한 뮤지션들은 DAW를 통해 4ms의 지연 시간을 제공해도 전혀 눈치채지 못했습니다.

낮은 레이턴시에는 더 많은 돈이 필요하다

밴드와 뮤지션들을 자주 녹음한다면, 레이턴시를 최소화하는 방법으로 썬더볼트 인터페이스를 사용할 수 있습니다. 최신형 제품은 왕복 레이턴시에 2ms 미만이 걸리기도 합니다. 썬더볼트를 사용할 수 있는 컴퓨터도 필요하고 비용이 더 들어갈 수 있지만 밴드 녹음이 주된 사업이라면 금세 본전을 찾을 수 있을 것입니다.

여러분의 스튜디오엔 뭐가 필요한가요?

하지만 라이브로 오디오 녹음을 하지 않는 경우라면 어떨까요? 스스로 녹음을 진행하지 않고 다른 엔지니어로부터 녹음된 트랙을 받아 믹싱, 마스터링만 진행하는 데 특화된 엔지니어도 많이 있습니다. 이들에게 레이턴시는 신경 쓸 필요가 없는 문제입니다. 수천 개의 샘플 지연이 발생하는 경우라 해도 영향을 주는 것은 딱 하나입니다. 재생 혹은 정지 버튼을 눌렀을 때 명령이 동작하기 전까지 살짝 시간이 걸리는 것뿐입니다.

사실 믹싱이나 마스터링을 할 때면 고성능의 FX 플러그인, 특히 진공관, 트랜스포머를 모방하거나 Look-Ahead 기능을 가지고 있는 플러그인을 자주 사용하게 됩니다. 이런 플러그인들은 CPU 자원을 매우 많이 사용하므로 지연이 더 많이 발생할 수 있습니다.

이런 종류의 작업을 한다면 최대한 많은 샘플의 버퍼로 올리는 것이 안전합니다. 오디오 문제가 발생할 확률도 최소한으로 줄일 수 있고 컴퓨터의 과열도 방지할 수 있습니다. 가변 속도 팬 기능을 가지고 있으면 팬 소음도 더 조용하게 할 수 있습니다.

결론

오디오 레이턴시는 디지털 오디오 세상에서 마주할 수밖에 없는 현실입니다. 하지만 오늘날에는 저렴한 오디오 인터페이스를 사용하더라도 레이턴시가 아주 심각한 문제를 일으키진 않습니다. 만약 오디오 믹싱 및 마스터링 작업에 대해서라면, 레이턴시에 대해 거의 걱정하지 않아도 됩니다.

더 읽어보기 : Sonimus TuCo 리뷰 (by Dennis J Wilkins)