SFX abruptly cut off after crossing max distance
Example video: https://streamable.com/nl2iqu
Expanding on a brief Discord discussion on this distracting behavior. Quoting Capo's explanation for convenience:
Click to expand
In general sound attenuation doesn't actually depend on the maximum sound distance, it only depends on the minimum (so called "reference") distance, and the current distance, that is the distance the listener is at from the sound source. The maximum distance only acts as the cutoff distance. You can find the attenuation code here: https://github.com/kcat/openal-soft/blob/master/alc/alu.cpp
OpenMW and Morrowind use the more physically-correct inverse distance model, specifically a clamped model. The cutoff is added at OpenMW's side, as-is you'd hear the sound at any distance, I guess.
Now, this doesn't seem to make a lot of sense, but actually the reference distance is where the sound has its volume unchanged, and if the distance wasn't clamped it'd be louder if you were closer to the sound source and it'd be virtually inaudible at some point if you were further from the source.
So basically the cutoff is deliberate, probably due to performance concerns, and there's also an audio source limit, in Morrowind it was 31.
Something like this maybe.
My suggestion for a performance-friendly improvement is to introduce a half-second fade to sounds once they cross the arbitrary max threshold - or better yet, introduce a fade start multiplier
in much the same way as the existing shadow and light fading to retain the feel of distance-based attenuation.