DirectSoundとは
DirectSoundは、
マイクロソフトが提供するDirectXの一部であり、Windows環境で標準的に用いられる音声入出力機能です。アプリケーションとサウンドカード間の直接的なインターフェースとして機能し、音や音楽の再生を可能にします。
DirectSoundの主な機能
DirectSoundは、単にオーディオデータをサウンドカードに送るだけでなく、録音やミキシングといった高度な機能も備えています。例えば、以下のような機能があります。
サウンドエフェクト(リバーブ、エコーなど)の付加
再生速度の調整
3次元空間内での音源位置の制御(3Dオーディオ)
マイクなどからの録音
録音時のエフェクト制御
また、複数のアプリケーションが同時にサウンドカードへアクセスできる便利な機能も提供し、ゲーム内でのイベントに合わせた音楽の変化や、3Dオーディオによる臨場感あふれるサウンド体験を可能にします。DirectSoundは長年の開発を経て、複数チャンネル再生や高精細な音声出力など、成熟したAPIとして多くの機能を提供しています。ゲーム業界での利用が中心でしたが、現在ではプロ向けのオーディオアプリケーションにも活用されています。
DirectSound3D
DirectSound3D (DS3D) は、DirectXに追加されたWindows標準の3Dオーディオ機能です。1996年、DirectX 3で導入されました。DirectSound3Dは、各サウンドカードメーカー向けに個別のコードを書く代わりに、標準化されたオーディオAPIを通じて3Dオーディオ処理を可能にしました。DirectX 5では、マイクロソフト提供の機能を用いてサードパーティ製の3DオーディオアルゴリズムをDirectSound3D上で利用できるようになり、3Dオーディオライブラリを分離する必要がなくなりました。
DirectX 8では、DirectSoundとDirectSound3DはDirectMusicと統合され、DirectX Audioという名称に変わりました。
DirectSound 3Dによる3D音源は、実際にはエコーやリバーブといった環境音のエフェクトや、リスナーと音源の位置関係を簡易的に計算するライブラリが主体であり、音の物理的な伝播をシミュレートしているわけではありません。
Windows OSでのサポート
Windows 95, 2000/XP
これらのバージョンではDirectSoundは標準的にサポートされていました。
Windows Vista/7
Windows Vistaでは、オーディオスタックがUniversal Audio Architecture (UAA) に基づき完全に書き直されました。その結果、DirectSoundからオーディオドライバへの直接のパスがなくなり、DirectSoundとMMEはWASAPIインターフェイスを通じてエミュレートされる形になりました。このエミュレーションによってハードウェアアクセラレーションは利用できなくなり、DirectSoundに依存していた一部のソフトウェアではパフォーマンスが低下する可能性がありました。しかし、ASIOやOpenALといったAPIは影響を受けず、サウンドカードのドライバが対応していればハードウェアアクセラレーションを利用できました。
Windows 8
Windows 8では、デスクトップアプリではDirectSoundが利用可能であるものの、Windowsストアアプリ(WinRTアプリ)では利用できなくなり、XAudio2が代わりに利用されることになりました。
Windows CE
DirectSoundはWindows CE 4.2までサポートされていましたが、5.0以降は削除されました。Windows CE 6.0では、Waveform Audio APIを利用した開発が推奨されています。
XAudio2
マイクロソフトは、Xbox 360とWindowsの統合を進めるため、新しいアプリケーションをXAudio2やXACTといったXboxと同等のオーディオAPIに移行させることを推奨しています。XAudio2は、クロスプラットフォーム(WindowsとXbox)で共通利用できる低レベルオーディオAPIであり、Xbox専用のXAudio APIをさらに進化させたものです。
XAudio2は、Windows XPではDirectSoundを、Windows VistaではWASAPIを、そしてXboxではコンソールハードウェアレイヤーを使用して実装されています。
XAudio2は以下のような特徴的な機能を提供します。
「声」からの音データ分離
サブミキシング
マルチレート処理
音声ごとのフィルタリング
プログラマブルな音声処理
エフェクト処理、サンプルレート変換
ソフトウェアDSP
マルチチャンネルサウンドと明示的なパンニング/マッピング
ネイティブ圧縮データのサポート
3Dオーディオ処理
XAudio2は、XACTという高レベルなオーディオAPIを通して利用でき、X3DAudioライブラリで3D機能を利用可能です。Windows SDK 8.0以降ではDirectX SDKと統合され、XACTは廃止されました。
DirectSoundの課題と代替API
DirectSoundは、ASIOやWASAPIのようなAPIと比較して、低遅延やビットパーフェクト(データの完全性)が保証されないため、商業レベルの音楽制作のような特殊な用途には不向きです。これらのAPIは、サウンドカードのハードウェアアクセラレーションを直接利用できるため、より高性能なオーディオ処理が可能です。
関連項目
DirectX Audio
DirectMusic
XACT
Windows Multimedia Extensions (MME)
Media Control Interface (MCI)
Core Audio (Windows)
WASAPI
レイテンシ
VST
ASIO
Core Audio (アップル)
* Sound Manager