All platforms with user generated content of video/music feature loudness normalization, to prevent sudden volume jumps or differences between content. Loudness normalization adjusts the overall volume of an audio track to match a target standard, which is measured in LUFS (Loudness Units Full Scale). This algorithm evaluates the human perception of average volume across an entire file. Currently residents in Second Life cope by reaching for the sound slider, turning it way down. This kills their shared experience with unbalanced volume. TPVs implemented a Sound Explorer and derender tools to aid in dealing with auditory issues. Loud sounds also travel further, the engine fades sound with distance, so a sound that is twice as loud is heard twice as far away. So every platform with user audio has already solved with this loudness normalization. YouTube and Spotify measure each audio track once and level it. Second Life could do the same. However it is not enough to gate loudness across the entire audio engine -- that is a bandaid that still ruins the shared experience by silencing most sounds across the board towards silence. So what you have to do is fix it from the source, which are the individual sound assets. Ideally users should process sounds in Audacity first with the Loudness Normalization filter and other processing before uploading their asset, but that is an additional tedious step on top of format and other limitations. I've been there and done that. What I am proposing is a Viewer-side only feature: Measure each sound's loudness once, while it is being decoded. The measurement rides inside the existing Vorbis decode loop. A full 30s may only take a single digit ms more off-thread. Store the measurement/correction in a small index in the sound cache Apply the correction as a multiplier on the source gain at play time. The sound is never rewritten, nothing clips or loses bit depth. How much do we correct? Not all the way. A whisper and an explosion are different. So we only apply half the correction. It is also limited so a sound is never turned up more than 12 dB, or down more than 24 dB, and never turned up so far that it distorts. Many SL sounds are under one sec. Loudness is typically averaged over a whole track. This goes wrong on short clips, where silence after the sound gets averaged in. So the sound for a 'click' reads quieter if the creator leaves a longer gap after it. For short clips we measure simply the loudest 400ms of the clip, which gives the same answer however much silence follows. Suggested defaults, all user-adjustable: Target, between -15 to -25 LUFS Strength: 0.5, e.g. half the correction in dB; At full strength every sound lands on exactly the LUFS target -- this means that 50% is closer to creator intent of an uploaded sound Clamp the correct to +12 / -24 dB and cap any boost so the clip's sample peak stays under -1 dBFS. What that means is that transient sounds read far below target while already peaking near full scale, as boosting them to target only drives them into the limiter A toggle in Preferences > Sound I am currently experimenting with this in a private TPV fork ( https://github.com/Martin-Pitt/Alchemy-Skooma/tree/feature-audio/loudness-normalization ), and I also measured every sound in a viewer cache, about 3.5k. Most are already mastered loud, so the usual correction across the board is a gentle turn down. 5/6 sounds come down a little, 1/6 goes up a little. The gap between the loudest and quietest roughly halves. This is really an accessibility feature turned into a good user experience. Like how a significant number of people leave subtitles on YouTube. --- Note I am NOT an audio engineer, I'd really like to hear ones opinion on this, particularly game audio engineer or engineer who has done game accessibility stuff. Expert chiming in and steering this would be a lot better.