윈도우 태블릿이 하나 생겨서 음악 소스로 사용하려고 foobar2000을 설치했습니다. 운영체제는 Windows 10 32bit 가 설치되어 있습니다. foobar2000을 제대로 사용하기 위해서는 WASAPI(Windows Audio Session API) 컴포넌트를 추가로 설치해 줘야 합니다. 이 컴포넌트는 단독모드(exclusive mode) 출력을 지원하여, bit-exact 출력을 가능하게 해줍니다.
이 말은 foobar2000이 사운드 장치를 독점적으로 사용할 수 있게 해 줍니다. 단독 모드로 동작을 하면 다른 재생 프로그램들을 사용할 수가 없게 됩니다. 윈도우즈는 Windows 자체 이벤트 사운드 및 여러 재생 프로그램들이 동시에 동작을 하면 시스템 믹서가 이러한 소리들을 섞어서 동시에 들리게 해줍니다.
이 과정에서 각각의 소리들을 합치기 위해서 변형이 되어지게 됩니다. bit-exact 혹은 bit-perfect 출력은 이러한 변형없이 원래 데이터 그대로 출력할 수 있다는 뜻입니다.
foobar2000이 이미 설치가 되어있다는 가정하에 WASAPI 컴포넌트를 설치해 보겠습니다.
먼저 윈도우즈의 재생 장치가 단독모드를 허용하도록 설정을 합니다. 작업표시줄의 스피커 아이콘을 마우스 오른쪽 키를 눌러서 소리를 선택합니다.
재생탭에서 재생에 사용할 장치를 선택하고 속성 버튼을 누릅니다.
고급 탭에서 단독모드 항목에서 "응용 프로그램에서 이 장치의 단독 모드를 사용하도록 허용" 과 "단독 모드 응용 프로그램에게 우선 순위 허용" 을 모두 체크 합니다. 기본으로 체크되어 있을 것입니다. 그러면 확인만 하면 되겠습니다.
다음 사이트에서 WASAPI 컴포넌트를 다운로드 받습니다. https://www.foobar2000.org/components/view/foo_out_wasapi
- 다운받은 파일(WASAPI.fb2k-component)을 foobar2000이 설치된곳의 components 폴더에 넣습니다.
- foobar2000을 실행해서 컴포넌트를 등록합니다.
- File -> Preferences 메뉴를 누릅니다.
- 설정창에서 Components 를 선택합니다.
- Install 버튼을 눌러 파일 선택창에서 앞에서 복사한 컴포넌트 파일을 선택합니다.
- Apply 버튼을 누릅니다. 아직은 Unknown 이라고 보일 것입니다. foobar2000을 재시작하면 컴포넌트가 제대로 등록이 되어 있습니다.
이제 설정창에서 Playback -> Output 을 선택합니다. 디바이스에서 출력에 사용할 장치를 선택합니다. WASAPI 장치가 event와 push 의 두 개가 보일 것입니다.
두 가지의 차이점은 인터넷 검색을 해봐도 명확하게 나와 있는 곳은 못 찾았는데, 대체적으로 event 방식이 더 안정적이라는 견해가 많았습니다.
기술적으로는 push 방식은 하나의 버퍼를 사용해서 프로그램이 버프를 계속 채우는 형식인것 같고, event 방식은 두 개의 버퍼를 사용해서 하나를 재생하면 다른 버프를 사용하면서 빈 버퍼를 채우도록 이벤트를 발생시키는 방식인것 같습니다.
나의 경우는 push 방식을 사용했을때 음악 재생이 몇배 빨리 재생이 되어서 event 방식을 선택을 했습니다.
output 포맷은 자신의 재생 장치가 지원하는 값으로 설정하면 됩니다.
이상으로 foobar2000을 설치하고 WASAPI 를 설정하는 방법을 알아 봤습니다.
실제 사용에 있어서 foobar2000을 사용하여 윈도우즈 태블릿을 음악 소스로 사용하는데 몇가지 문제점이 있었습니다. 이 태블릿이 충전단자와 USB 단자가 하나로 사용하고 있어서 충전중에는 외장 DAC 를 사용할 수 가 없다는 것이었습니다. 윈도우즈 태블릿 선택시 충전단자와 USB 단자가 따로 있는것을 선택하는것이 좋을것 같습니다.
또 한가지 문제는 음악 플레이중 전원 버튼을 눌러 화면을 끄면, 이때 절전 상태로 들어갑니다. 음악 플레이가 중단되는 것입니다. 윈도우즈 자체에 있는 Groove 뮤직 이라는 프로그램은 절전 상태로 들어가도 계속 플레이가 되는데 foobar2000은 한 10여초 플레이 되다가 중단되어 버립니다. 그래서 전원 버튼은 사용하지 못하고, 일정한 시간이 지나면 화면 끄기 기능을 이용해서 사용을 하고 있습니다.
해결책을 좀더 찾아봐야 할것 같습니다.
'프로그래밍 > 운영체제, 서버' 카테고리의 다른 글
VirtualBox로 Linux 서버 만들기 2 - CentOS7 설치하기 (8) | 2018.04.02 |
---|---|
Windows.old 폴더 삭제하기 (2) | 2018.04.02 |
VirtualBox로 Linux 서버 만들기 1 - 설치 및 가상머신 생성 (0) | 2018.04.02 |
CPU 가상화 지원여부 확인하기 (2) | 2018.04.02 |
vi 간단 사용법 (0) | 2018.04.01 |