Microsoft DirectX 8.0 (C++)

DirectSound と DirectMusic

以前のバージョンの DirectX では、2 つの独立したコンポーネントでオーディオ機能を提供していた。DirectSound と DirectMusic である。DirectSound はデジタル サンプル (ウェーブ) を再生およびキャプチャするためのもので、DirectMusic は単純な MIDI ファイルから、DirectMusic Producer で作成されるミュージック セグメントまで、さまざまなメッセージベースのデータを再生するためのものである。DirectMusic は、DLS を使用することによって音楽以外のサウンド エフェクトを再生できたが、以前はその重点は音楽の再生機能に置かれていた。

DirectX 8 では、DirectMusic インターフェイスがすべてのサウンドのロードおよび再生の主要なメカニズムである。サウンドがウェーブ フォーマット、MIDI フォーマット、DirectMusic Producer フォーマット、またはアドオン ローダーやツールで使用可能な任意の形式のどのファイルまたはリソースとして作成されているかは関係ない。

アプリケーションではウェーブの再生に DirectSound インターフェイスを使用することができ、ウェーブ キャプチャのための API として DirectSoundCapture が残されている。ただし、ほとんどのアプリケーションでは、DirectSound は DirectMusic シンセサイザからダウンストリームの処理を行う。シンセサイザからの出力をエフェクト フィルタにルーティングし、3D エフェクトを適用し、データを出力デバイスにストリーミングする前の最終的なミキシングを行う。

以前に DirectSound を使用していた場合は、ウェーブのロードおよび再生を DirectMusic インターフェイスに切り替えることによって、次のような利点がある。

DirectMusic Producer ファイルに組み込まれるウェーブには、さらにいくつかの利点がある。エンベロープなどの DLS アーテイキュレーション エフェクトをウェーブに追加できる。セグメントに複数のバリエーションのウェーブを含めて、再生にランダムな要素を加えることができる。

これらの利点は、DirectSound によって提供される下位レベルの制御が失われることを意味しない。DirectMusic API によって、オーディオパスの任意のオブジェクトにアクセスできる。既存のバッファのインターフェイスを取得したい場合は、容易に取得できる。フィルタやエフェクトを追加するために、DirectSound API のすべての新機能を利用することもできる。