diff --git a/soundlib/plugins/dmo/I3DL2Reverb.cpp b/soundlib/plugins/dmo/I3DL2Reverb.cpp index d7cbea8a636..10440868e51 100644 --- a/soundlib/plugins/dmo/I3DL2Reverb.cpp +++ b/soundlib/plugins/dmo/I3DL2Reverb.cpp @@ -505,7 +505,7 @@ void I3DL2Reverb::RecalculateI3DL2ReverbParams() m_roomFilter = 0.0f; } else { - float freq = std::cos(HFReference() * (2.0f * mpt::numbers::pi_v) / m_effectiveSampleRate); + float freq = std::min(std::cos(HFReference() * (2.0f * mpt::numbers::pi_v) / m_effectiveSampleRate), 0.9999f); float roomFilter = (freq * (roomHF + roomHF) - 2.0f + std::sqrt(freq * (roomHF * roomHF * freq * 4.0f) + roomHF * 8.0f - roomHF * roomHF * 4.0f - roomHF * freq * 8.0f)) / (roomHF + roomHF - 2.0f); m_roomFilter = Clamp(roomFilter, 0.0f, 1.0f); }