New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 775206 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

[chell] Mic Jack microphone input is very low

Project Member Reported by matthewjoseph@chromium.org, Oct 16 2017

Issue description

Google Chrome	61.0.3163.123 (Official Build) (64-bit)
Revision	0
Platform	9765.85.0 (Official Build) stable-channel chell
Firmware Version	Google_Chell.7820.253.0

What steps will reproduce the problem?
(1) Plug in headphones to 3.5 jack
(2) Navigate to online-voice-recorder.com
(3) Record audio 
(4) Play back the recorded audio
(5) Observe extremely low gain on recorded audio

What is the expected result?
Audio recorded via the 3.5 jack should be audible

What happens instead?
Recorded Audio is barely heard

Notes:
The issue only happens with a headset plugged into the 3.5 jack.  USB audio devices behave normally.  I've attached recording from both inputs.

 
debug_logs_chell.tgz
196 KB Download
apple_headphones-3.5-jack.mp3
143 KB Download
SA9302_usbC_headphones.mp3
143 KB Download
Components: OS>Kernel>Audio
24 dB on external microphone is the largest we can get on chell/glados/lars..etc skylake platform.

In https://chromium-review.googlesource.com/630903, we increased the node gain to 4dB.
Node gain to 4dB plus system default gain 20dB is the highest 24dB.

Given that WebRTC usage looks fine ( https://bugs.chromium.org/p/chromium/issues/detail?id=747450#c56 )
I would like to mark this as work as intended.




Status: WontFix (was: Untriaged)

Comment 4 by yungleem@google.com, Oct 17 2017

Status: Untriaged (was: WontFix)
Before marking this "WontFix" let's revisit this again as there are multiple users started seeing the issue with the latest M61 stable push.
After doing some more testing on this issue, I've observed some irregularities with the applied Capture Gain value from cras_test_client --dump_server_info.

1) The applied capture gain after a fresh recovery of the device and logging in with a user account is 20.00dB
    a) This is the same regardless of whether headphones are plugged in or on internal microphone
    b) The value is the same if you reboot the device after the initial OOBE with headphones plugged in
2) Launching webRTC with nothing plugged into the device (e.g. internal mic & speaker) the capture gain changed to 17.66dB
3) Plugging in headphones in the same webRTC session, the gain changed to 16.97dB

At this point the capture gain never changes for the headphones until reboot.  If I launch online-voice-recorder.com, it remains the same.   It appears the capture gain that should be applied for the internal microphone is overriding the headphone mic as well.  I also checked this on a Lulu device and the capture gain applied to the headphones changes each time the node is switched. (e.g. internal to external microphone)

Attached more Logs here:
https://pantheon.corp.google.com/storage/browser/chromiumos-test-logs/bugfiles/cr/775206
As a workaround, executing: cras_test_client --capture_gain 2400 resolves the issue on my device.
Owner: cychiang@chromium.org
Status: Assigned (was: Untriaged)
Status: Started (was: Assigned)
I followed the steps as in #5 and understand this is the issue that automatic gain control (AGC) does not work as we desire.

Background: WebRTC does not have knowledge of speaker / headphone.
So, it adjusts system gain when it thinks it needs to.

Different device has different gain limit.
On chell,
Int mic: -50~20 dB, done by software gain.
Ext mic: -50~24 dB, done by volume mixer control.
CRAS stores the requested system gain from WebRTC and tries to apply the requested system gain on different devices.


In the above example:

1) Initial system gain: 20 dB
2) Used WebRTC with Int mic, WebRTC requested 17.66dB
3) Plugged in headset to use Ext mic, WebRTC requested 16.97dB

In 3), why does WebRTC request 16.97dB while it is too low ?
This seems to be WebRTC issue. If AGC works properly, the gain should be adjusted higher to 23 dB or so.
But it is hard for WebRTC to tell when it needs to increase the gain, since user might not be speaking.

Since user complaints about this, we can mitigate the problem using CRAS UCM:

1. Set the largest value of internal mic gain to 24 dB to align with 20 dB. This will make WebRTC deal with the same system gain range when device switches. This might make AGC works better.
2. Increase the default node gain from 4dB to 8 dB.
  https://chromium-review.googlesource.com/630903 was merged to R62. We added 4dB to external mic. #0 was using R61, so R62 should behave better.

It would be too late for R62. I can prepare the two changes to R63.

Thanks!









Labels: M-63
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/c0e3c885cdd4009930b1460f60677abcdae27637

commit c0e3c885cdd4009930b1460f60677abcdae27637
Author: Cheng-Yi Chiang <cychiang@chromium.org>
Date: Thu Oct 26 11:17:53 2017

glados, chell: Adjust microphone gain

There are user complaints about external microphone gain too small after
WebRTC AGC adjusts the gain.
In this CL we fix this by:
- Increase the upper limit of internal microphone gain to 24 dB so the
  value of system gain is aligned for internal/external microphone.
  This makes WebRTC less confused.
- Increase the default node gain of external microphone gain to 8dB.

This should make external microphone works better.

BUG= chromium:775206 
TEST=check external microphone gain is above 20 dB after WebRTC usage.

Change-Id: I24b53971540c03956296f28813dbc3dc9f02bf2e
Reviewed-on: https://chromium-review.googlesource.com/737515
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/c0e3c885cdd4009930b1460f60677abcdae27637/ucm-config/glados/sklnau8825adi/HiFi.conf

Labels: Merge-Request-63
Verified #11 on 10081.0.
Add merge request to R63.

Thanks!
Project Member

Comment 13 by sheriffbot@chromium.org, Oct 31 2017

Labels: -Merge-Request-63 Merge-Review-63 Hotlist-Merge-Review
This bug requires manual review: M63 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Review-63 Merge-Approved-63
Project Member

Comment 15 by bugdroid1@chromium.org, Nov 2 2017

Labels: merge-merged-release-R63-10032.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/cb650d94344c9d6401406e102108269aacbd4683

commit cb650d94344c9d6401406e102108269aacbd4683
Author: Cheng-Yi Chiang <cychiang@chromium.org>
Date: Thu Nov 02 02:42:06 2017

glados, chell: Adjust microphone gain

There are user complaints about external microphone gain too small after
WebRTC AGC adjusts the gain.
In this CL we fix this by:
- Increase the upper limit of internal microphone gain to 24 dB so the
  value of system gain is aligned for internal/external microphone.
  This makes WebRTC less confused.
- Increase the default node gain of external microphone gain to 8dB.

This should make external microphone works better.

BUG= chromium:775206 
TEST=check external microphone gain is above 20 dB after WebRTC usage.

Change-Id: I24b53971540c03956296f28813dbc3dc9f02bf2e
Previous-Reviewed-on: https://chromium-review.googlesource.com/737515
(cherry picked from commit 235c64df3b42192b0aae3677974e3df98c5c915b)
Reviewed-on: https://chromium-review.googlesource.com/749568
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Commit-Queue: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>

[modify] https://crrev.com/cb650d94344c9d6401406e102108269aacbd4683/ucm-config/glados/sklnau8825adi/HiFi.conf

Labels: -Merge-Approved-63
Status: Fixed (was: Started)
Thanks Josafat!
Labels: -Hotlist-Merge-Review
Here's one report from Cave 10089.0.0
https://listnr.corp.google.com/report/84148902243

Jimmy, can you please help take a look further? Thanks!


Hi Agnes, the feedback report you posted was about headphone too low.
We have seen this kind of report. It is strange that the headphone mixer control and node volume were correct, but volume as low. We don't have a way to reproduce it yet so it is hard for us to debug.
Thanks Jimmy. Actually I noticed a few reports about headphone volume is low on cave recently. I forked the issue here for more investigation: b/69087090

Sign in to add a comment