우리가 오디오 인터페이스를 사용하다 보면 샘플레이트(Sample rate) 외에도 '버퍼 사이즈(Buffer size)'라는 것을 선택해야 되는 상황도 발생하게 된다. 그나마 샘플레이트는 이해하기 어려워도 음질에 관련된 것이기 때문에 스트리밍 플레이어나 파일 상세 보기에서 확인할 수도 있고 원리에 대해서 설명한 글도 다수 존재하지만 버퍼 사이즈에 대한 설명은 초보자 분들 기준에 이해조차 불가능한 경우가 많고 자료도 적어 이해하기 쉽게 설명하고자 한다.

 

▲ 아날로그 오디오가 디지털 환경에서 처리되는데 상당히 많은 과정이 필요하다.
▲ 아날로그 오디오가 디지털 환경에서 처리되는데 상당히 많은 과정이 필요하다.

CPU는 낱개의 데이터를 실시간으로 처리하여 전송하는 것이 아니라 일정량 데이터가 쌓였을 때 처리하고 전송하는 프로세스를 가지고 있다. 예를 들어 이동할 물품이 1024개 있다고 가정해보자.

 

 

 

▲ 레이턴시 = 물품이 채워지는 시간, 필요한 수레 개수 = CPU의 작업량
▲ 레이턴시 = 물품이 채워지는 시간, 필요한 수레 개수 = CPU의 작업량

수레 당 채우는 물품의 양을 1024개로 정하고 수레에 1024개의 물품이 채워졌을 때까지 기다린 후 목적지로 출발한다. 1개의 수레로 모든 물품을 옮길 수 있어 효율적이지만 1024개를 채우는데 시간이 필요하다. 이번에는 수레 당 64개의 물품만 채워지면 출발해 보자. 1024개의 물품이 64개씩만 채워져도 바로바로 이동하므로 물품이 채워지는데 기다리는 시간은 상대적으로 적다. 대신 16개의 수레가 운반에 동원되어야 1024개를 모두 옮길 수 있으므로 작업에 필요한 인원이 늘어나게 된다. 여기서 핵심이 물품의 양은 '버퍼 사이즈', 시간은 '레이턴시', 필요한 수레의 개수는 'CPU 점유율'에 비교될 수 있다.

 

버퍼 사이즈는 레이턴시와 CPU 점유율의 균형을 위해 존재한다. DAW의 CPU 점유율 미터를 모니터링하는 것이 좋다. 상황에 따라 다르지만 대략적으로 녹음 시에는 128이하, 모니터링 시에는 512이상을 사용한다.

 

실제 악기를 모델링한 가상악기는 구조상 CPU 점유율이 높을 수밖에 없다. 모니터링 상황에서는 본격적인 오디오 편집을 위해 가상 악기와 이펙터를 많이 사용하게 되어 CPU 점유율이 많이 올라가게 된다. 이 와중에 버퍼 사이즈까지 작게 설정되어 CPU 점유율이 더 올라간다면 노이즈는 물론 DAW 자체가 정상적으로 구동 불가능하므로 레이턴시가 많이 올라가더라도 어쩔 수 없이 512에서 1024까지 넉넉하게 버퍼사이즈를 올려주어야 한다. 모니터링 오디오가 말도 안되게 뒤로 밀리지만 않으면 작업에크게 지장 없으므로 최대한 CPU 점유율을 확보하는 데 목적을 두고 버퍼사이즈를 조정한다.

저작권자 © 더믹스매거진 무단전재 및 재배포 금지