Eee PC internal microphone inverts noise cancellation

Bug #331130 reported by Mark Rowan
60
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ubuntu EeePC Kernel
Invalid
Undecided
Unassigned
linux (Ubuntu)
Invalid
Medium
Unassigned

Bug Description

The inbuilt stereo microphones at the bottom of the Eee 901's screen are supposed to allow directional recording and noise cancellation. However, some setting somewhere, perhaps in the sound driver, appears to be inverted, such that the mic picks up sound very clearly on either side of the Eee, and nothing at all from directly in front. The two internal mics seem to be combined in such a way as to cancel sound from the middle, which is the opposite behaviour to that expected (cancelling surrounding sound, and picking up only the user's voice from the centre).

E.g. if I sit and talk to the Eee facing it directly, my voice is not captured (or rather, it is cancelled out by the stereo mic). As I move left and right, to about 45 degrees either side of straight-ahead, my voice becomes clear and is recorded perfectly well. Alternatively, placing a finger or blue-tac over one of the microphones will also cause the sound to be picked up correctly, as the noise cancellation cannot be performed.

Using Ubuntu 8.10 with the Array kernel (http://www.array.org).

Expected results: sounds occurring directly in front of the Eee's internal microphones should be captured, with surrounding sounds cancelled through the noise cancellation feature of the dual microphones.

Actual results: sounds occurring directly in front of the Eee are cancelled, with surrounding sounds at 45+ degrees from centre picked up instead.

Revision history for this message
Mark Rowan (mark-tamias) wrote :

Just speculating, as I don't know the mechanics of dual-mic noise cancellation, but is it possible that in some Eee PCs the physical location of the microphones is swapped, causing the inverted noise cancellation pattern? If so, could a basic kernel / ALSA update swap the microphones back in software?

Revision history for this message
the_drag0n (the.drag0n) wrote :

i had to chance to get my hands on a eee901 go with ubuntu 8.10 (array kernel) installed and was able to confirm the bug.

Changed in linux:
status: New → Confirmed
Revision history for this message
mudster (stefan-lennartsson) wrote :

I would like to share the following information that I have:

I bought the windows version of eee 901 and ran the pre-installed skype, it worked perfect with good sound.

After installing eeebuntu base and installing skype I do have the problems mentioned here. Therefore I conclude that the problem is solvable by software and not a hardware error.

Revision history for this message
csortu (csaba-ortutay) wrote :

I confirm the problem on my Eee 901. With the original Xandros it worked well, with eeeubuntu 2 I have the mentioned problem.

Revision history for this message
Lopo Lencastre de Almeida (humaneasy) wrote :

I don't have an eeePC but my notebook is almost the same stuff in it:

- Microsoft Windows® XP Home Portuguese;
- Linux Mint 6 (Felicia) Universal;
- Array.org kernel 2.6.27-8-eeepc (I removed the original Ubuntu one);

- Intel Atom N270 1.60Ghz;
- TFT 10" Wide WSVGA (1024X600);
- 1GB DDR2;
- Intel UMA Share System Memory and Intel 945CMS + ICH7M.
- 160GB SATA;
- LAN 10/100Mb, Wireless 802.11bg (I suspect its the Intel ABG 3945);
- Bluetooth
- 1 VGA;
- 3 USB, 1 RJ45, 1 mic, 1 stereo;
- 4 in 1 Card Reader (SD/MMC/MS/MSpro)
- WebCam 1.3Mpx (this is a BisonCam NB Pro)
- Li-Ion battery, 3 Cells 2200mAh, (max auton. 180min.)
- 260(W) x 180(L) x 19~31.5(H)mm, 1Kg (with battery)

My mic does not work at all and I don't have the possibility to access it via Bios setup (not an option there).

It works flawlessly in MS Windows XP but does not input any sound... not even in 45 degress ;)

Revision history for this message
Damien (damien-england) wrote :

Sharing an observation.....

From experimentation it appears that the "left" mic channel has side information and the "right" has mono (middle). Something like Chan1=L-R Chan2=L+R.

If this were reversed at least most applications would get the sum of the two microphones (i.e. mono). As things stand, when apps use the first mic channel they just get the difference (side) which is usually of no use.

To confirm this I moved around making noise, then using audacity I split the stereo sample into two mono samples, I'll call them 1 and 2... inverted 1 to make !1, then with a bit of fiddling made a pair of samples (1+2) and (!1+2), joined them as stereo left and right and got what I'd have had if the mics had been straight stereo.

If anyone here has audacity on their 901 can they confirm that the right channel appears to be the sum of the mics, and the left is the difference?

Revision history for this message
janrikard (janrikard) wrote :

I have the same bug on an eee 1001 with jaunty unr.
I would really like the person who fix this

/rikard

Revision history for this message
Jesse Wyant (jesse-r-wyant) wrote :

I agree with Damien--my experiments on my EeePC 901, using Audacity similarly, bring me to a similar conclusion. The "left" mic channel appears to be the difference, and the "right" mic channel is the sum.

This causes a problem for me when I download and try using Skype (version 2.0.0.72) [I know, I'd prefer something open sourced, like Ekiga, but 1) I got rid of Gnome for a space savings of over 800MB, and 2) I need something cross-platform to communicate with family members.] Skype's audio input selection is ALSA-aware, but doesn't let you specify channel information, and it appears to select the Left mic. channel on my EeePC, which is just that "difference"--not usable. So, as an experiment, I crafted a ~/.asoundrc clause to swap the mic. channels for a new ALSA device or whatever the proper term is, calling it "skype" like this:

pcm.skype {
  type route
  slave.pcm "hw:0,0" # Or, if you've followed examples which sets up a "dsnooped" label, then you could say "dsnooped" here instead (if you wanted to use software-mixed-input.)
  ttable.0.1 1
  ttable.1.0 1
}

Then, in Skype, I select the "skype" ALSA label, and now I can hear myself when performing a test call, nice and clearly.

Yeah, it'd be great if there was a way, using the .asoundrc file, to subtract the "difference" channel from the "sum" channel, but I imagine you'd have to investigate using the LADSPA plugins for that, or use JACK, or PulseAudio, or something complex like that. (Or, it'd be nice to have an ALSA module parameter to tell it to do that mixing in kernel space for us, giving us a nice clean mono mic. channel...)

But, anyway, again, this is my recent experience on an Asus EeePC 901, using Debian (Lenny) [I know, not Ubuntu, but I had found this thread to be very informative, and wanted to add my experience]; I'd recompiled ALSA (version 1.0.19, under kernel 2.6.26-1-686), and had to add the line 'options snd-hda-intel model=eeepc-p901' to /etc/modprobe.d/alsa-base, not that that really changed anything (but before adding that options line, I had had a line in my /var/log/boot where the snd-hda-intel module couldn't determine the model information, which disappeared when adding that options line.) I'd used http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt (and HD-Audio-Models.txt.)

Revision history for this message
bowman (tereshkosg) wrote :

confirmed on ASUS Eee PC 1000HE. Netbook remix Ubuntu 9.04

Suggested by Jesse Wyant workaround helped and made skype usable.

Revision history for this message
mercutio22 (macabro22) wrote :

Same here on Eee PC 1000Ha. Jesse Wyant's workaround made skype usable but unfortunately my overall audio volume got diminished after creating the /etc/asound.conf file.

Even if I delete it I can't revert the effect.

Revision history for this message
mercutio22 (macabro22) wrote :

nevermind. Selecting HDA Intel (Alsa Mixer) on volume control and raising everything resolved my issue!

Thanks for the skype solution. Lets hope this gets incorporated into the NBR instalation.

Revision history for this message
kalleanka (vilhar) wrote :

I did make a fresh install of eeebuntu on my eeepc 900a.

Then I aded .asoundrc (http://alsa.opensrc.org/index.php/.asoundrc) in my home dir as Jesse Wyant (https://bugs.launchpad.net/ubuntu/+bug/331130) suggested.

pcm.skype {
  type route
  slave.pcm "hw:0,0"
  ttable.0.1 1
  ttable.1.0 1
}

Then I connected my wireless - no problem.

Then I changed in volume control:
- Master, PCM, Front to max
- added(preferances) Capture and almost to max.
- set input source under options to Front Mic

Then I went to skype -> options -> sound devices and:
- choose HDA Intel (hw:Intel,0) in Sound In, Sound Out and Ringing
- unclicked Allow skype to ....

Then it works for me with skype. Its not a perfect sound but you get what can be expected with these speekers and mics.

Revision history for this message
Brezhonneg (fricompte) wrote :

Problem confirmed on my 901 with Ubuntu 9.10 alpha 2 (Karmic Koala).

Kernel: 2.6.30-8-generic

alsa-base: 1.0.20+dfsg-1ubuntu4

Revision history for this message
Brezhonneg (fricompte) wrote :

And confirmed again with Ubuntu 9.10 alpha 6.

Kernel: 2.6.31-10-generic

alsa-base: 1.0.20+dfsg-1ubuntu4

The suggested fix (see #8) does not work for me (skype 2.1.0.47-1).

Revision history for this message
cAtdraco (catdraco) wrote :

I can confirm this bug again under Kubuntu 9.10 netbook beta. However, adding .asoundrc and restarting ALSA fixed it - once I turned my input levels up, anyway. =) Thanks Jesse.

madbiologist (me-again)
tags: added: jaunty karmic
Revision history for this message
michel jacobs (tepaard) wrote :

on my acer aspire one d250 i had the same problem. However the trick to decouple the input channels and put one down en one up worked only after applying the latest bios (upgrade from 1.06 to 1.26)

Revision history for this message
penalvch (penalvch) wrote :

Mark Rowan, thank you for reporting this and helping make Ubuntu better. Karmic reached EOL on April 30, 2011.
Please see this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We were wondering if this is still an issue in a supported release? If so, could you please test for this with the latest development release of Ubuntu? ISO CD images are available from http://cdimage.ubuntu.com/releases/ .

If it remains an issue, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p linux <replace-with-bug-number>

Also, could you please test the latest upstream kernel available following https://wiki.ubuntu.com/KernelMainlineBuilds ? It will allow additional upstream developers to examine the issue. Please do not test the kernel in the daily folder, but the one all the way at the bottom. Once you've tested the upstream kernel, please comment on which kernel version specifically you tested and remove the tag:
needs-upstream-testing

This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the text:
needs-upstream-testing

If this bug is fixed in the mainline kernel, please add the following tags:
kernel-fixed-upstream
kernel-fixed-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested.

If the mainline kernel does not fix this bug, please add the following tags:
kernel-bug-exists-upstream
kernel-bug-exists-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested.

If you are unable to test the mainline kernel, please comment as to why specifically you were unable to test it and add the following tags:
kernel-unable-to-test-upstream
kernel-unable-to-test-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested.

Please let us know your results. Thank you for your understanding.

Helpful Bug Reporting Links:
https://help.ubuntu.com/community/ReportingBugs#Bug_Reporting_Etiquette
https://help.ubuntu.com/community/ReportingBugs#A3._Make_sure_the_bug_hasn.27t_already_been_reported
https://help.ubuntu.com/community/ReportingBugs#Adding_Apport_Debug_Information_to_an_Existing_Launchpad_Bug
https://help.ubuntu.com/community/ReportingBugs#Adding_Additional_Attachments_to_an_Existing_Launchpad_Bug

tags: added: kernel-sound needs-kernel-logs needs-upstream-testing
tags: added: intrepid
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
Revision history for this message
Mark Rowan (mark-tamias) wrote :

Bug has not been noticed in recent Ubuntu releases.

Changed in ubuntu-eeepc-kernel:
status: New → Invalid
Revision history for this message
penalvch (penalvch) wrote :

Mark Rowan, this bug report is being closed due to your last comment https://bugs.launchpad.net/ubuntu/+source/linux/+bug/331130/comments/19 regarding this being fixed with an update. For future reference you can manage the status of your own bugs by clicking on the current status in the yellow line and then choosing a new status in the revealed drop down box. You can learn more about bug statuses at https://wiki.ubuntu.com/Bugs/Status. Thank you again for taking the time to report this bug and helping to make Ubuntu better. Please submit any future bugs you may find.

Changed in linux (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.