Enjay wrote:I also follow the explanation of the one environment at a time paragraph, but I'm not sure how it relates to this particular issue because the sudden reduction of how audible the sound is doesn't coincide with crossing a reverb boundary.
Hmm, my mistake. Toward the back of the hallway with reverb it sounded like the reverb was being changed/removed, and that behavior coincided with the change in wall texture, which looked like a sector (zone) boundary. A closer look seems to show that's not it.
Looking at the sound definition, I presume it's using the Doom-style rolloff? In that case, the issue may be a result of the sound distance warping. OpenAL doesn't natively support (GZ)Doom's default style of distance attenuation for the dry path, so to replicate it, the OpenAL renderer calculates the intended volume it should have with the Doom-style rolloff, calculates the distance needed to get that volume from the default logarithmic rolloff OpenAL uses, and changes the distance between the listener and sound source as appropriate. As it happens, the Doom-style rolloff reaches 0 gain at a pre-specified point. Logarithmic rolloff would need to go out to infinity to reach 0 gain, and so as a result, when the sound reaches the max distance for Doom-style rolloff the effective sound distance flies way off to the distance (internally clamped to about 100,000 units, still more than enough to knock out the reverb with the sound itself).
I'm not sure the appropriate course of action, here. The sound cuts out when it reaches the max distance defined by the sound using Doom-style rolloff. Generally when a sound reaches some predefined max distance, you expect it to go totally quiet. However, the abruptness that the reverb response drops out with (at least for certain reverb presets) is far more noticeable than the direct response the Doom-style rolloff applies to. Additionally, with OpenAL Soft's AL_EXT_source_distance_model, the linear-style rolloff does the "right thing" of applying the linear rolloff to the direct response, and uses the actual sound distance for the reverb response even after the direct response goes quiet. So I guess it depends if what you want is for a sound outside of its max distance to be totally quiet, or if it should retain a more natural reverb response even with non-logarithmic rolloff styles.