[HOW-TO] Fix left speaker balance

freeza

Recognized Developer
May 28, 2006
5,333
14,136
263
Pasadena, CA
www.freeza-inc.com
Unfortunately I was one of the many people who have received a TF where the right speaker was significantly louder than the left. The reason for this is unknown by me as I've not disassembled my TF, and there are conflicting answers as to whether or not it is a software or hardware issue. However, with the help of fellow XDA member verkion for the initial fix and pointing me in the right direction, I've tinkered around enough that I feel comfortable sharing with the rest of the community. Let's get started.

Requirements:
-Root
-Left speaker actually working
-Root Explorer or similar file manager (recommended method)
--ADB if you don't use Root Explorer
--Text editing program (Notepad++ is recommended and free) if you decide to use ADB

Let's start with the recommended method, Root Explorer.

Step 1: Open Root Explorer and navigate to /system/data.

Step 2: Tap on the "Mount R/W" button.

Step 3: Tap and hold on the file "srs_processing.cfg" and once the menu comes up, select the "Open in Text Editor" option.

Step 4: Scroll down to:

//BLOCK: ( srs_spk_int : ) TruEQ - Internal Speaker Tuning

Here's where things can get kind of annoying, because you will have to change values, save & exit, then reboot and test your results. Anyway, there are 4 values you will want to focus on, and those are:

srs_spk_int:trueq_lband0 = 900.000000,-9.000000,0.700000 // TruEQ Left Band 0 Tuning (CF Gain Q) -
srs_spk_int:trueq_lband1 = 11000.000000,6.000000,0.500000 // TruEQ Left Band 1 Tuning -
srs_spk_int:trueq_lband2 = 400.000000,3.000000,0.7000000 // TruEQ Left Band 2 Tuning -
srs_spk_int:trueq_lband3 = 2500.000000,-9.000000,0.700000 // TruEQ Left Band 3 Tuning -

The values in bold are the only ones I've messed with so far with very good results. The beginning values have a maximum of around 16000, and 17000 results in your left speaker not working, something above 16000 but below 17000 may work but I haven't tried it. The two middle ones, I don't know the maximum because It wasn't necessary to up them that much. For example, mine look like this:

srs_spk_int:trueq_lband0 = 1400.000000,-9.000000,0.700000 // TruEQ Left Band 0 Tuning (CF Gain Q) -
srs_spk_int:trueq_lband1 = 16000.000000,10.000000,0.500000 // TruEQ Left Band 1 Tuning -
srs_spk_int:trueq_lband2 = 900.000000,7.000000,0.7000000 // TruEQ Left Band 2 Tuning -
srs_spk_int:trueq_lband3 = 7500.000000,-9.000000,0.700000 // TruEQ Left Band 3 Tuning -

For me, this works out wonderfully! However, results may vary.

Step 5:
Once you've changed those values, save & exit, then restart your TF and examine results. Repeat steps if necessary.

Method 2: ADB. NOTE: Make sure USB debugging is enabled.

Step 1: Connect TF to computer.
Step 2: In a command prompt/terminal navigate to where your Android SDK is and type adb devices to make sure your TF is recognized, if so, type adb remount. If it succeeds, proceed to step 3, otherwise you may need to either enable USB debugging, or install drivers.
Step 3: Type "adb pull /system/data/srs_processing.cfg" It will save the file in the same directory as adb.

NOTE: Do not close command prompt/terminal.

Step 4: Open "srs_processing.cfg" in Notepad++ or whatever qualified text editor you use. NOTE: Due to the nature of how Windows reads files, Notepad might not save the file correctly and definitely will not open it looking pretty. Wordpad might be the same. Basically, the file needs to be saved in UNIX format.
Step 5: Scroll up to Step 4 of the Root Explorer method and proceed.
Step 6: Save the file with Notepad++ or whatever qualified text editor you use.
Step 7: Back in command prompt/terminal, with the file saved over the original type "adb push srs_processing.cfg /system/data/"
Step 8: Reboot your TF as you normally would, or with adb method "adb reboot"

Examine results and repeat steps if necessary.

Attached below are the default srs_processing.cfg and my edited one.

Feel free to post back your own values, because they may be more refined than mine or may work for someone else better as well. ENJOY!

Update: Thanks to seshmaru, a typo was discovered. ASUS added an extra zero to the bold part in line: srs_spk_int:trueq_lband2 = 400.000000,3.000000,0.7000000 // TruEQ Left Band 2 Tuning - I've updated the default file as well as my edited one to remove this extra 0. While this did boost volume in the left speaker for me, it still was not on par with the right one.

Update 2: verkion suggests "turn off the Hard Limiting in the Internal Speaker Boosted section by setting:
hlimit_skip to 0 instead of 1. This gave me a little more "headroom" before distortion became unbearable. A hard limiter is a CLIPPING filter...it just "snips the sound" when it goes over a preset value instead of trying to "scale down the volume.""
 

Attachments

Last edited:

seshmaru

Senior Member
Aug 22, 2009
1,294
374
0
NOTE: If your right speaker is more quiet of course look for the srs_spk_int:trueq_rband lines instead.

EDIT:

While looking at your fix I noticed something, this is what I pulled from my config:

Code:
srs_spk_int:trueq_lband0 = 900.000000,-9.000000,0.700000 // TruEQ Left Band 0 Tuning (CF Gain Q) -
srs_spk_int:trueq_lband1 = 11000.000000,6.000000,0.500000 // TruEQ Left Band 1 Tuning -
[B]srs_spk_int:trueq_lband2 = 400.000000,3.000000,0.7000000 // TruEQ Left Band 2 Tuning -[/B]
srs_spk_int:trueq_lband3 = 2500.000000,-9.000000,0.700000 // TruEQ Left Band 3 Tuning -
srs_spk_int:trueq_rband0 = 900.000000,-9.000000,0.700000 // TruEQ Right Band 0 Tuning (CF Gain Q) -
srs_spk_int:trueq_rband1 = 11000.000000,6.000000,0.500000 // TruEQ Right Band 1 Tuning -
[B]srs_spk_int:trueq_rband2 = 400.000000,3.000000,0.700000 // TruEQ Right Band 2 Tuning -[/B]
srs_spk_int:trueq_rband3 = 2500.000000,-9.000000,0.700000 // TruEQ Right Band 3 Tuning -
if you pay attention you will find that the 2 highlighted lines are a different length, even though they should be equal, woops Asus?
 
Last edited:

danielsjam

Senior Member
Nov 26, 2010
93
17
0
I modified this line
srs_spk_int:trueq_lband2 = 400.000000,3.000000,0.7000000 // TruEQ Left Band 2 Tuning -
to read
srs_spk_int:trueq_lband2 = 400.000000,3.000000,0.700000 // TruEQ Left Band 2 Tuning -

This fixed my unbalance problem.

Thanks - this was driving me nuts.....
 
  • Like
Reactions: bradysd4

danielsjam

Senior Member
Nov 26, 2010
93
17
0
No I removed a 0 based on the fact that all others have five 0's or there are a total of six digits

Sent from my Transformer TF101 using Tapatalk
 
Last edited:
  • Like
Reactions: tltb26

verkion

Senior Member
Sep 3, 2007
349
33
0
Thanks for posting this up Freeza. Honestly, I was too lazy to do this before. Did you notice the Left Speaker tends to distort far "earlier" (lower volume threshold) than the right one?

danielsjam...are you sure changing/removing a zero fixed or changed the balance? It shouldn't make any difference considering its a trailing zero. I'll test this in a few just to be certain.

Thanks!
verkion
 

freeza

Recognized Developer
May 28, 2006
5,333
14,136
263
Pasadena, CA
www.freeza-inc.com
NOTE: If your right speaker is more quiet of course look for the srs_spk_int:trueq_rband lines instead.

EDIT:

While looking at your fix I noticed something, this is what I pulled from my config:

Code:
srs_spk_int:trueq_lband0 = 900.000000,-9.000000,0.700000 // TruEQ Left Band 0 Tuning (CF Gain Q) -
srs_spk_int:trueq_lband1 = 11000.000000,6.000000,0.500000 // TruEQ Left Band 1 Tuning -
[B]srs_spk_int:trueq_lband2 = 400.000000,3.000000,0.7000000 // TruEQ Left Band 2 Tuning -[/B]
srs_spk_int:trueq_lband3 = 2500.000000,-9.000000,0.700000 // TruEQ Left Band 3 Tuning -
srs_spk_int:trueq_rband0 = 900.000000,-9.000000,0.700000 // TruEQ Right Band 0 Tuning (CF Gain Q) -
srs_spk_int:trueq_rband1 = 11000.000000,6.000000,0.500000 // TruEQ Right Band 1 Tuning -
[B]srs_spk_int:trueq_rband2 = 400.000000,3.000000,0.700000 // TruEQ Right Band 2 Tuning -[/B]
srs_spk_int:trueq_rband3 = 2500.000000,-9.000000,0.700000 // TruEQ Right Band 3 Tuning -
if you pay attention you will find that the 2 highlighted lines are a different length, even though they should be equal, woops Asus?
oh wow. I hadn't noticed. GREAT find.

Thanks for posting this up Freeza. Honestly, I was too lazy to do this before. Did you notice the Left Speaker tends to distort far "earlier" (lower volume threshold) than the right one?

danielsjam...are you sure changing/removing a zero fixed or changed the balance? It shouldn't make any difference considering its a trailing zero. I'll test this in a few just to be certain.

Thanks!
verkion
Yeah, I do notice it a tad, but I can definitely live with it! I was hoping you wouldn't mind. :)
 
Last edited:
  • Like
Reactions: soxfan81

danielsjam

Senior Member
Nov 26, 2010
93
17
0
Yes fixed my left speaker. Before this I could barely hear my left. If not wrong they are using ALSA sound drivers. You may find more info at the ALSA web site.

Sent from my Transformer TF101 using Tapatalk
 

jcX4ever

Senior Member
Sep 16, 2006
105
5
0
I pushed the OP's attached file (srs_processingDEFAULT.zip) then my left speaker became more louder. I pushed back my pulled stock original file from my TF but then my right speaker is now louder.

Stock pulled file attached.
 

Attachments

verkion

Senior Member
Sep 3, 2007
349
33
0
BTW, anyone know what srs_processing_JN101.cfg is for? It's almost identical to the original cfg and it showed up for 3.1. if you change stuff in there, sound seems to be unaffected?

Thanks!
verkion
 

verkion

Senior Member
Sep 3, 2007
349
33
0
Since sharing is caring, here's my srs_processing.cfg

You'll notice in the TrueEQ settings, my center frequencies are completely different (or quite different at any rate), because I was trying to get a nice flat response. It's better but not very good b/c the speakers suck at the end of the day.

I ALSO turned down the gain in the following section:
Code:
HLimit - Internal Speaker Boosted
hlimit_boost = 2.000
This it to prevent the distortion in the left speaker but has the negative effect of making everything quieter.

Incidentally, the reason why I am trying to get a flat response is because you'll notice that there are 10 GEQ settings for "Internal" and 10 GEQ settings for "External". They are all set to 0 at the moment but you COULD tweak them to your liking. Each of the presets appears to be a 10-band equalizer, probably fairly standard frequency spacing, controlled in dB gains. i.e. you actually have a built in Equalizer that isn't really being utilized properly.

You can have a bunch of different profiles and then switch between them by specifying which preset you want to use:
Code:
geq_int_preset = 0 where 0 is the preset number
This line is found at the top of the srs_processing.cfg file.

Lots more to play with in that config file. I wish there was some way to "reinitialize" the sound engine without having to reboot. Then, a program w/a gui could be written that allows this stuff to be adjusted by the user as long as they had root access.

Thanks!
verkion
 

Attachments

andrew2511

Senior Member
Nov 26, 2008
375
403
0
i tryed your fix and it works really nice! :) but i'm "scared" about the stress that the left speaker have to sustain. i notice that there is a very strong vibration of the left side of the back cover so i think that the left speaker isn't equal to the right but it's smaller.

i don't want a damaged left speaker so i renounce to the balancing :(
 
  • Like
Reactions: freeza

d.brown

Senior Member
May 15, 2010
403
46
58
montreal
I think the problem with speaker balance is due to the fact that the right side as more opening (microsd, hdmi) for the sound waves to get to our ears...if you look at the left side those tiny holes on a metal casing don't let enough sound waves thought that's why when you listen to some music at a higher level you feel the back plastic casing vibrating... Like a subwoofer made of plastic

Sent from my Desire HD using XDA Premium App
 
Last edited:
  • Like
Reactions: freeza

Shawn_230

Senior Member
Apr 14, 2005
610
34
0
i tryed your fix and it works really nice! :) but i'm "scared" about the stress that the left speaker have to sustain. i notice that there is a very strong vibration of the left side of the back cover so i think that the left speaker isn't equal to the right but it's smaller.

i don't want a damaged left speaker so i renounce to the balancing :(
Interesting. I haven't applied this fix yet and noticed my right speaker (the louder one) is already having the vibrating effect.

So wouldn't it be normal that the left speaker, the quieter one, would also make the case vibrate around it if you turn up the volume to balance with the other speaker?
 

BitVenom

Member
Jun 30, 2010
48
5
0
ASUS is using a 'static' version of that processing system - it only reloads at boot. Sorry guys. There's an interactive version with various UI and import/export features too - but generally it's only active during development/QA - at retail it is often locked-out.

Nice find on that typo - now I have to go debugging :)
 
  • Like
Reactions: freeza

andrew2511

Senior Member
Nov 26, 2008
375
403
0
Interesting. I haven't applied this fix yet and noticed my right speaker (the louder one) is already having the vibrating effect.

So wouldn't it be normal that the left speaker, the quieter one, would also make the case vibrate around it if you turn up the volume to balance with the other speaker?
the right vibrates too but applying the fix the left back cover will vibrate more and more than the right one. so balancing the speakers, the left having the same volume of right seems to be stressed much more

tested on iron maiden :p