ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MME, DirectX, WDM, ASIO, GSIF, EASI
    컴퓨터 Tip 2009. 5. 22. 10:08
    반응형

    인터넷에서 퍼온 글이며, 내용을 조금(?) 수정했습니다.

    MME (Multimedia Extensions)

    윈도 3.1 부터 지원되는 표준 오디오 드라이버. MME 드라이버는 호환성을 중시하기 때문에 대다수 audio card에 잘 잘동하며 PC에 장착되는 왼만한 audio card는 기본적으로 이 MME 드라이버를 지원한다. 하지만 audio 드라이버 중에 가장 낮은 성능을 보이며 높은 cpu점유율. Latency가 보통 300ms~500ms 정도의 높은 수치를 보인다. 윈도우 기본 효과음들 재생시 사용되며 윈엠프등 사운드 재생 프로그램의 디폴트 아웃풋.


    DirectX (Direct Sound)


    윈도 95 부터 추가된 드라이버. 윈도우 3.1에서 게임을 제작 할 때 DOS 모드의 게임에 비해 그래픽이나 오디오 처리속도가 상당히 늦어져 게임을 제대로 할 수 없는 경우가 없게 되었고, Microsoft에서 이 문제를 해결하기위해 DirectX를 만들게 되었다. Direct Sound는 DriectX 드라이버에서 오디오 관련부분을 말하며 Latency 200ms~40ms까지 낮추어 준다. cpu점유율도 상당히 낮으며, MME에 비해 월등한 성능을 보여준다. 게임 제작사에서는 거의 표준 규격으로 자리 잡고 있으며 현재 윈도우XP 서비스팩2에는 기본적으로 DirectX 9.0을 포함하고 있다. MME와 마찬가지로 현재 대부분 audio card들이 이 드라이버를 지원하고 있지만, 역시나 많은 음악가들에게서는 만족스럽지 못한 성능을 보여준다.


    WDM (Windows Driver Model)


    윈도 ME 부터 표준화된 드라이버 모델. (윈도 98 SE도 지원은 하는 듯)

    WDM 이란 윈도우환경에서 디바이스 드라이버를 작성하는 방법을 획일화한 것. (기존의 드라이버 제작 방식을 VxD이라 함.)
    WDM 으로 디바이스 드라이버를 작성하면, 윈도우의 확장버젼이 나오더라도 쉽게 디바이스 드라이버 코드를 그대로 사용할 수 있는 장점이 있다.
    기존에 윈도 드라이버는 윈도 98용 / 윈도NT용 등 OS별로 각각 개발해야했었는데, 이런 불편을 줄이고 하나의 규격화된 드라이버로 각각의 운영체제에서 모두 사용 가능하도록 하자는 취지로 만들어진 개발 모델이다. 

    WDM 규격은 사운드 뿐만 아니라 다양한 디바이스들에서도 사용된다.

    WDM의 드라이버 클래스는 USB, IEEE 1394, audio, still image capture, video capture, USB 마우스, 키보드, joystick 과 같은 HID-compliant 디바이스 등을 포함한다. 또한 파워 관리와 PnP확장 및 minidriver와 Kernel-mode 드라이버를 작성하기 위한 모델을 제공한다.


    오디오에 관련된 부분만 보자면.

    Latency가 3ms~10ms까지 낮아졌다. 초기의 WDM 드라이버는 많은 오류를 가지고 있었다. 그래서 인지(?) Sonar는 초기에 MME와 WDM/KS (커널 스트리밍)만을 지원했지만, Sonar 2.2부터는 ASIO 2.0도 지원한다. 요즘에는 WDM 드라이버에 ASIO를 이식시킨 변종(?) 드라이버들(ESI의 다이렉트 와이어 지원 드라이버, ASIO4ALL 등)도 저레이턴시에서 휙휙 날아다니는 것 보면....

    GSI/F (GIGA Sampler Inerface)


    Nemesys사에서 개발한 드라이버이다. Latency가 3ms~5ms로 가장 좋은 성능을 가지고 있지만 GIGA Studio에서만 사용 할 수 있기 때문에 그리 대중적이지 못한 드라이버이다.


    EASI (Enhanced Audio Streaming Interface)


    독일 Emagic사가 개발. Cubase VST를 지원하는 ASIO 2.0에 대항하여 나온 드라이버로 Logic Audio를 위해 나온 드라이버. 성능은 5ms~20ms의 상당히 낮은 Latency를 보여주지만 안정성에 문제가 있어 그리 큰 인기를 누리지 못하였다. 더군다나 ASIO 2.0이 오히려 Logic Audio에서 더욱 안정적이고 뛰어난 성능을 보이게 되었고, Emaigc사가 Apple로 넘어가면서 PC 기종에서의 지원이 중단되었다.

    ASIO (Audio Streaming Input Output)


    Steinberg사에서 만들어낸 공개 오디오 드라이버이다. 즉, 오디오 스트리밍 데이터를 입출력하는 드라이버라는 뜻이다. 중요한 것은 단지 "입출력"을 한다는 것이지 음질을 향상시키거나, 이펙터나 연산과 같은 기능을 지원하는 것이 아니다. 그런데 단순 입출력만을 하는 드라이버를 굳이 따로 제작, 사용하는 이유는 바로 지연 시간(Latency) 없는 빠른 입출력이 필요하기 때문이다.

    Steinberg사에서 Cubase를 제작시, 기존 윈도 기본 오디오 드라이버들은 오디오 하드웨어를 직접 엑세스하지 않고, 윈도우 내부의 처리과정들을 거치는 데 이때 100ms(0.1초) 정도의 Latency가 발생하는 문제를 발견(?)했다. 그래서 이를 해결하기 위해 Steinberg에서 Sound card를 직접적으로 액세스하는 드라이버를 만들게 되었고 그게 바로 ASIO 드라이버이다.

    그리고 Steinberg사는 이 ASIO 규격을 공개하고, 수많은 회사들이 사용하게 되면서 컴퓨터 음악의 표준으로 자리 잡게 된다. 1.0규격에서 2.2규격까지 나와 있다.


    반응형
Designed by Tistory.