Fix speaker and headphone sync for Ubuntu ALSA and snd-hda-intel

by Stephen Fluin 2009.03.15

Since my switch to Ubuntu over a year ago, I have had slightly annoying problems with my sound. I have two setups for my main desktop. The first is on the second story of my house. There I have two monitors and a nice sound system setup. The second setup is makeshift, but involves a single monitor borrowed from upstairs and the speaker built into the monitor. The problem is that with ALSA, plugging in headphones into the front jack on the computer has no effect on the sound coming from the rear to my speakers.

Effective Speaker ControlsThis isn't a problem on my nice sound system setup, as one of the speakers has a built-in headphone jack and power button that is closer to my head than the front panel of my computer. The speakers themselves handle the muting of the speakers when headphones are plugged in.

On my second makeshift setup, it is a different story. The volume controls and the on/off switch for the speaker in my monitor is buried in monitor control menus, and are completely impractical for actually controlling the sound I hear. In this second setup, my headphones also get plugged into the jack on the front of my computer, as this is the most convenient spot.

The software-based controls for volume and mute work great, with one exception. When I plug my headphones into the front jack, the sound from the speakers isn't muted, and any control that mutes the standard speakers also mutes the headphone. I began looking into the problem thinking that my sound card wasn't detected properly or that there was some configuration setting I had missed. After a few hours of searching, I found this to be untrue. I nearly gave up, but I had an idea. Standard 6 channel sound configuration I moved the speaker jack from the standard green port which my computer understands to be "front" to each of the other ports to see if I could hear the music I had playing. I first made sure that none of the channels my computer could detect were muted.

Success! I found that the black port worked. Through a sequential muting of each of the channels, I found that ALSA calls this port "Surround", and that I was able to mute it independently of the headphones. I was a little worried that this channel would only receive sound from some applications, but so far my testing has revealed that all sound that was previously sent through "front" or my headphones, still is sent through the "Surround" channel.