週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

Amazon Musicが対応した「排他モード」とは何か~PCオーディオの基礎

2020年03月16日 13時00分更新

オーディオエンジンを避けて、ドライバーに直結

 当時の試行錯誤については省くが、マイクロソフトもこのデメリットは認識していた。そこで2006年リリースの「Windows Vista」で、新しい世代のオーディオシステムであるWASAPIを導入した。記事のテーマである排他モードも、このタイミングで用意されたものとなる。

図 Windowsのオーディオ処理システム(MSDNのサイトより)

 上の図において、ミキサーの役割を果たすのが、オーディオエンジン(Audio Engine)という右側の中央付近にあるプロセスである。共有モード(Shared mode)で動作する際には従来通り、このオーディオエンジンを経由する。ただし、Windows XP時代とは異なりサンプリングレートとビット数は可変で対応できるようになった。

 排他モード(Exclusive mode)については、図を見ていただくと分かるが、オーディオエンジンのブロックをバイパスする経路でドライバー(Audio Driver)に直結している。

 その結果、排他モードではレイテンシーが最小化され、計算負荷が減り、音質もより向上する。また、オーディオエンジンが扱えるのはPCMだけだが、オーディオエンジンを介さない排他モードでは、DSDなどPCM以外のフォーマットも通すことができる。

いくつかの混同しやすいポイントを整理

 さて、Windows環境でPCオーディオをする際には、排他モードに似た概念を持つ「ASIO」がよく取り上げられるが、ASIOはサードパーティー製ドライバーに用いられる規格であり、マイクロソフトがOSの一部として提供するWASAPIとは意味合いが異なる。

 また、アップルはmacOSのオーディオシステムを“Core Audio”と呼称するが、実はオーディオシステム自体をCore Audioと呼称する点は、Windowsでも同じだ。WASAPIは、そのCore Audioに含まれる下位概念である。アプリケーションが、Windowsのオーディオ機能を利用する際に呼び出す各種APIのうち、共有モード/排他モードの切り替えを制御するものがWASAPIであり、よく言われる「MacのCore Audio=WindowsのWASAPI」という理解は正しくない。

 ちなみに、Windowsのミキサー機能は、Windows XPにおいては、OSカーネルと一体化していたため“カーネルミキサー”という名称だった。しかし、Windows VistaでWASAPIが導入されてからはミキサー機能がカーネル空間の外に出た。保護されているという特権はあるが、扱いは一般プロセスと同じになったのだ(上の図でもKernel Modeではなく、User Modeの位置に置かれている)。そのため現在のWindowsでは“カーネルミキサー”とは呼ばずに、単に一般名称の“ミキサー”、あるいは“オーディオエンジン”と呼ばれている。

 これはWindows Vista以降にMicrosoftが進めた、肥大化したOSカーネルを軽量化する流れ(マイクロカーネル化)に沿ったものである。そして、スマホ時代に入って、この流れは逆行するのだが、それはまた別の話、別の機会に。

■関連サイト

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

この連載の記事