Set3DReverbParamSoundMem

メモリに読み込んだ音データの3Dサウンド用のリバーブエフェクトパラメータを設定する

Set3DReverbParamSoundMem Param, SoundHandle

Param : 音データに設定するリバーブエフェクトパラメータの構造体のアドレス
SoundHandle : 音の識別番号( サウンドハンドル )

(プラグイン / モジュール : DxLibW)

解説

SetCreate3DSoundFlag を使用して3Dサウンドとして読み込まれた音データのリバーブエフェクトのパラメータを変更します。

リバーブエフェクトのパラメータは構造体 SOUND3D_REVERB_PARAM を使用して変更します。

構造体 SOUND3D_REVERB_PARAM は XAudio2 のリバーブエフェクトパラメータ用構造体 XAUDIO2FX_REVERB_PARAMETERS そのままで、
それぞれのパラメータはサウンドの知識が無いと分からないものになっています。

<構造体 SOUND3D_REVERB_PARAM のメンバー変数>

( 引用元 : MSDN の XAUDIO2FX_REVERB_PARAMETERS 構造体の解説ページ )

// リバーブとなる出力の割合( 指定可能範囲 0.0f ~ 100.0f )
float        WetDryMix ;

// ダイレクト パスに対する初期反射の遅延時間、単位はミリ秒( 指定可能範囲 0 ~ 300 )
unsigned int ReflectionsDelay ;

// 初期反射に対するリバーブの遅延時間、単位はミリ秒( 指定可能範囲 0 ~ 85 )
BYTE         ReverbDelay ;

// 左後方出力および右後方出力の遅延時間、単位はミリ秒( 指定可能範囲 0 ~ 5 )
BYTE         RearDelay ;

// シミュレーション空間における視聴者に対する左入力の位置( 指定可能範囲 0 ~ 30 )
// PositionLeft を最小値に設定した場合、左入力は視聴者の近くに配置されます。
// この位置では、サウンド フィールドにおいて初期反射が優勢になり、残響減衰は弱まって、振幅が小さくなります。
// PositionLeft を最大値に設定した場合、左入力はシミュレーション室内で視聴者から最大限遠い位置に配置されます。
// PositionLeft は残響減衰時間 (部屋の残響効果) に影響せず、視聴者に対する音源の見かけの位置のみに影響します。
BYTE         PositionLeft ;

// PositionLeft と同効果の右入力値( 指定可能範囲 0 ~ 30 )、右入力にのみ影響を与える
BYTE         PositionRight ;

// 音源から視聴者までの距離によるインプレッションを増減させる値( 指定可能範囲 0 ~ 30 )
BYTE         PositionMatrixLeft ;

// 音源から視聴者までの距離によるインプレッションを増減させま値( 指定可能範囲 0 ~ 30 )
BYTE         PositionMatrixRight ;

// 個々の壁の反射特性値( 指定可能範囲 0 ~ 15 )
// ( 堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。)
BYTE         EarlyDiffusion ;

// 個々の壁のリバーブ特性値( 指定可能範囲 0 ~ 15 )、
// ( 堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。)
BYTE         LateDiffusion ;

// 1 kHz における減衰時間を基準にして低周波数の減衰時間調整値( 指定可能範囲 0 ~ 12 )
// 値とゲイン (dB) の関係
// 値          0  1  2  3  4  5  6  7  8  9 10 11 12
// ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1  0 +1 +2 +3 +4
// LowEQGain の値が 8 の場合、低周波数の減衰時間と 1 kHz における減衰時間が等しくなることに注意してください
BYTE         LowEQGain ;

// LowEQGain パラメーターにより制御されるローパス フィルターの折点周波数の設定値( 指定可能範囲 0 ~ 9 )
// 値と周波数 (Hz) の関係
// 値          0   1   2   3   4   5   6   7   8   9
// 周波数(Hz) 50 100 150 200 250 300 350 400 450 500
BYTE         LowEQCutoff ;

// 1 kHz における減衰時間を基準にして高周波数の減衰時間調整値( 指定可能範囲 0 ~ 8 )
// 値とゲイン (dB) の関係
// 値          0  1  2  3  4  5  6  7 8
// ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1 0
// 0 に設定すると、高周波数の音が 1 kHz の場合と同じ割合で減衰します。
// 最大値に設定すると、高周波数の音が 1 kHz の場合よりもはるかに高い割合で減衰します。
BYTE         HighEQGain ;

// HighEQGain パラメーターにより制御されるハイパス フィルターの折点周波数設定値( 指定可能範囲 0 ~ 14 )
// 値と周波数 (kHz) の関係
// 値          0    1    2     3    4     5    6     7    8     9   10    11   12    13   14
// 周波数(kHz) 1  1.5    2   2.5    3   3.5    4   4.5    5   5.5    6   6.5    7   7.5    8
BYTE         HighEQCutoff ;

// 室内エフェクトのローパス フィルターの折点周波数、単位は Hz ( 指定可能範囲 20.0f ~ 20000.0f )
float        RoomFilterFreq ;

// 初期反射と後期フィールド残響の両方に適用されるローパス フィルターの
// パス バンド強度レベル、単位は dB ( 指定可能範囲 -100.0f ~ 0.0f )
float        RoomFilterMain ;

// 折点周波数 (RoomFilterFreq) での初期反射と後期フィールド残響の両方に適用される
// ローパス フィルターのパス バンド強度レベル、単位は dB ( 指定可能範囲 -100.0f ~ 0.0f )
float        RoomFilterHF ;

// 初期反射の強度/レベルを調整値、単位は dB ( 指定可能範囲 -100.0f ~ 20.0f )
float        ReflectionsGain ;

// リバーブの強度/レベルを調整値、単位は dB ( 指定可能範囲 -100.0f ~ 20.0f )
float        ReverbGain ;

// 1 kHz における残響減衰時間、単位は秒 ( 指定可能範囲 0.1f ~ 上限値特になし )、
// これは、フル スケールの入力信号が 60 dB 減衰するまでの時間です。
float        DecayTime ;

// 後期フィールド残響のモード密度を制御値、単位はパーセント( 指定可能範囲 0.0f ~ 100.0f )
// 無色 (colorless) の空間では、Density を最大値 (100.0f ) に設定する必要があります。
// Density を小さくすると、サウンドはくぐもった音 (くし形フィルターが適用された音) になります。
// これはサイロをシミュレーションするときに有効なエフェクトです。
float        Density ;

// 音響空間の見かけ上のサイズ、単位はフィート( 指定可能範囲 1.0f (30.48 cm) ~ 100.0f (30.48 m) )
float        RoomSize ;

なので、通常は XAudio2 のサンプルで用意されているリバーブエフェクトパラメータのプリセットを設定する Set3DPresetReverbParamSoundMem
を使用することになると思います。


<注意>

リバーブエフェクトには XAudio2 が使用できる環境が必要で、且つ DxLib_Init の前で SetEnableXAudioFlag ...

戻り値:
  0:成功

関連項目

Get3DReverbParamSoundMemサウンドハンドルに設定されている3Dサウンド用のリバーブパラメータを取得する(DxLibW)
LoadSoundMem音ファイルをメモリに読みこむ(DxLibW)
PlaySoundMemメモリに読みこんだ音データを再生する(DxLibW)
StopSoundMemメモリに読み込んだ音データの再生を止める(DxLibW)
DeleteSoundMemメモリに読みこんだ音データを削除する(DxLibW)
CheckSoundMemメモリに読みこんだ音データが再生中か調べる(DxLibW)
SetVolumeSoundMemサウンドハンドルのボリュームを設定する( 100分の1デシベル単位 0 ~ 10000 )(DxLibW)
InitSoundMemメモリに読みこんだ音データをすべて消去する(DxLibW)

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib サウンド
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs