[🧪 Experimental] ReplayGain
June 4, 2026 · View on GitHub
MissingCore Music supports ReplayGain as an experimental feature. In addition, we support a pre-amp which gets applied when the feature is enabled.
ReplayGain is a feature which normalizes audio such that its perceived loudness hits 89 dB. As such, enabling this feature may result in audio becoming quieter.
How It Works
We calculate the ReplayGain value right before the track gets loaded into AudioBrowser. After identifying the track we want to load into AudioBrowser:
- We get the embedded track ReplayGain value through the
getR128Gain()function from our@missingcore/react-native-metadata-retrieverpackage.- The operation is pretty fast, which allows us to do this live instead of needing to cache the value in the database.
- We then add on the
ReplayGain Pre-ampvalue to whatever we found.- We support 2 "Pre-amp" values, which get added based on if an embedded track ReplayGain value was found.
- We can adjust the applied ReplayGain by
± 15 dBwith this feature.
- We attach this value to the
Trackobject which gets loaded into AudioBrowser.
Once the track is played, the ReplayGain value will be applied (given the ReplayGain feature is enabled).
- One potential side-effect is that you might hear a slight spike at the beginning if the ReplayGain isn't applied immediately.
Note
As seen through our current methods, any changes to the ReplayGain Pre-amp values will only be applied onto the next played track.
Supported ReplayGain Tags
We currently pull the ReplayGain value from the following tags: ReplayGain Xing/Info, REPLAYGAIN_TRACK_GAIN, and R128_TRACK_GAIN.
- Only
ReplayGain Xing/Info&REPLAYGAIN_TRACK_GAINhave been validated on MP3 files.
Note
If ReplayGain isn't working for a file, email it to missingcoredev@outlook.com and I'll investigate the tag that's being used and implement a fix.