목차

WASAPI

Windows Audio Session API

WASAPI는 Microsoft Windows 운영 체제에서 오디오 장치와 상호 작용하기 위한 고급 오디오 API입니다. WASAPI는 응용 프로그램이 오디오 장치와 더 밀접하게 상호 작용하고 오디오트림을 더욱 정밀하게 제어할 수 있도록 설계되었습니다. 이 API는 Windows Vista 이상의 운영 체제에서 사용할 수 있으며, 더 높은 품질과 낮은 레이턴시를 제공하기 위해 개발되었습니다.

WASAPI에는 두 가지 주요 모드가 있습니다.

1. 공유 모드: 이 모드에서는 여러 응용 프로그램이 하나의 오디오 장치를 공유할 수 있습니다. Windows는 오디오트림믹싱 및 관리를 담당하며, 응용 프로그램은 오디오트림을 공유 모드로 열어서 사용합니다. 이 모드는 일반적으로 일반적인 멀티미디어 재생 및 브라우징 세션에서 사용됩니다.

2. 단독 모드: 이 모드에서는 WASAPI를 통해 응용 프로그램이 오디오 장치를 직접 제어합니다. 다른 응용 프로그램은 오디오 장치에 액세스할 수 없으며, 응용 프로그램은 오디오트림을 완전히 제어합니다. 이 모드는 음악 제작 및 오디오 녹음과 같이 높은 품질과 낮은 레이턴시가 필요한 응용 프로그램에서 사용됩니다.

WASAPI를 사용하면 응용 프로그램은 더 정밀한 오디오 제어와 오디오트림의 저지연 재생을 구현할 수 있습니다. 이것은 음악 프로듀서, 음향 엔지니어, 및 오디오 엔지니어링과 관련된 프로젝트에 유용합니다.

WASAPI 작동 구조
WASAPI 작동 구조

WASAPI

WASAPI, short for “Windows Audio Session API,” is an advanced audio API designed for interacting with audio devices on the Microsoft Windows operating system. WASAPI allows applications to have a closer and more precise interaction with audio devices, enabling finer control over audio streams. This API is available on Windows Vista and later versions of the operating system and was developed to provide higher quality audio and lower latency.

WASAPI operates in two main modes:

1. Shared Mode: In this mode, multiple applications can share a single audio device. Windows handles the mixing and management of audio streams, and applications open audio streams in shared mode for use. This mode is typically used for general multimedia playback and browsing sessions.

2. Exclusive Mode: In this mode, applications have direct control over the audio device through WASAPI. Other applications cannot access the audio device, and the application has full control over the audio stream. This mode is used in applications where high-quality and low-latency audio is required, such as music production and audio recording.

Using WASAPI allows applications to achieve more precise audio control and low-latency playback of audio streams. This is particularly useful in projects related to music production, sound engineering, and audio recording.

공유 모드

여러 응용프로그램들이 사운드 장치를 공동으로 이용할 때, Windows의 오디오 믹서에 의해서 하나로 믹싱되어서 출력된다. 이때 소리믹스를 위해서 각기 다양한 소리의 소스가 동일한 비트와 샘플링 레이트로 변환되어야 하므로, 샘플링 레이트 변환(SRC)을 거치게 된다.

공유 모드 자체의 SRC 엔진과 여러가지 어플리케이션의 소리를 섞는 소프트웨어 믹서가 동작하게 되므로, 레이턴시가 생기고, 음질이 하락할 수도 있다.1)

단독 모드

소리를 재생하는 프로그램이 사운드 장치의 제어권을 넘겨 받아서 단독으로 사운드를 바로 출력으로 보낸다. 따라서 비트나 샘플링 레이트를 변환하거나 하는 단계가 없고, 원래의 소리의 소스 그대로의 비트와 샘플링 레이트로 내보낸다.

즉 리샘플링 없이 비트 퍼팩트로 원음 그대로를 내보낸다.

단독 모드이기 때문에, 한 어플리케이션이 소리출력하고 있을 때, 해당 출력 장치를 그 어플리케이션에서 독점하고 있기 때문에, 다른 어플리케이션은 소리를 내지못한다. 하지만 오디오 디바이스가 멀티 클라이언트를 지원하는 오디오 디바이스라면 여러개의 어플리케이션이 동시에 소리를 낼 수도 있다.

모드 설정방법

1)
bit 퍼펙트가 안된다.