move default reverb params to a static var

pull/51/head
cosmonaut 2023-09-12 15:24:45 -07:00
parent be77e8bad1
commit 1bff459be6
1 changed files with 34 additions and 33 deletions

View File

@ -8,6 +8,33 @@ namespace MoonWorks.Audio
/// </summary> /// </summary>
public unsafe class ReverbEffect : SubmixVoice public unsafe class ReverbEffect : SubmixVoice
{ {
// Defaults based on FAUDIOFX_I3DL2_PRESET_GENERIC
public static FAudio.FAudioFXReverbParameters DefaultParams = new FAudio.FAudioFXReverbParameters
{
WetDryMix = 100.0f,
ReflectionsDelay = 7,
ReverbDelay = 11,
RearDelay = FAudio.FAUDIOFX_REVERB_DEFAULT_REAR_DELAY,
PositionLeft = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION,
PositionRight = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION,
PositionMatrixLeft = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX,
PositionMatrixRight = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX,
EarlyDiffusion = 15,
LateDiffusion = 15,
LowEQGain = 8,
LowEQCutoff = 4,
HighEQGain = 8,
HighEQCutoff = 6,
RoomFilterFreq = 5000f,
RoomFilterMain = -10f,
RoomFilterHF = -1f,
ReflectionsGain = -26.0200005f,
ReverbGain = 10.0f,
DecayTime = 1.49000001f,
Density = 100.0f,
RoomSize = FAudio.FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE
};
public ReverbEffect(AudioDevice audioDevice, uint processingStage) : base(audioDevice, 1, audioDevice.DeviceDetails.OutputFormat.Format.nSamplesPerSec, processingStage) public ReverbEffect(AudioDevice audioDevice, uint processingStage) : base(audioDevice, 1, audioDevice.DeviceDetails.OutputFormat.Format.nSamplesPerSec, processingStage)
{ {
/* Init reverb */ /* Init reverb */
@ -15,11 +42,12 @@ namespace MoonWorks.Audio
FAudio.FAudioCreateReverb(out reverb, 0); FAudio.FAudioCreateReverb(out reverb, 0);
var chain = new FAudio.FAudioEffectChain(); var chain = new FAudio.FAudioEffectChain();
var descriptor = new FAudio.FAudioEffectDescriptor(); var descriptor = new FAudio.FAudioEffectDescriptor
{
descriptor.InitialState = 1; InitialState = 1,
descriptor.OutputChannels = 1; OutputChannels = 1,
descriptor.pEffect = reverb; pEffect = reverb
};
chain.EffectCount = 1; chain.EffectCount = 1;
chain.pEffectDescriptors = (nint) (&descriptor); chain.pEffectDescriptors = (nint) (&descriptor);
@ -31,34 +59,7 @@ namespace MoonWorks.Audio
FAudio.FAPOBase_Release(reverb); FAudio.FAPOBase_Release(reverb);
/* Init reverb params */ SetParams(DefaultParams);
// Defaults based on FAUDIOFX_I3DL2_PRESET_GENERIC
FAudio.FAudioFXReverbParameters reverbParams;
reverbParams.WetDryMix = 100.0f;
reverbParams.ReflectionsDelay = 7;
reverbParams.ReverbDelay = 11;
reverbParams.RearDelay = FAudio.FAUDIOFX_REVERB_DEFAULT_REAR_DELAY;
reverbParams.PositionLeft = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION;
reverbParams.PositionRight = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION;
reverbParams.PositionMatrixLeft = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX;
reverbParams.PositionMatrixRight = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX;
reverbParams.EarlyDiffusion = 15;
reverbParams.LateDiffusion = 15;
reverbParams.LowEQGain = 8;
reverbParams.LowEQCutoff = 4;
reverbParams.HighEQGain = 8;
reverbParams.HighEQCutoff = 6;
reverbParams.RoomFilterFreq = 5000f;
reverbParams.RoomFilterMain = -10f;
reverbParams.RoomFilterHF = -1f;
reverbParams.ReflectionsGain = -26.0200005f;
reverbParams.ReverbGain = 10.0f;
reverbParams.DecayTime = 1.49000001f;
reverbParams.Density = 100.0f;
reverbParams.RoomSize = FAudio.FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE;
SetParams(reverbParams);
} }
public void SetParams(in FAudio.FAudioFXReverbParameters reverbParams) public void SetParams(in FAudio.FAudioFXReverbParameters reverbParams)