큐베이스7 이후로 VST 퍼포먼스에서 ASIO 항목에 자꾸 피크가 뜨는 분들 많으실 겁니다.
큐베이스의 엄청난 문제인 것 처럼 이야기가 돌아다니길래 가이드를 좀 적어보려고 합니다.
대부분 메뉴얼에 있는 내용입니다.
(1) 큐베이스5에서는 문제가 없었는데 큐베이스7에서는 자꾸 피크가 뜬다?
이건 일단 큐베이스 퍼포먼스의 문제가 아니고 VST performance indicator가 업그레이드 되서 이 전에는 안보이던 항목이 보여서 그렇습니다.
큐베이스5의 VST 퍼포먼스 인디케이터
큐베이스7의 VST 퍼포먼스 인디케이터
①큐베이스 5
큐베이스5에서는 ASIO 라고 써 있는 부분이 ASIO meter 인데 이것은 ASIO time usage 입니다. 트랙이 많을수록, 이펙터가 많이 걸려 있을 수록 ASIO 처리 시간이 늘어나는데 이것을 표시하는 것입니다. 오버로드가 일어나면 트랙을 줄이든지, 이펙터를 줄이든지 cpu를 더 좋은 것으로 바꾸든지, 레이턴시를 늘리든지 해야 합니다.
ASIO meter가 Cpu사용량을 바로 나타내는 것은 아니고, cpu는 asio 시간 계산에 영향을 주는 요소 중에 하나입니다. 하지만 레이턴시를 고정해서 써야 한다면 편의상 cpu사용량이라고 볼 수도 있습니다.
②큐베이스 7
큐베이스 7에서는 VST 퍼포먼스 인디케이터가 업그레이드 됐습니다.
average load는 오디오 프로세싱에 얼마나 많은 cpu power가 사용되고 있는지 나타내줍니다.
real-time peak는 오디오 엔진의 실시간 경로(ASIO realtime path)에서의 프로세싱 로드값을 나타내줍니다. 쉽게 말해 실시간값 측정입니다.
리얼타임 피크값이 높으면 드롭아웃(drop out)이 발생할 가능성이 높아집니다.
*drop out : 데이터 처리를 못해서 누락되는 것을 말합니다.
(2)VST(i)사용으로 real-time peak가 오버로드 표시되는 경우
이 경우는 VST(i),트랙, 이펙터를 줄이거나 레이턴시를 늘리거나 하면됩니다.
혹은 ASIO-guard 기능을 사용해보는 방법도 있습니다.
*ASIO-Guard 기능은 ASIO 실시간 경로(ASIO realtime path)에서 처리할 내용을 ASIO 가드 경로(ASIO-Guard processing path)에서 처리하는 신기술입니다. 이렇게 함으로써 더 많은 ASIO realtime path에서 더 많은 여유를 가지고 작업할 수 있습니다.
더 많은 트랙과 이펙터를 사용할 수 있고 더 적은 버퍼, 안정적인 시스템을 만들 수 있습니다. (사실, 아직까지는 말처럼 완벽하지 않습니다.)
ASIO-Guard기능은 모든 VST(i)에서 원활하게 작동하지 않습니다. VST 버전과 제작사에 따라 잘되는 경우도 있고 아닌 경우도 있습니다. 그래서 plug-in information에서 ASIO guard 지원여부와 on/off를 설정할 수 있습니다.
아직 완벽한 기능이 아니라서 steinberg에서 엄청 홍보하고 그러지는 않았습니다. 문제가 있는 경우에는 asio guard기능을 끄는 것이 나을 수도 있습니다.
(3)사용량 초과가 아닌 이유없이 real-time peak가 오버로드 표시되는 경우
이 경우는 두가지 측면에서 따져봐야 합니다. (컴퓨터의 타이머와 CPU측면)
컴퓨터에는 RTC(Real Time Clock)이라는 타이머가 있습니다. 이 것은 컴퓨터에서 시간을 체크할 때 기준이 됩니다. 타이머에는 여러 종류가 있는데 종류에 따라 해상도가 다릅니다.
최근의 컴퓨터 하드웨어와 OS는 HPET : High Precision Event Timer(고정밀 이벤트 타이머)까지 지원합니다.
HPET을 사용하려면 bios에서 HPET기능을 On 시켜야 하고 OS에서도 켜주어야 합니다.
이에 관심이 없는 분이라면 bios에서는 on인데 OS에서는 off로 되어 있거나 그럴수도 있습니다. 윈도우7에서는 HPET이 꺼져있는 것이 디폴트 값입니다.
제가 첨부한 파일 중에 WinTimerTester_1.1.zip 를 받아서 실행해 보시면 현재 OS의 타이머값이 나옵니다. HPET을 사용중이라면 아래와 같이 14.31818 MHz라고 나옵니다.
HPET이 사용중이 아니라면 2.6MHz나 3.5MHz 등의 다른 프리퀀시가 나올 것입니다.
컴퓨터의 리얼타임 능력에 영향을 미치는 것은 여러가지가 있습니다. 이를 측정하는 툴들도 몇개 첨부합니다.
설치해야하는 단점이 있지만 LatencyMon이 좀 더 세밀하게 측정합니다. 리얼타임 능력에 문제가 있을 경우 어디가문제인지도 알려줍니다.
https://www.thesycon.de/eng/latency_check.shtml
https://www.resplendence.com/downloads
다시 타이머이야기로 넘어가겠습니다. HPET기능은 보다 세밀하게 리얼타임을 측정하는 대신 더 많은 cpu가 필요합니다. HPET기능은 켜고 CPU는 빡세게 제한하면 오히려 드롭아웃이 더 많이 일어날 수 있습니다.
그렇지만 대부분의 디폴트값으로 cpu제한이 걸려있습니다. 그래서 HPET기능을 켜면 큐베이스7에서 리얼타임 피크가 더 일어나기 쉽습니다.
더 세밀한 리얼타임 프로세싱을 위해서는 CPU도 빡세게 굴려야 하는데 메인보드와 OS에서 CPU능력을 제한해 버립니다. 제조사마다 이름이 조금 다르지만 대체로 Cpu throttling 기능이 지원됩니다. 이것은 전력 절감을 위해 CPU기능을 제한하는 기술입니다. 이것을 끄려면 본인 메인보드 bios 설정 화면으로 들어가 기능을 해제하면 됩니다.
또 윈도우에서는 전원옵션(power option, power plan, power scheme 등으로 부릅니다.)을 제공하는데 이것도 CPU를 제한합니다.
말씀드렸다시피 리얼타임을 미세하게 측정하고 연산하려면 cpu도 빡세게 돌려야 합니다.
친절한 스테인버그에서 이를 보다 편하게 설정할 수 있도록 윈도우에서 전원옵션 설정을 간편하게 할 수 있는 옵션을 넣어줬습니다.
위의 옵션을 체크하면 윈도우 전원 옵션에 아래사진 처럼 Steinberg Audio Power라는 새로운 전원 정책이 생겨납니다.
이 전원옵션을 수동으로 바꾸거나 그럴 필요는 없습니다.
Device Setup에서 Activate Steinberg Audio Power Scheme에 체크하면 큐베이스가 실행될 때만 전원정책이 자동으로 Steinberg Audio Power로 변경됩니다. 큐베이스를 종료하면 이전 정책으로 자동으로 돌아갑니다.
참으로 친절한 steinberg입니다.
이해가 잘 되신 분이라면 여기까지만 읽고도 어떻게 해야 하는지 느낌이 오실 겁니다.
큐베이스에서 이유없이 real time peak에 오버로드가 일어난다면
A. 컴퓨터 타이머를 체크해 봅니다. 미세한 놈이 좋지만 그만큼 많은 CPU가 필요합니다. 타이머를 좀 덜 미세한 놈으로 사용하는 것도 리얼타임 부담을 줄이는 방법입니다.
B. CPU제한을 체크해 봅니다. CPU제한이 많이 걸려 있으면 real time 처리에 제한이 일어납니다.
C. Asio-Guard여부를 체크합니다. Asio-Guard는 원래 real time 처리를 도와주려고 생긴 기능이지만 이게 모든 VST에 원활하게 작동하지 않기 때문에 우회실패로 인해 real time이 원활하지 않게 처리될 수도 있습니다. 시스템에 따라 이 기능을 사용하는 것이 나을수도 있고, 사용하지 않는 것이 나을 수도 있습니다.
그럼 급 피곤해서 이만 마칩니다.
컴퓨터 타이머에 관한 내용은
에 잘 나와 있습니다. cpu제한에 관한 내용도 파코즈에 많이 나와 있습니다.
맥은 OS에 따라서 HPET지원 여부가 다른 걸로 알고 있는데 자세한 내용은 맥사용자들이 더 잘 아실거라 생각합니다. (맥에서 큐베이스 퍼포먼스가 좋네 어쩌네 하는 것과 관련이 있을겁니다.)