View Issue Details

IDProjectCategoryView StatusLast Update
0008911MediaMonkey for Android[All Projects] Generalpublic2016-10-12 10:58
Reporterjiri 
PriorityimmediateSeverityminorReproducibilityN/A
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

Relationships

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) 

Activities

jiri

2011-12-28 16:39

administrator   ~0029652

Reminder sent to: Ludek

Ludek has to prepare the part 1. for Marek.

marek

2012-03-28 10:02

developer   ~0030798

Implemented volume leveling

peke

2012-10-20 00:34

developer   ~0032674

Verified 47

rusty

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 (http://www.mediamonkey.com/forum/viewtopic.php?f=21&t=69221).

peke

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.

peke

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.

rusty

2013-12-03 20:07

administrator   ~0038474

Last edited: 2013-12-03 20:18

View 3 revisions

A user reported ( http://www.mediamonkey.com/forum/viewtopic.php?f=21&t=74554 ) 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.

marek

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

rusty

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.

rusty

2014-03-09 18:52

administrator   ~0039803

User reported at http://www.mediamonkey.com/forum/viewtopic.php?f=21&t=74554&start=15#p385587 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).

Ludek

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.

jiri

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.

marek

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%.

peke

2014-05-01 21:42

developer   ~0040154

Verified 249