Back to Top

Allow to boost weak feeds

8 posts / 0 new
Last post
kamtsa1
Offline
Last seen: 11 years 8 months ago
Joined: 02/13/2011 - 03:23
Allow to boost weak feeds

Feed varies significantly in the volume level. Some feeds are so low that I need to crank the car stereo volume all the way which causes a significant background noise. (e.g. compare Len Tillem Podcast to Onion Radio News).

This feature request is to allow to specify per feed a boost factor (e.g. +15db) that will be applied before the Android volume level control.

Here is some background info and suggestion for one way how it can be done:

I attached my phone as a USB drive to my PC and run http://mp3gain.sourceforge.net/index.php on the DoggCatcher entire MP3 directory tree. This performed the level analysis and then updated the files to normalized their volume (I used 97.5 target volume which is high). After this step, DC plays all the feed at a high volume (good).

Mp3Gain changes the track volume by updating the Replay Gain tag MP3 files. DC could do the same by writing a Replay Gain tag based on the user preferences for that feed (Mp3Gain analysis suggest that typical feeds have a consistent gain between thier files). This approach does not require DC to do the Replay Gain volume analysis but only to write the tag based on user's preferences. My experiment shows the DC's player does respect the Replay Gain tag written by Mp3Gain.

More info
http://en.wikipedia.org/wiki/Replay_gain
http://www.replaygain.org/
http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_specification#P...

eric
Offline
Last seen: 2 years 10 months ago
Joined: 11/06/2008 - 22:02
Replay gain

Let me make sure I get what you're saying.

DC would only have to write the mp3 tag and then the player notices the tag and adjusts the volume? If that's the case, then it wouldn't be too big a change as long as I can dig up a library to write the tags. I think I looked a while back but couldn't get it working with android, maybe it's worth another look.

kamtsa1
Offline
Last seen: 11 years 8 months ago
Joined: 02/13/2011 - 03:23
Yes, just to add a tag or

Yes, just to add a tag or replace an existing tag if it already exists. That's my understanding.

Search for 'gain' in this file to see the tags:

http://www.jarvana.com/jarvana/view/com/googlecode/gstreamer-java/gstrea...

mp3gain has two parts, determining the mp3 content volume and setting the gain tag to achieve the target volume. The first part is computation intensive (though should be feasible on modern phones) while the second is just a matter of file I/O. If you will allow DC users to specify gain per feed (with an additional global value?) then you just need to do step 2.

You can find a C source code of mp3gain (a command line app) here http://sourceforge.net/projects/mp3gain/files/

I am running mp3gain.exe (using a small java shell) after each feed update and the results are great.

eric
Offline
Last seen: 2 years 10 months ago
Joined: 11/06/2008 - 22:02
Replay gain

I found a library that could do the tagging.

When I was searching around for replaygain and android, I found lots of people asking for it, but no mention that the media player actually did support it.

http://code.google.com/p/android/issues/detail?id=4455

From reading the mp3gain site, it sounds like mp3gain changes the audio data itself and then saves the analysis info in the replaygain tag so you don't need to analyze the files again if you want to change gain again. It's possible that I misinterpreted that but from the faq, that's what it sounds like. So I don't think this would work without running mp3gain on the device.

If I've got it wrong, please let me know.

Thanks for doing all the research on this. The tagging will help with some others things. People have request that DC populate the tags so the standard android music player can display them. They're also needed for chapter support and yanking the preview images out of the files.

kamtsa1
Offline
Last seen: 11 years 8 months ago
Joined: 02/13/2011 - 03:23
Yes, you are right.

Yes, you are right. Apparently mp3gain modifies both the mp3 metadata (setting the global gain in each frame) *and* the replay again headers (appending them at the end of the file). I ran a diff on files before/after mp3gain and could see the frame metadata changes every few k's while the actual content unchanged (no recoding).

I then used foobar2000 to modify only the replay tags only and the DC players (both internal and external) did not recognize increase the volume.

I guess that boosting up feeds in DC is more involved than I thought. Sorry for the noise.

Nevertheless, having a way to handle weak feeds is still a much desired feature.

eric
Offline
Last seen: 2 years 10 months ago
Joined: 11/06/2008 - 22:02
Replay gain

Not a problem, I had wanted to look into mp3 tagging anyways. This spurred me to do it.

kamtsa1
Offline
Last seen: 11 years 8 months ago
Joined: 02/13/2011 - 03:23
Low volume in car doc mode

On a related topic, apparently I suffer from this issue of low volume in car dock mode

http://code.google.com/p/android/issues/detail?id=9445

Removing the phone from the car dock gives all feeds noticeable boost that reduces the background noise.

Some people report that Mixzing fixes the problem. I wonder if it boosts up the volume level when in car dock mode.

Ben Laserlove
Offline
Last seen: 5 years 10 months ago
Joined: 03/14/2011 - 19:36
I don't think there is any

I don't think there is any Android player that supports Replaygain yet, and I'm still pretty bummed out about it. MP3Gain works, but it's a bit outdated and modifies the whole file which is worse compared to just putting a number in the ID3 tag.

That being said, because many players use the API's that are build into Android, it's not easy to implement ReplayGain just like that. I hope Google corrects this mistake with a upcoming update (Ice Cream is the rumored name, right) and as ReplayGain scanners get better with stuff like the EBU R128 scanner I hope it gets more publicity.