View Issue Details

IDProjectCategoryView StatusLast Update
0008911MediaMonkey for Android[All Projects] Generalpublic2016-10-12 10:58
Status closedResolutionfixed 
Product Version1.0.4 
Target Version1.0.4Fixed in Version1.0.4 
Summary0008911: Implement volume leveling
DescriptionWe should implement volume leveling in Android player. This will involve the following steps:

1. Synchronization of Track Leveling, Album Leveling and Max.Sample values from PC to Android.

2. Add '[x] Level Playback Volume' checkbox to Options. This only option should be enough, I don't think that anything else needs to be configurable (see below).

3. When enabled, our application will modify volume on per-track basis (MediaPlayer::setVolume() ). The multiplier will be calculated as:
 3a. Leveling = Album Leveling if available, otherwise use Track Leveling. (Don't do anything if neither is available)
 3b. Multiplier = exp( ln(10)*Leveling/20);
 3c. if Multiplier * Max.Sample > 1.0 then Multiplier = 1.0 / Max.Sample
TagsNo tags attached.
Fixed in build232


related to 0011924 closedLudek MediaMonkey (current) USB Sync: volume leveling fails after clean install 
related to 0011957 assignedmartin MediaMonkey for Android Volume leveling is very limited for low-volume tracks 
related to 0013592 resolvedmartin MediaMonkey for Android Volume Leveling doesn't work (Regression) 



2011-12-28 16:39

administrator   ~0029652

Reminder sent to: Ludek

Ludek has to prepare the part 1. for Marek.


2012-03-28 10:02

developer   ~0030798

Implemented volume leveling


2012-10-20 00:34

developer   ~0032674

Verified 47


2013-02-21 22:49

administrator   ~0035042

Peke, please confirm whether you've tested this with multiple audio formats as there's a report that this only works for MP3 (


2013-02-22 02:01

developer   ~0035046

I retested with LG phone and FLAC, AAC, OGG is confirmed to level correctly, but maybe there is a bug in MMW not recalculating Gain index on converted tracks.


2013-03-11 00:14

developer   ~0035320

Re verified 108 4'th of March on all three devices and on all files that they support.


2013-12-03 20:07

administrator   ~0038474

Last edited: 2013-12-03 20:18

View 3 revisions

A user reported ( ) that volume leveling isn't working in build 185, and upon testing this out (by playing tracks at -13 and +13 in MMA, and playing the same tracks in MMW), it seems that tracks aren't being levelled, at least on a GS3. In particular, tracks at -13dB are obviously not reduced in volume.

This can also be verified by enabling leveling for a track during playback, and observing no change in volume.

Tested build 189.


2013-12-05 16:03

developer   ~0038510

It works for me. The volume is set at the beginning of playback of track. So try play, enable/disable volume leveling and restart playback


2013-12-06 02:44

administrator   ~0038543

You're right--it does work on a fresh sync.

The problem occurs when pairing tracks that already exist on the phone with others that exist within MMW, and the metadata from MMW fails to update to the MMA library during the pairing process.


2014-03-09 18:52

administrator   ~0039803

User reported at that volume leveling does work if the leveling co-efficient is negative, but not when it's positive.

I've been able to replicate this as well (i.e. track that is -13 is decreased in volume, but track that is +13 isn't increased in volume).


2014-03-09 21:22

developer   ~0039805

Last edited: 2014-03-09 21:23

View 3 revisions

Marek, I fixed 0011924 on MMW side (volume_leveling was not synced over USB), but I have a question, default value in mmstore.db is 1.0 for unleveled tracks, shouldn't it be rather 0.0 (i.e. +0.0 db) ?? I am writing 0.0 for unleveled tracks.


2014-03-10 09:43

administrator   ~0039807

Last edited: 2014-03-10 09:43

View 2 revisions

Pre IM discussion, it's caused by fixed 90% volume for 0dB tracks. So, we can increase volume a little (if needed), but not much. I don't think it's a big issue, since it's rather rare for a track to need to increase volume significantly. Probably the only solution would be to add an option to choose the target ReplayGain playback volume, i.e. user could adjust it if needed.

Btw, we shouldn't use the 90% volume level when leveling is disabled. We should play tracks at full (100%) volume in this case.


2014-03-10 13:38

developer   ~0039812

Fixed in build 232

You are right. The default value was set to 1.0. They were remains of previous implementation. So I set it to 0.0. But it is set only for new DB. I don't think it is worth to copy whole media table to change this value.

Playback volume without volume leveling enabled was set to 100%.


2014-05-01 21:42

developer   ~0040154

Verified 249