Rockbox

Tasklist

FS#7427 - Adjusting bass and treble causes master volume to increase inaccurately

Attached to Project: Rockbox
Opened by Mark (Xebozone) - Thursday, 12 July 2007, 04:32 GMT
Last edited by Thom Johansen (preglow) - Monday, 07 April 2008, 20:59 GMT
Task Type Bugs
Category Settings
Status Closed
Assigned To No-one
Operating System iPod 5G
Severity Medium
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Increasing the "bass" and "treble" in the sound settings increases the miniumum master volume.

For example, if I increased the bass be 6dB, then, -
56dB in the master volume will actually be -50dB (I think it's directly related in this way). If was then to increase the treble by 5dB, then -56dB in the master volume would now be -45dB (because bass was increased by 6 and 56-6-5=45).

Also, on another note, when increasing/decreasing bass/treble, the only difference I notice is a change in overall volume anyways, not a change to the bass or treble frequencies!

Doing some research on how dB is measured (wikipedia and physics knowledge may help developers to understand)
(it's logarithmic where dB level = 10 log (intensity level)/(reference intensity level) where the reference level is the minimum intensity level of the audio device)
may improve the accuracy and functionality of the sound volume adjusting feature.

Taking a look at  FS#5387  might also be of some value.
This task depends upon

Closed by  Thom Johansen (preglow)
Monday, 07 April 2008, 20:59 GMT
Reason for closing:  Fixed
Comment by Mark (Xebozone) - Thursday, 12 July 2007, 04:33 GMT
where I said: Increasing the "bass" and "treble" in the sound settings increases the minimum master volume.

I really meant to remove the word 'minimum'
Comment by Paul Louden (Llorean) - Thursday, 12 July 2007, 10:34 GMT
Out of curiosity, what player are you referring to, because I highly doubt you've tested this on every player, and I know quite well this isn't the case on any Rockbox player I've tested it on.

As well, which SVN revision are you reporting this problem on?
Comment by Mark (Xebozone) - Thursday, 12 July 2007, 13:41 GMT
I'm testing it on an iPod Video 30Gig using version: r13860-070712
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 01:45 GMT
Ah, well the iPod 5G is a special case. You see, we use hardware tone controls while available. Which is what we use on the 5G, they're a feature of the DAC chip. Sadly, the 5G's Bass/Treble suck, or don't work at all. So what you're seeing is the hardware's flaws, not anything to do with Rockbox at all.

If you want to try an experiment, add #define HAVE_SW_TONE_CONTROLS to your target's define and compile, and see if the software tone controls work better for you.
Comment by Mark (Xebozone) - Friday, 13 July 2007, 06:10 GMT
This still doesn't solve the biggest problem, and the main reason I submitted this bug, and that is that adjusting the 'bass' and 'treble' settings changes the master volume settings!

The lack of 'bass' and 'treble' control on the 5G is just a side-note. I used to have a 4G and I remember that they worked.
I do use the hardware tone controls (which do suck as they distort the sound) as well as changing the 'bass' and 'treble' settings (which seems to have no effect other than a change in master volume, as described).

So, what effect does the 'bass' and 'treble' settings have on the 5G? I haven't noticed any change in bass and treble, just a change in volume, as described, whether the hardware equaliser is on or not. If the 'bass' and 'treble' controls are not working on the 5G, then they should either be removed or modified.

I am not too familiar with compiling, although I have done it once or twice on other projects.
Maybe someone else can try this, or tell me how to do it.
I use both linux (I just started with it actually) and Windows. It would probably be better to compile with linux.
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 06:22 GMT
Does the "Volume" number change? Or does the apparent volume change?

As I said, all the settings for bass and treble do is tell the chip to change, and what changes in the sound happens are because the chip sucks, not anything Rockbox does.

If the volume number itself changes, there's a bug. Is that what you're saying? You never once said then number changed, your posts all seem to suggest it just sounds like it changes, which is a side effect of the hardware. It's "Bass" and "Treble" seem to not work properly, and affect the apparent volume instead.
Comment by Mark (Xebozone) - Friday, 13 July 2007, 10:31 GMT
Yes, sorry it doesn't change the volume in rockbox, it changes the apparent volume, but I still reckon that rockbox can be coded to re-adjust itself for this change! Setting the volume to the minimum (-58dB) still has volume when adjusting the bass and treble settings.

One workaround would be that for every dB of bass/treble increased, the actual volume would be decreased by the same amount, but without the user knowing it and without a change in the actual settings. So that increasing the bass by 1dB when the volume is set to -50dB will keep the volume in the settings at -50dB, but the actual volume would be -51dB. This will result in an increase in bass by 1dB without increasing the actual total volume by 1dB, provided that the 'bass' and 'treble' settings are actually properly communicating with the hardware, which I think they are not.

From what I have experienced, adjusting the 'bass' and 'treble' settings doesn't actually increase the bass/treble and it doesn't affect the 'hardware equaliser' (which is also in the sound menu). The 'hardware equaliser' seems to be completely separate from the 'bass' and 'treble' settings. Increasing the low shelf filter gain doesn't affect the actual volume.

Also don't forget to look at  FS#5387  as that bug still exists.
Also, I have noticed a dramatic increase in volume between -57dB and -58dB where -58 is completely silent (provided the 'bass' and 'treble' are at 0dB) and -57dB is quite significantly louder. The whole dB system is stuffed
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 10:36 GMT
Again, you're forgetting that these are hardware values.

-58 should be labeled the mute icon, not actually "-58". The dB system would be stuffed anyway, because -58 isn't "true silent" in the first place. Also, if you say -58 is silent, then I don't understand the other bug you're linking to.

What *should* be done is the flat out disabling of those bass and treble settings since they don't work. But this has been known for a while, there's just no final "what is the right replacement for the non-working Bass/Treble 'feature'"
Comment by Mark (Xebozone) - Friday, 13 July 2007, 10:57 GMT
So, the hardware determines the 'minimum' volume level (which is in this case -58)?

The bug I am reporting is that if -58 is supposed to be 'mute' then increasing the 'bass'/'treble' by 1dB is the equivalent of physically going to the volume menu and bringing the volume up to -57dB without actually changing the volume in the settings. (ie. it reports -58 but it is effectively -57).

The adjustment to Rockbox I feel should be made is that increasing/decreasing the 'bass'/'treble' settings will decrease/increase (respectfully) the apparent volume by the same amount so that -58dB in the volume settings IS ACTUALLY -58dB (which in this case, is mute).
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 11:00 GMT
Yes, it's hardware.

The hardware is still set at -58 when you raise the bass +1, which means we cannot lower the volume any more. It's not something that can be fixed unless you change out the hardware. And again, it's the Bass/Treble hardware feature that's broken.
Comment by Mark (Xebozone) - Friday, 13 July 2007, 11:07 GMT
ok...I get it now...I didn't know that the volume settings were directly controlled by the hardware. I thought the developers had more input in how the change in the settings controls the change in hardware, but clearly this is beyond the control of the developers.

For that, I suppose would require a modification of the hardware itself?
I thought that the firmware (ie. Rockbox) has complete control over the hardware, but I suppose it has a mind of its own then!?

So this is impossible to fix or adjust?
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 11:11 GMT
What would you define complete control as? If you have a 16bpp LCD, you can't display 32-bit color on it no matter how you try.

If you set the volume to -58, then increase the treble by 1, the volume is still set at -58. It doesn't suddenly add -59 into the list of possible settings.

So I'm not certain what you mean?

As I've said several times: The solution is to remove the Bass/Treble option and replace it with either a software one, or the other filters, a method that works properly.
Comment by Mark (Xebozone) - Friday, 13 July 2007, 11:19 GMT
I'm not saying that it adds more options to the settings!

I'm saying that it's AS IF it changes the settings!

Increasing treble by one would not add -59 to the list of possible settings (especially since -58 + 1 = -57)

I'm saying that if the volume was set to let's say, 0dB (which is probably not recommended with headphones :P) then increasing bass/treble by 1dB will act AS IF you went to the volume settings and increased it to 1dB (since you increased the bass/treble setting by 1dB). It will not modify the list of possible volume settings, but it will act as if the user changed it, without actually changing it.

Going to the 'hardware equaliser' settings and increasing the gain doesn't have this bug. It's only the bass/treble feature in the sound menu that does it. Clearly it needs to be replaced, recoded, or removed (This can be known as the 'three Rs' of programming :D)
Comment by Mark (Xebozone) - Friday, 13 July 2007, 11:49 GMT
Settings the volume to -58 (mute) and adding 1 to the bass or treble has the same volume as -57.

...and yes, I realised that the bass/treble option is broken from the moment you mentioned it...I am just trying to figure out 'how' it's broken and suggest a possible work-around.

Hmm, i just discovered that the problem only occurs when you 'increase' the bass/treble settings (above 0dB) a decrease as no apparent effect (or I never noticed it anyways).
Comment by Mark (Xebozone) - Friday, 13 July 2007, 11:55 GMT
After some testing, I noticed that the bass/treble settings are doing something to the sound not just increasing the volume. But yes, the overall volume does increase by the same amount of dBs you increase the bass/treble, even if it's set to -58.

Perhaps I was expecting the bass/treble settings to increase the relative levels of bass/treble (compared to the other respective sound frequencies) without affecting the mean volume level?

But then why would the software equaliser (and the hardware equaliser in the sound settings) not have this problem?
Comment by Mark (Xebozone) - Friday, 13 July 2007, 11:56 GMT
Now I'm confused :P
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 12:01 GMT
I've said it SEVERAL TIMES. THE HARDWARE IS AT FAULT. The reason this happens is that the hardware Bass/Treble do not work as expected.

What part of that don't you understand, seriously? There's nothing to "test." It doesn't work properly. It needs to be replaced with something that does work.

The volume only goes down to -58. Which means that even if you increase Treble by 1, you can't lower the volume again to compensate: The "volume" still at -58.
Comment by Mark (Xebozone) - Friday, 13 July 2007, 12:06 GMT
Wow...ok...geeze...I realised that the hardware was at fault, but i was thinking that the software could do something to COMPENSATE for this fault?

Like in jets, when the rudder fails (hardware), there is software to help the plane fly straight by varying the engine power (software compensation).

That's what I'm questioning here!
Comment by Paul Louden (Llorean) - Friday, 13 July 2007, 12:25 GMT
Yes, the hardware could compensate by replacing the broken bass/treble function with a proper one, that doesn't affect the loudness. See the bit early on where I suggested "If you want to try an experiment, add #define HAVE_SW_TONE_CONTROLS to your target's define and compile, and see if the software tone controls work better for you." That was a "software compensation" solution.

You continued to go on and say it *wasn't* about the Bass/Treble controls, but you've continued talking about them anyway, despite the fact that I've repeatedly said they simply need to be removed and replaced with something that works, not compensated for, because they don't simply have strange side effects, they don't work at all.
Comment by Mark (Xebozone) - Friday, 13 July 2007, 12:37 GMT
Sorry, I fully understand now...
I am not a software/hardware engineer and there are some conceptual understanding that I was missing.

Please excuse my lack of knowledge on the subject and the effective stupidity that was a result of it.

I suppose this flyspray will be left open for anybody that wants to replace the controls and hopefully improve their usability and functionality for all players now and in the future, not just for the buggy 5G.
Comment by Michael Sevakis (MikeS) - Saturday, 21 July 2007, 21:29 GMT
I'm not sure all the drivers give truthful dB values from their tables and that the volume adjustment uses them properly. Some work needs to be done to make the HW<==>physical value interface nice and uniform for all settings. A middle layer between the HW driver and the parts that work in dB is needed: sound-tlv320.c, sound-wm8751.c, sound-uda1380.c, etc. These would also be built with the simulator unlike tlv320.c et. al.
Comment by Thom Johansen (preglow) - Thursday, 03 April 2008, 11:28 GMT
I think this has been fixed in SVN Rockbox, and will close in a couple of days if no one tells me otherwise.

Loading...