From 82a5a5e5baccaff0028706b56466b181d182f36c Mon Sep 17 00:00:00 2001 From: Chase Cooper Date: Thu, 12 Mar 2026 00:05:57 -0400 Subject: [PATCH] Increase gain and adjust audio attenuation #897 --- Minecraft.Client/Common/Audio/SoundEngine.cpp | 15 +++++++++------ Minecraft.Client/Common/Audio/SoundEngine.h | 6 ++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Minecraft.Client/Common/Audio/SoundEngine.cpp b/Minecraft.Client/Common/Audio/SoundEngine.cpp index 24cb7bf45..cf140c780 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.cpp +++ b/Minecraft.Client/Common/Audio/SoundEngine.cpp @@ -260,9 +260,9 @@ void SoundEngine::updateMiniAudio() continue; } - float finalVolume = s->info.volume * m_MasterEffectsVolume; - if (finalVolume > 1.0f) - finalVolume = 1.0f; + float finalVolume = s->info.volume * m_MasterEffectsVolume * SFX_VOLUME_MULTIPLIER; + if (finalVolume > SFX_MAX_GAIN) + finalVolume = SFX_MAX_GAIN; ma_sound_set_volume(&s->sound, finalVolume); ma_sound_set_pitch(&s->sound, s->info.pitch); @@ -557,10 +557,13 @@ void SoundEngine::play(int iSound, float x, float y, float z, float volume, floa } ma_sound_set_spatialization_enabled(&s->sound, MA_TRUE); + ma_sound_set_min_distance(&s->sound, SFX_3D_MIN_DISTANCE); + ma_sound_set_max_distance(&s->sound, SFX_3D_MAX_DISTANCE); + ma_sound_set_rolloff(&s->sound, SFX_3D_ROLLOFF); - float finalVolume = volume * m_MasterEffectsVolume; - if (finalVolume > 1.0f) - finalVolume = 1.0f; + float finalVolume = volume * m_MasterEffectsVolume * SFX_VOLUME_MULTIPLIER; + if (finalVolume > SFX_MAX_GAIN) + finalVolume = SFX_MAX_GAIN; ma_sound_set_volume(&s->sound, finalVolume); ma_sound_set_pitch(&s->sound, pitch); diff --git a/Minecraft.Client/Common/Audio/SoundEngine.h b/Minecraft.Client/Common/Audio/SoundEngine.h index 2134c491c..38d70d414 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.h +++ b/Minecraft.Client/Common/Audio/SoundEngine.h @@ -6,6 +6,12 @@ using namespace std; #include "miniaudio.h" +constexpr float SFX_3D_MIN_DISTANCE = 1.0f; +constexpr float SFX_3D_MAX_DISTANCE = 16.0f; +constexpr float SFX_3D_ROLLOFF = 0.5f; +constexpr float SFX_VOLUME_MULTIPLIER = 1.5f; +constexpr float SFX_MAX_GAIN = 1.5f; + enum eMUSICFILES { eStream_Overworld_Calm1 = 0,