2012년 2월 27일 월요일

로직의 가상악기가 좀 늦게 반응하나요?

로직의 가상악기는 가상악기 연주용 플러그인(ES1/2, EXS24 등등)을 통해 재생됩니다. 자세한 설명은 생략하고, 대충 녹음되어 있는 소리 혹은 패치 정보를 메모리상에 적재시킨 후 몇 가지 연산결과를 거쳐서 재생됩니다.

결과적으로 가상악기는 주로 메모리와 CPU 연산을 통해 계산된 소리입니다. 마스터키보드 입력이 들어오면 그 입력에 따라 연산을 시작해서 소리를 출력하게 되지요. 따라서 마스터키보드 등으로 연주를 했을 때 실시간으로 소리가 들리기는 현실적으로 무리입니다.

이렇게 소리가 실제 원하는 시간에 비해서 느리게 들린다던가 하는 시간적 동기화 문제를 통틀어서 레이턴시(Latency) 문제라고 합니다. 레이턴시라는 단어는 장치나 분야에 따라 다양한 의미로 사용되지만, 컴퓨터 음악계에선 대충 이런 시간적 동기화 문제를 의미하는 용어입니다.


...


다행히도 로직의 가상악기를 '사람이 느끼기에 별 문제 없이 느낄만한 레이턴시 수준'으로 설정하는 방법은 있습니다. 시스템이 너무 오래되어서 도저히 극복 할 수 없는 상황일 때를 제외하고요. -_-;;

로직에서 Preferences를 열고 Audio탭을 선택합니다.


독자적인 드라이버를 사용하는 오디오 인터페이스라면 다를 수도 있겠지만, 일단 Core Audio탭에 I/O Buffer Size 라는 항목이 보일겁니다. 기본적으로 256으로 설정되어 있을 것입니다. 그 아래에 간략하게 레이턴시가 밀리세컨드(ms)단위로 표시되어 있습니다.

이 256 수치를 128로 바꿔서 'Apply Changes' 버튼을 누른 후 연주를 해 보면 아마도 가상악기의 연주 반응 속도가 빨라질 것입니다. 표시된 레이턴시도 줄어들게 되지요.

I/O Buffer는 메모리 상에 특정 영역을 의미합니다. 이 영역에 소리 출력 장치로 보낼 데이터를 넣었다가 나중에 이 영역이 다 채워지면 소리를 내도록 하는 용도로써 I/O Buffer Size는 이 영역의 크기를 변경하는 설정입니다. 따라서 크기를 줄이면 그 만큼 빨리 반응하게 되는 것이지요.

이 수치는 많은 사람들이 128 정도로 설정하는 것을 추천합니다. 저도 128로 설정해서 사용하고 있습니다.


주의점

버퍼, 즉 계산을 위한 메모리 영역은 작으면 작을 수록 빨리 반응하게 됩니다. 하지만 이 버퍼를 작게 하면 할 수록 컴퓨터에 무리가 가게 됩니다.

버퍼란 일을 모았다가 한번에 처리하기 위한 용도입니다. 이 버퍼가 가득차면 출력을 하게 되는데, 만약 이 버퍼가 작아지면 그 만큼 출력을 자주하게 됩니다. 출력이란게 쉬운 말 처럼 들려도 생각보다 컴퓨터에 부담을 주게 됩니다. 반대로 버퍼를 사용하는 이유는 출력에 부담이 가니 최대한 많은 양의 출력 데이터를 모아서 한번에 출력하는 것이지요.

많은 사람들이 버퍼사이즈 128을 추천하는 이유는 나쁘지 않은 레이턴시를 보여주면서도 어느 정도의 작업에 영향을 덜 끼치는 수준이라는 것을 체감하고 있기 때문이지요.

작업을 하다 트랙이 많아져서 컴퓨터가 부담을 느끼고 결국 로직이 에러메시지를 뱉어낼 때가 올 지도 모릅니다. 그럴 때는 버퍼 사이즈를 올려줘서 부담을 줄여주는 지혜 아니 노동(-_-)이 필요합니다.

물론 이 외에도 로직의 연산 작업에 부담을 덜 주게 하기 위한 여러 방법들이 있습니다만 추후에 따로 정리해 보도록 하겠습니다.

댓글 없음:

댓글 쓰기