CappielloAntonio / tempo

An open source and lightweight music client for Subsonic, designed and built natively for Android.
GNU General Public License v3.0
877 stars 39 forks source link

ReplayGain Pre-Amp #11

Closed jeffgt14 closed 11 months ago

jeffgt14 commented 1 year ago

Would be a useful feature to be able to set a ReplayGain Pre-Amp in the settings. Most music apps usually have this as an option.

c0utta commented 1 year ago

Agree 100%

ReplayGain should have three modes:

CappielloAntonio commented 1 year ago

Hello everyone and good news. I started working on the ReplayGain feature and got some results. At the moment I'm not able to test albums or tracks that contain the necessary tag, so if it were possible I would ask you to do some tests as soon as I'm ready to release a new version of the application.

Also, I'd like to talk to someone who knows more about the subject than I do.

As far as I understand, there are several types of metadata that revolve around this feature: some formats use REPLAYGAIN_TRACK_GAIN others R128_TRACK_GAIN, some files have a valid album-level tag others for tracks. Are there any other tags I need to keep tabs on?

Then there is the normalization of the gain factor, a value that must fall between 0 (silence) and 1 (unchanged signal): the formulas used are these: For REPLAYGAIN_TRACK_GAIN / REPLAYGAIN_ALBUM_GAIN: (float) Math.pow(10f, gain / 20f) For R128_TRACK_GAIN / R128_ALBUM_GAIN: (float) Math.pow(10f, gain / 256f / 20f)

I'm not very expert, and I will continue to study the subject as necessary, but if any of you have suggestions I will be happy to listen to them.

c0utta commented 1 year ago

I'm also not an expert in the application of ReplayGain - only the tags used.

I use foobar2000 to calculate both track & album ReplayGain using tags: REPLAYGAIN_TRACK_GAIN REPLAYGAIN_TRACK_PEAK REPLAYGAIN_ALBUM_GAIN REPLAYGAIN_ALBUM_PEAK

I have not used (or even seen) the R128_* tags. If this is an issue, then allow the user to choose the tags they want to use.

That's all I've got!

CappielloAntonio commented 11 months ago

New version released with the required feature, try it and tell me what you think.