GNOME Bugzilla – Bug 789795
mp3 encoding quality slider is misleading
Last modified: 2018-03-16 08:12:24 UTC
Rhythmbox -> Preferences -> Music: Preferred Format: MPEG Layer 3 Audio Variable bit rate Quality range: 0.0 to 9.9 The general assumption here is that 9.9 is the best quality, and 0.0 is the lowest quality. But, when this is directly passed to the underlying mp3lame library it is reversed. 0 is best quality for mp3lame, 9 is the lowest quality. So, a mp3 encoded with 9.9 produces lowest quality ( 8 kbps ).
VBR encoding for a sample track in Rhythmbox/gstreamer/mp3lame on quality values 0.0, 1.0, 2.0, 4.0. Output mp3 file details are displayed below. [Quality: 0.0] 0:00:30.119799469 21162 0x5614dbadc9e0 INFO lamemp3enc gstlamemp3enc.c:912:gst_lamemp3enc_setup: lame encoder setup (target quality, quality 0.000000, bitrate 320, 44100 Hz, 2 channels) 44100 Hz 256kbps 16.0 MB (1,60,14,995 bytes) [Quality: 1.0] 0:03:00.780930317 21162 0x5614db6e69e0 INFO lamemp3enc gstlamemp3enc.c:912:gst_lamemp3enc_setup: lame encoder setup (target quality, quality 1.000000, bitrate 320, 44100 Hz, 2 channels) 44100 Hz 224 kbps 13.9 MB (1,38,58,151 bytes) [Quality: 2.0] 0:04:26.701611427 21162 0x5614dcc949e0 INFO lamemp3enc gstlamemp3enc.c:912:gst_lamemp3enc_setup: lame encoder setup (target quality, quality 2.000000, bitrate 320, 44100 Hz, 2 channels) 44100 Hz 224 kbps 12.0 MB (1,19,77,201 bytes) [Quality: 4.0] 0:05:48.668195221 21162 0x5614dcc94990 INFO lamemp3enc gstlamemp3enc.c:912:gst_lamemp3enc_setup: lame encoder setup (target quality, quality 4.000000, bitrate 320, 44100 Hz, 2 channels) 44100 Hz 160 kbps 9.7 MB (96,79,925 bytes)
This is just how lame works, and people familiar with using the command line lame tool will probably know that. I think the only reasonable thing to do is invert the range, so 0.0 is shown on the right (in LTR locales). commit de6cd999b allows properties to be inverted (see gtk_range_set_inverted) and commit 32097f428 applies it to the quality property for lamemp3enc.
Sorry, but this is quite confusing. This would be perfectly fine if the slider doesn't have any text indicating the quality value.
On a second note, I just noticed that the inverted slider bar was reducing as it's moved to the right. I wonder if any gnome user has seen such behavior. This is more confusing. The normal slider UI which was before, was just fine. The "quality:inverted" is perfectly fine too. But the mapping has to be internal, based on the inverted boolean flag. Something like. if ( inverted ) { val = max - val; // [ 3.5 -> 6.4 [ max ( 9.9 ) - selected (3.5) ] }
no, I'm not going to make it map or modify the value in any way.
do you see any issues with mapping ?
One other option is to have 2 labels on either side of the scale as below: 0.5 Quality: worst ===============@--------------- best and flip the labels if 'inverted' is true.
I just hit this trying to find out why the transcoded MP3 files on my player were sounding horrible. Please reopen this, the inverted slider is confusing as hell. You don't have to map the value, but "worst" and "best" labels would *really* help.