DirectSound と DirectMusic
DirectSound と DirectMusic は DirectX の別のコンポーネントだが、一部の機能は共通している。どちらも WAV サウンドを再生するが、DirectMusic は、すべてのサウンドを合成してウェーブフォームを生成し、最終的に DirectSound バッファを通して再生する。
DirectMusic はさらに機能の豊富な API で、ゲームや他の対話型アプリケーションのほとんどのオーディオ シナリオに対して完全なソリューションを備えている。名前は DirectMusic であるが、音楽以外のサウンド エフェクトを含むあらゆる種類のサウンドを再生する。DirectSound は、ハードウェア リソースの下位レベルの管理を必要とするシナリオに適した API である。たとえば、システム リソースを使って可能な限り短い遅延時間で再生しなければならない短いサウンドが多数あるゲームなどである。
DirectMusic を使って他のコンテンツを再生しているアプリケーションであっても、それとは別に DirectSound API を使って WAV サウンドを再生できる。また、DirectSound を使えば、DirectMusic によって管理されているサウンド バッファを操作できる。たとえば、DirectMusic オーディオパスから DirectSound を取得して、3D 間を移動できる。
次の表は、2 つの API で提供される機能をまとめたものである。
機能 | DirectMusic | DirectSound |
WAV サウンドの再生 | あり | あり |
MIDI の再生 | あり | なし |
DirectMusic Producer セグメントの再生 | あり | なし |
コンテンツ ファイルのロードとオブジェクトの管理 | あり | なし。ただし、サンプル コードでは若干のサポートあり。 |
実行時のミュージック パラメータの制御 | あり | なし |
サウンドの挿入に対するタイムラインの管理 | あり | なし |
ダウンローダブル サウンド (DLS) の使用 | あり | なし |
個別のサウンドのボリューム、ピッチ、パンの設定 | あり。DirectSound API を利用。 | あり |
複数のサウンド (オーディオパス) へのボリュームの設定 | あり | なし |
3D サウンドの実装 | あり。DirectSound API を利用。 | あり |
エフェクトの適用 (DMO) | あり。DirectMusic Producer のコンテンツまたは DirectSound API を利用。 | あり |
ミックスイン (送信) エフェクトに対するチェーン バッファ | あり。DirectMusic Producer のコンテンツを利用。 | なし |
WAV サウンドのキャプチャ | なし | あり |
全二重の実装 | なし | あり |
MIDI のキャプチャ | あり | なし |
ハードウェア バッファの割り当ての制御 | なし | あり |