Microsoft DirectX 8.0 (Visual Basic)

DSBUFFERDESC

新しい DirectSound バッファ オブジェクトの必要な特徴を記述する。この型は、DirectSound8.CreateSoundBuffer および DirectSound8.CreatePrimarySoundBuffer メソッドで使われる。

Type DSBUFFERDESC
    fxFormat As WaveFormatEx
    guid3DAlgorithm As String
    lBufferBytes As Long 
    lFlags As CONST_DSBCAPSFLAGS 
End Type

メンバ

fxFormat
バッファのウェーブ フォーマットを指定する WAVEFORMATEX 型。
guid3DAlgorithm
ハードウェアで 3D エフェクトを利用できないときに、DirectSound が使う二重スピーカの仮想アルゴリズムの一意な識別子。サウンド バッファに DSCAPS_CTRL3D フラグが設定されていない場合、この値は無視される。DSBCAPS_CTRL3D が lFlags に設定されていない場合、このメンバは GUID_DS3DALG_DEFAULT でなければならない。「注意」を参照すること。

AUDIOSTRINGCONSTANTS モジュールに、次のアルゴリズム識別子が定義されている。

GUID_DS3DALG_DEFAULT
DirectSound はデフォルト アルゴリズムを使用する。デフォルト アルゴリズムは、コントロール パネルの設定に基づく場合がある。多くの場合は、DS3DALG_NO_VIRTUALIZATION である。WDM ドライバでは、ユーザーがコントロール パネルでサラウンド サウンドを選択している場合、サウンドは、左、中央、右、およびサラウンド チャンネルにパンされる。

ソフトウェア ミキシングのみに適用される。WDM または VxD ドライバで利用できる。

GUID_DS3DALG_NO_VIRTUALIZATION
3D エフェクトは、標準のステレオのパンにマップされる。左に 90°のとき、サウンドは左スピーカだけから聞こえ、右に 90°のとき、サウンドは右スピーカだけから聞こえる。垂直軸では、距離によってボリュームが調節されるだけである。このバッファでは、ドップラー シフトとボリューム調節は適用されるが、3D フィルタリングは行われない。これは最も効率的なソフトウェアの実装であるが、仮想 3D オーディオ エフェクトは提供しない。DS3DALG_NO_VIRTUALIZATION フラグを指定すると、HRTF 処理は行われない。DS3DALG_NO_VIRTUALIZATION は標準のステレオのパンのみを使うので、このアルゴリズムで作成されたバッファは、3D ハードウェア ボイスの空きを利用できない場合、2D ハードウェア ボイスによってアクセラレートされる。

ソフトウェア ミキシングのみに適用される。WDM または VxD ドライバで利用できる。

GUID_DS3DALG_HRTF_FULL
3-D エフェクトは、高品質な 3D オーディオ アルゴリズムで処理される。このアルゴリズムは最高品質の 3D オーディオ エフェクトを与えるが、より多くの CPU サイクルを使う。「注意」を参照すること。

ソフトウェア ミキシングのみに適用される。WDM ドライバを使った、Microsoft® Windows® 98 Second Edition および Windows 2000 で利用できる。

GUID_DS3DALG_HRTF_LIGHT
3D エフェクトは、効率的な 3D オーディオ アルゴリズムで処理される。このアルゴリズムは優れた 3D オーディオ エフェクトを与え、DS3DALG_HRTF_FULL ほど CPU に負荷をかけない。「注意」を参照すること。

ソフトウェア ミキシングのみに適用される。WDM ドライバを使うと、Windows 98 Second Edition および Windows 2000 で利用できる。

lBufferBytes
バッファのサイズ (バイト単位)。DSBCAPS_PRIMARYBUFFER フラグを使用してバッファを作成した場合、この値は 0 でなければならない。セカンダリ バッファのサイズは、4 から &H0FFFFFFF (268,435,455) までの範囲でなければならない。
lFlags
バッファの能力を識別するフラグ。0、または CONST_DSBCAPSFLAGS 列挙の 1 つ以上の定数を指定する。

注意

DSBCAPS_LOCHARDWARE および DSBCAPS_LOCSOFTWARE フラグはオプションであり、互いに排他的である。DSBCAPS_LOCHARDWARE は、強制的にバッファをハードウェアに配置する。これは、バッファがサウンド カードによってミキシングされることを意味する。DSBCAPS_LOCSOFTWARE は、強制的にバッファをソフトウェアに配置する。この場合、バッファは CPU によってミキシングされる。これらのフラグは DSBCAPS 型の lFlags メンバにも返され、バッファの実際の場所を示す。

3D アルゴリズムは、ソフトウェア エミュレーション レイヤのみの選択を行う。これは、アクセラレーション用のハードウェアがない場合に使われるソフトウェア アルゴリズムである。ハードウェアの利用を最大にするために、DS3DALG_NO_VIRTUALIZATION は特別な場合として扱われる。3D ハードウェア ボイスの空きを利用できない場合、バッファは 3D API コントロールと共に 2D バッファとして扱われる。特に、サウンド バッファを DS3DALG_NO_VIRTUALIZATION で作成する場合、または DSBPLAY_LOCDEFER で作成されたバッファを再生する場合は、次の手順に従う。

DSSPEAKER_HEADPHONE または DSSPEAKER_STEREO 以外のスピーカ構成が有効な場合、処理は二重スピーカ構成に対する処理と同じように行われる。

バッファが HRTF アルゴリズムのいずれかを使って作成され、システムで HRTF アルゴリズムを利用できない場合 (たとえば、非 WDM システムである場合)、メソッドは成功するが、サウンド バッファは代わりに DS3DALG_NO_VIRTUALIZATION を使う。