WASAPI(비교)

r16 vs r17
1[include(틀:마이크로소프트)]
2[[파일:attachment/ASIO/audio_vista_whitepaper_im2.jpg]]
3[목차]
14
5'''W'''indows '''A'''udio '''S'''ession '''API'''
6
7== 개요 ==
8Microsoft에서 [[Windows Vista]] 이후 버전에서 제공하는 Sound Device와 연결을 위한 방법.
9
10== 설명 ==
11[[DirectX|DirectSound]]는 아키텍처상 Hardware Abstract Layer를 지날 때 Kernel Wave Audio Mixer(이하 KMixer)라고 불리는 커널 믹서를 통과하도록 설계되었다.[* kmixer.sys 커널 드라이버 내부를 확인해보면 OS 옵션을 통해 이를 우회하는 조건문이 있기는 하나 일반적인 옵션이 아니다.] 이 KMixer를 통과할 때 음질 열화 및 큰 레이턴시가 일어난다는 문제가 있기 때문에, Vista부터는 이 부분의 아키텍처 자체를 완전히 뜯어고쳐서 KMixer를 배제한 오디오 시스템을 구성하기에 이른다.
12
13[[ASIO]]와 같이 Exclusive Mode(단독 모드)를 지원하기 때문에, 단독 모드로 동작 시에는 리샘플링 없이 비트 퍼펙트로 사운드 드라이버에 데이터를 전송할 수 있으므로 디지털 데이터 전송구간[* 디스크 → 메모리 → (CPU 혹은 DMA) → 사운드카드 경로]에서는 음질 열화가 없다. 그러나 단독 모드라는 이름으로도 알 수 있듯이 다른 프로그램에서 사운드 드라이버에 접근할 수 없도록 하므로 단독 모드를 활성화시킨 프로그램 외에서 발생하는 소리는 들을 수 없게 된다. 예를 들어, 단독 모드로 노래 들으면서 게임을 하면 게임 사운드가 나오지 않는다.
14
15레이턴시가 매우 크게 개선되어[* 해외포럼의 반응들 가운데에는 70ms → 4ms 라는 [[https://github.com/ppy/osu-framework/issues/705|보고]]도 있다. 이는 ASIO를 사용했을 때와 거의 비슷한 결과이다. ASIO는 사운드카드가 전용 드라이버를 제공하거나 유저가 ASIO4ALL을 별도로 설치해야 하는 문제가 있는 반면, WASAPI는 Windows Vista 이상 OS만 설치되어 있으면 바로 동작하므로 ASIO보다 편리하다.], 디지털 오디오 녹음 작업 및 음악 게임 등과 같이 음악의 지연에 민감한 프로그램에서는 DirectSound를 빠르게 대체하고 있다.
16
17Windows Vista 이상의 운영체제에서는 프로그램에서 KMixer가 완전히 삭제되었으며, 프로그램에서 MME나 DirectSound를 사용하면 실제로는 WASAPI(Shared Mode)로 출력된다. 또한 이러한 이유 때문에 [[EAX]]와 같은 하드웨어 가속 기능을 정상적으로 사용할 수 없게 되었으며, 반대로 하드웨어 가속 기능이 없는 내장 사운드 칩셋[* 메인보드에 붙어있는 CODEC에서 신호를 입/출력하는 것이 끝이다. 별도의 프로세서가 없기 때문에 사운드 처리는 모두 CPU에서 이루어진다.]은 WASAPI로 인해 오히려 성능이 향상되는 뜻밖의 이득(?)[* 똑같이 CPU를 사용하지만 처리 방식이 개선되고 우선순위를 정할 수 있게 되어서 실제 성능이 향상되기 때문이다.]을 보게 되었다.
18
19[[Windows Vista]]와 [[Windows 7]]에서는 MME WaveIn/WaveOut API를 사용하는 프로그램에서 샘플 레이트 변환을 요구할 때 품질이 저하되는 버그가 있었다. MME를 WASAPI로 에뮬레이트하는 드라이버에 문제가 있었기 때문인데, 이 문제는 Windows 7 SP1 및 [[Windows Server 2008 R2]] SP1 한정으로 [[http://support.microsoft.com/kb/2653312|핫픽스]]를 설치해주면 해결된다. 마이크로소프트에서 핫픽스 제공을 중단했기 때문에 다른 사이트에서 구해야 한다. [[http://thehotfixshare.net/board/index.php?showtopic=16966|64비트]] [[http://thehotfixshare.net/board/index.php?showtopic=16967|32비트]] [[Windows 8]]부터는 해결되어서 따로 적용할 필요가 없다.
20== 플레이어 세팅법 ==
21기본 형식 설정 방법은 다음과 같다.
22 * 제어판 - 소리 - 스피커나 헤드폰 등 자신이 사용하는 장치 더블 클릭 - 고급에서 기본형식을 변경
23
24[[반디캠]], [[골드웨이브]], [[곰녹음기]](2.0 이후) 등에서는 WASAPI를 이용해서 녹음하는 것도 가능하다. 출력되는 소리를 Loopback 방식으로 녹음하는 것이기 때문에 음질이 손상되지 않으며, 시스템 마스터 볼륨의 영향을 받지 않는다. 또한 스테레오 믹스가 없는 사운드 카드에서도 녹음을 할 수 있다는 장점이 있다.
25
26== 관련 링크 ==
27 * [[DAW]]
28 * [[ASIO]]
29 * [[EAX]]
30
31[[분류:Microsoft]]