다이렉트 사운드

DirectSound

DirectSound는 Windows 운영 체제용 Microsoft DirectX 라이브러리에서 사용되지 않는 소프트웨어 구성 요소로, XAudio2로 대체되었습니다.Windows 95 ~ Windows XP 용으로 작성된 사운드 카드 드라이버에 저레이텐시 인터페이스를 제공해, 복수의 오디오 스트림의 믹싱과 녹음을 처리할 수 있습니다.DirectSound는 원래 John [1]Miles에 의해 Microsoft용으로 작성되었습니다.

DirectSound는 사운드 카드에 오디오 데이터를 전달하는 기본적인 서비스를 제공하는 것 외에 녹음 및 믹싱, 사운드 효과(리버브, 에코, 플랜지 등), Windows 95에서 XP까지의 하드웨어 액셀러레이션 버퍼 사용, 3D 공간에서의 사운드 위치 설정 등의 기타 필수 기능을 제공합니다.DirectSound는 또한 마이크 또는 기타 입력에서 소리를 캡처하고 오디오 [2]캡처 시 캡처 효과를 제어하는 수단을 제공합니다.

오랜 개발 끝에 오늘날 DirectSound는 성숙한 API로 멀티채널 사운드를 고해상도로 재생할 수 있는 등 많은 유용한 기능을 제공합니다.DirectSound는 게임에서 사용하도록 설계되었지만 오늘날에는 많은 오디오 애플리케이션에서 오디오를 재생하는 데 사용됩니다.DirectShow는 사운드 카드의 하드웨어 오디오 액셀러레이션 기능이 존재하며 오디오 [3]드라이버에 의해 표시되는 경우 DirectSound의 하드웨어 오디오 액셀러레이션 기능을 사용합니다.

특징들

DirectSound는 응용 프로그램과 사운드 카드 드라이버 의 인터페이스를 제공하는 사용자 모드 API로 응용 프로그램이 소리를 생성하고 음악을 재생할 수 있도록 합니다.

다이렉트사운드는 1995년에 도입되었을 때 여러 개의 동시 오디오 스트림을 갖추고 여러 개의 애플리케이션이 사운드 카드에 동시에 액세스할 수 있도록 해 혁명적인 것으로 간주되었습니다.그 이전에는 게임 개발자가 자체 오디오 렌더링 엔진을 소프트웨어에 구현해야 했습니다.

DirectSound는 무제한의 오디오 소스에 샘플 레이트 변환과 사운드 믹싱(볼륨과 팬)을 제공합니다.단, 실제적인 제한은 하드웨어 오디오 소스의 수와 소프트웨어 믹서의 퍼포먼스입니다.

DirectSound 아키텍처는 사이클에 따라 지속적으로 재생되는 "링 버퍼"의 개념을 특징으로 합니다.응용 프로그램 프로그래머는 사운드 버퍼를 만든 후 "읽기 커서"를 통해 상태를 지속적으로 쿼리하고 "쓰기 커서"로 업데이트합니다.버퍼에는 2종류의 버퍼가 있습니다.배경음악 등의 연속음을 저장하는 "스트리밍" 버퍼와 짧은 소리를 저장하는 "스태틱" 버퍼입니다.

지원되는 사운드 카드에서는 DirectSound는 로컬 사운드 카드 메모리에 배치하거나 시스템 메모리에서 사운드 카드에 액세스할 수 있는 "하드웨어 가속" 버퍼를 사용하려고 합니다.하드웨어 액셀러레이션을 사용할 수 없는 경우 DirectSound는 시스템 메모리에 오디오버퍼를 생성하여 순수하게 소프트웨어 믹싱을 사용합니다.

Sound Blaster AWE32와 Gravis Ultrasound와 같은 DOS 시대의 "웨이브테이블" 사운드 카드에는 디지털 악기에서 빌린 전용 DSP가 포함되어 있습니다.이러한 카드에는 로컬 메모리가 탑재되어 있어 여러 오디오 스트림을 버퍼링하여 온보드 상에서 혼합할 수 있기 때문에 CPU의 부하가 경감되어 음질이 대폭 향상되었습니다.그러나 이는 DOS에서 하드웨어를 직접 프로그래밍하는 것만으로 가능했으며 이중 버퍼링이 복잡하기 때문에 로컬 메모리에서 풀 기능의 "하드웨어 액셀러레이션"은 이들 카드에 구현되지 않았습니다.Sound Blaster Live!, Audigy, X-Fi 의 최신 카드는 시스템 메모리 버퍼에 직접 액세스할 수 있습니다.

다이렉트 사운드 3d

DirectSound3D(DS3D)는 Windows에서 3D 오디오를 표준화할 목적으로 1996년에 DirectX3에 도입된 DirectSound의 확장판입니다.DirectSound3D를 사용하면 소프트웨어 개발자는 오디오 카드 벤더별로 코드를 여러 번 다시 쓰는 대신 단일 오디오 API를 한 번 작성하여 오디오를 활용할 수 있습니다.

DirectX 5에서는 DirectSound3D가 마이크로소프트가 승인한 방법을 통해 DirectSound3D를 적절히 가속하기 위해 서드파티 3D 오디오 알고리즘을 사용하는 사운드 카드를 지원하게 되었습니다.

DirectX 8에서는 DirectSound와 DirectSound3D(DS3D)가 공식적으로 병합되어 DirectX Audio라는 이름이 붙었지만 API는 여전히 DirectSound로 통칭됩니다.

EAX

EAX는 DirectSound 및 DirectSound3D의 확장 기능으로 하드웨어 가속 버퍼에 효과음 처리를 제공합니다.

OS 지원

윈도 95

Windows 95, 98 및 Me에서는 DirectSound 믹서 컴포넌트와 사운드카드 드라이버가 모두 커널 모드 VxD 드라이버(Dsound.vxd)로 구현되어 오디오하드웨어에 의해 사용되는 프라이머리 버퍼에 직접 액세스 할 수 있게 되어 사용자 모드 API와 기본 하드웨어 간에 가능한 한 짧은 지연을 제공하지만 경우에 따라서는 원인이 되기도 합니다.불안정성블루스크린 오류.

Windows 98은 WDM 오디오와 커널 오디오 믹서 드라이버(KMixer)를 도입하여 커널 스트리밍뿐만 아니라 고품질의 샘플 레이트 변환으로 동시 오디오 스트림의 디지털 믹싱, 라우팅 및 처리를 가능하게 했습니다.WDM에서 DirectSound는 소프트웨어 기반 KMixer로 데이터를 전송합니다.Windows 98 Second Edition에서는 DirectSound 하드웨어 버퍼링, DirectSound3D 하드웨어 추상화, 캡처 스트림용 KMC(KMixer 샘플링 레이트 변환), 멀티채널 오디오 지원 DirectMusic 도입으로 WDM 오디오 지원이 향상되었습니다.오디오 하드웨어가 하드웨어 믹싱(하드웨어 버퍼링 또는 DirectSound 하드웨어 액셀러레이션이라고도 함)을 지원하는 경우 DirectSound는 렌더링 [4]장치에 직접 버퍼링합니다.DirectSound 스트림이 하드웨어 믹싱을 사용하는 경우 KMixer 및 지연은 [5]바이패스됩니다.Windows 98 및 Windows Me에서는 WDM 오디오 드라이버가 선호되었지만 VxD 드라이버 모델과의 호환성은 유지되었습니다.

Windows 98부터는 Windows 드라이버 모델(WDM)을 사용할 수 있었지만, 오디오 카드 제조원은 거의 없었습니다.내부 버퍼링으로 인해 KMixer는 상당한 처리 지연을 발생시켰습니다(당시 현재의 시스템에서는 30밀리초).또한 Windows 98에는 이러한 실시간 멀티미디어 데이터 스트림 처리 요건에 대응하는 WDM 스트리밍 클래스 드라이버(Stream.sys)가 포함되어 있습니다.사운드 카드가 시스템 공급 포트 클래스 드라이버 PortCls.sys에서 사용하는 커스텀드라이버를 사용하거나 스트리밍 클래스 드라이버에서 사용하는 미니 드라이버를 실장하는 경우 응용 프로그램은 KMixer를 완전히 바이패스하고 커널 스트리밍 인터페이스를 사용하여 지연을 줄일 수 있습니다.

Windows 2000/Xp

Windows 2000 에서는, Microsoft 는 WDM 오디오 드라이버와 커널 믹서 컴포넌트(KMixer)[6]를 도입해, Windows NT 에 같은 WDM 베이스의 오디오 스택을 실장했습니다.Windows XP 에서는, Microsoft 는 또 다른 개량된 커널 스트리밍 클래스 드라이버인 AVStream 을 도입했습니다.Windows XP 에서는, USB 마이크의 어쿠스틱 에코 캔슬레이션, 노이즈 억제, 어레이 마이크의 서포트등의 DirectSound 캡처 효과[7] 처리에도 하드웨어 액셀러레이션이 추가되었습니다.

Windows Vista/Windows 7

Windows Vista 에는, 유니버설·오디오·아키텍쳐(architecture)에 근거해 완전하게 고쳐 쓴 오디오·스택이 있습니다.재설계된 오디오 스택의 아키텍처 변경으로 인해 DirectSound에서 오디오 드라이버로의 직접 경로는 [8]존재하지 않습니다.DirectSound, DirectMusic기타 API(MME 등)는 WASAPI 세션인스턴스로 에뮬레이트 됩니다DirectSound는 Microsoft 소프트웨어 믹서에서 에뮬레이션 모드로 실행됩니다.이 에뮬레이터에는 하드웨어 추상화가 없기 때문에 하드웨어 DirectSound 액셀러레이션이 없습니다.즉, DirectSound 액셀러레이션에 의존하는 하드웨어 및 소프트웨어의 성능이 저하될 수 있습니다.애플리케이션이나 실제 시스템 하드웨어에 따라서는 퍼포먼스에 대한 영향이 눈에 띄지 않을 수 있습니다.DirectSound3D를 사용하여 재생되는 하드웨어 3D 오디오 효과의 경우 재생할 수 없습니다.또한 [9]EAX 확장과의 호환성도 깨집니다.

ASIOOpenAL 등의 서드파티 API는 IOCtl을 사용하여 오디오 드라이버와 직접 인터페이스하기 때문에 Windows Vista의 아키텍처 변경에 영향을 받지 않습니다.하드웨어 액셀러레이션의 고품질 3D 포지셔닝 오디오를 활용하는 어플리케이션의 솔루션은 OpenAL을 사용하는 것입니다.단, 이는 제조업체가 오픈을 제공하는 경우에만 작동합니다.하드웨어용 [10]AL 드라이버.

윈도 8

Windows 8 의 WASAPI 오디오 스택에서는,[11][12] Vista 로 도입된 소프트웨어 처리에 가세해 복수의 오디오 스트림을 오디오 카드에 「하드웨어 오프로드」하는 서포트가 도입되어 있습니다만, 이 기능은 Windows Runtime 애플리케이션 [13]전용입니다.DirectSound 및 DirectMusic의 사운드 카드 드라이버 하드웨어 인터페이스는 구현되어 있지 않습니다.

Windows CE

DirectSound 지원은 Windows CE 버전 4.2에서 사용 가능했지만 5.0부터는 삭제되었습니다.[14]또한 Windows CE 6.0은 DirectSound를 지원하지 않으며 대신 Waveform Audio API를 사용하도록 응용 프로그램을 다시 쓰는 것을 선호합니다.

대체 실장

Windows Vista 로 DirectSound 를 삭제한 후, 몇개의 대체 실장이 등장했습니다.

Sound Blaster의 Creative ALchemy(2007)는 DirectSound3D 및 오디오 이펙트(EAX [15]등)의 하드웨어 액셀러레이션을 제공합니다.Creative ALChemy가 DirectSound3D 호출을 대행 수신하여 Open으로 변환AL 콜은 Sound Blaster X-Fi 및 Sound Blaster Audigy 의 지원되는 하드웨어에서 처리됩니다.소프트웨어 기반의 크리에이티브 오디오 솔루션에서는 ALchemy는 Open을 사용하지 않고 내장 3D 오디오 엔진을 사용합니다.전혀 그렇지 않아요.

통합 HD 오디오 코덱 제조사인 리얼텍은 3D 사운드백이라는 ALChemy와 유사한 제품을 가지고 있다.PC 사운드카드 칩셋 제조업체인 C미디어도 Xear3D EX라는 솔루션을 보유하고 있지만 사용자 개입 없이 DirectSound3D 통화를 백그라운드에서 투명하게 가로채는 방식으로 작동한다.

IndirectSound는 하드웨어 [16]가속을 사용하지 않고 XAudio2를 사용하여 DirectSound 3D를 에뮬레이트하는 프리웨어 라이브러리입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "The Evolution of DirectX". Maximum PC. 3 (9): B8. October 1998. Retrieved July 21, 2019.
  2. ^ 직접 사운드 캡처 효과: MSDN
  3. ^ DirectShow FAQ
  4. ^ DirectSound 드라이버 모델
  5. ^ DirectSound 하드웨어 액셀러레이션 개요
  6. ^ CakeWalk - Windows Pro 오디오 라운드 테이블
  7. ^ 하드웨어 가속 캡처 효과 노출
  8. ^ "Techreport article on Vista-ready soundcards". 15 January 2008. Retrieved 2008-12-23.
  9. ^ 크리에이티브 테크놀로지 - 지원 - Windows Vista 오디오
  10. ^ "OpenAL and Windows Vista". Archived from the original on 2008-01-02. Retrieved 2008-01-10.
  11. ^ 오디오 오프로드: Windows에서의 하드웨어 오프로드 오디오 처리 노출
  12. ^ Windows 드라이버 키트 - Windows 개발자 미리보기 - 오디오 드라이버의 새로운 기능
  13. ^ "Implementation Overview - Windows drivers Microsoft Docs".
  14. ^ Windows CE 5.0 기능 삭제
  15. ^ "Creative ALchemy website". Archived from the original on 2008-12-17. Retrieved 2008-12-23.
  16. ^ 간접 사운드

외부 링크