Jump to content

A solution for your anemic sounding "Internal Speakers"


4 posts in this topic

Recommended Posts

Some people have to select "Internal Speakers" from their System Preferences in order to get output from the Line Out of their sound card and find that there's hardly any bass left in the signal. I noticed others complaining about this so I'm posting my fix for it. I initially wanted to remap the codec pins but this turned out to be much simpler. It turns out os x does some soft DSP on the "Internal Speakers" partially to compensate for their size in the Macbooks and probably also to protect them. Unless you're running on a laptop, it's totally useless so I found how to remove it, making "Internal Speakers" equivalent to a Line Out. This assumes you're using AppleHDA.kext for your audio. I did this on a 10.5.5 version, but it might work on others, though of course no guarantees...


In essence, we're copying the original, modifying the copy and then replacing the original. You can't modify the original in the kext folder directly. This also assumes that you've installed the Developer tools, cause you'll need the Property List Editor. Someone posted it not long ago, so you might look for it if you don't have the Dev tools installed.


Note: it's always a good idea to keep a backup of the Extensions folder or to use Time Machine in order to restore any changes you make in case something goes wrong.


1. Make a copy of your AppleHDA.kext to your desktop or a folder. It's in /System/Library/Extensions/

2. Right click on it and select "Show Package Contents". This will open a new finder window.

3. Navigate to "Contents/Plugins/" and right click on "AppleHDAPlatformDriver.kext" and select "Show Package Contents" again, opening yet another finder window (a kext within a kext).

4. In this one, right click "Contents/Info.plist" and open it, or right click and select "Open With/Property List Editor".

5. Now you navigate down the tree (keep clicking each subsequent direction triangle) until you reach "PathMapRef" and then open "0" and you'll see all the various inputs and outputs enumerated here.


At this point you might want to look around at the various settings. Note that the "LineOut" has no values and that the SignalProcessing assigned to IntSpeaker includes Muting, Gain management and Equalization. DSP is also used on the mic.


6. Select each item within the "IntSpeaker" item ("MaximumBootBeep", "MuteGPIO" and "SignalProcessing") and click on the "Delete" button at the top of the Plist Editor window so that "IntSpeaker" has no entries (like "Line Out"). (In principle you really only need to get rid of "SignalProcessing" cause that's what's killing the bass, but I figured if I was using this out as a line out, then why not make it the same. Up to you.)

7. Save the plist and close plist editor and the two "Content" finder windows.

8. Now replace the original kext. I find Kext Helper 0.7 works fine for this; open Kext Helper and drag and drop your modded kext on it's window, and click on Easy Install... wait 20 seconds or so before rebooting (let the HD finish thrashing about)

9. Reboot and you're done.


I compared before and after and it really makes a difference: the bass is back. Hope this helps someone. Thanks to MadTux for "showing the way" :(

  • Like 1
Link to comment
Share on other sites

  • 3 months later...
  • 4 weeks later...
  • 1 year later...

  • Create New...