Author Topic: Microphone low gain / muddled voice on GSM phone calls  (Read 419 times)

Patrick H

  • Newbie
  • *
  • Posts: 2
    • View Profile
Microphone low gain / muddled voice on GSM phone calls
« on: June 30, 2020, 09:45:02 am »
Hi all!  I got my Cosmo and spent a few days bench-marking it with V19 out of the box.  All seemed okay as I tested the functions and features.  I'm new to smartphones and Android so I did all this in baby-steps.  All was fine so I put my AT&T GSM sim, checked data connect and made a test call.  Everything was good until I checked the message I left myself.  It sounded like I was speaking from the bottom of a well underneath a blanket.  Calls to various people confirmed this.

So, having bought this to expand my skills I've switched to troubleshooting mode.  There are a couple posts here that seem to describe similar behavior so I'll list my setup, observations, and direction things are taking me.  There's another similar thread that was of some help here:         

Other things I noticed that also don't seem to work:
- Phone App>settings>Accessibility>Noise reduction to "off" also doesn't survive reboot.
- Settings>Sound>Advanced>Soundenhancement>BesLoudness setting to "off" doesn't survive a reboot.
- EngineerMode>Telephony>Misc Feature Config  Vibrate on call connect to "off" does nothing
- SIM Toolkit app "not ready or unsupported"

Setups:
- Cosmo partitioned 30/60GB running shipped V19 (Now V22 - same problem) with no encryption or password.  Installed Ninji's TWRP, Rooted Android (with Magisk, Termux & MiXplorer) on the other partitions.  AT&T GSM sim swapped from old dumb phone.
- EngineerMode>Hardware Testing>Audio>Volume>Voice>Receiver - NB Receiver, Receiver_SV, and Headset UL Gains to "252".  NB Sidetone gain at "240". Headset NB UL Gain to "252".  Speaker all bands UL Gain to "252".
- VLC comparison playback between downloaded Comcast viocemails and Recorded files from Cosmo on PC.
   

Observations:
- CODI Sound Recorder is clear and captures background TV noise.  Playback volume at max was still a tad low but much higher quality.
- I can't tell wich microphone is active at any time.  Up, down, open, closed, or speakerphone in both, initiatating a call and voicemail from any of those positions seems to make no difference.
- Call Microphone seems to be missing mid-high frequencies.  Max level in Engineering mode produces a bit of clipped audio from over driving the bass-midrange.  Background audio is completely suppressed.
- EngineeringMode produced minor but observable results, but only the "Receiver" settings helped.  I think they are combined with the earpiece as I can hear my own background noise clearly in call.
- No specific "Mic" setting in EngineerMode?
- Combined with the settings that don't keep on reboot and missing specific mic settings in EngineeringMode, I seem to be running into hard coded parameters.

Attempts at a fix:
- *See https://www.oesf.org/forum/index.php?showto...mp;#entry296273
- Both my Cosmo TWRP, ADB (recovery mode, su, whatever), and rooted Android just lie,lie,lie,lie,lie to me about mounting /dev/block/mmcblk0p35 to /vendor in read/write mode.  I even tried it from the linux side (with Pluma edits) just for kicks.  All changes get wiped on reboot (not remount).  Running e2fsck after edits gives a "modified" warning and manually reverts.  Probably has been going on in the background on all my reboots.

I would like to test some rapid fire changes to the Magic Noise Reduction parameters, and maybe the gain freq parameters while I'm at it.

Any tips would be appreciated.  Meanwhile I'll post updates here on my progress and hopefully knock togeather a proceedure to fix this.
« Last Edit: August 17, 2020, 09:02:06 am by Varti »

ehem

  • Newbie
  • *
  • Posts: 30
    • View Profile
Microphone low gain / muddled voice on GSM phone calls:
« Reply #1 on: June 30, 2020, 11:10:18 pm »
Quote from: Patrick H
- Both my Cosmo TWRP, ADB (recovery mode, su, whatever), and rooted Android just lie,lie,lie,lie,lie to me about mounting /dev/block/mmcblk0p35 to /vendor in read/write mode.  I even tried it from the linux side (with Pluma edits) just for kicks.  All changes get wiped on reboot (not remount).  Running e2fsck after edits gives a "modified" warning and manually reverts.  Probably has been going on in the background on all my reboots.
The situation with /vendor is rather more interesting than you were thinking.  Ever tried running the `mount` command or examining the contents of /proc/mounts?

Android isn't mounting /dev/block/mmcblk0p35 on /vendor.  Instead Android is mounting /dev/block/dm-0 on /vendor.  /sys/devices/virtual/block/dm-0 can tell you some about dm-0.  The virtual file which stands out is "fec/corrected" and on mine contains "0".  I'm pretty sure "fec" is shorthand for "Forward Error Correction".  Mainly Android has error-correction implemented on mmcblk0p35 to try to stop you from modifying /vendor.

A few approaches to this situation stand out.  First, you can figure out how to disable this.  This process may start by modifying the initial ramdisk or by modifying /system.  You'll need to find out where device-manager gets configured ("dm" is shorthand for "device-manager").  Alternatively inside Magisk, under "Advanced Settings" notice the option "Preserve AVB 2.0/dm-verity"?  I'm reasonably sure this is related, though note turning that off carries some risk.

Second, you can work within the system to figure out how to make dm-0 writeable.  Ever noticed the "androidboot.veritymode=enforcing" and "veritykeyid=id:<hex string>" values in /proc/cmdline?  I'm pretty sure that is part of this situation, but I haven't won the battle with the details.  Might be as simple as turning off the setting I mentioned in the last paragraph, modifying and then turning it back on.


Welcome to Android security.  They're trying to defend devices from malicious programs, but some of it is more aimed at thwarting owner modifications.

Zarhan

  • Full Member
  • ***
  • Posts: 201
    • View Profile
Microphone low gain / muddled voice on GSM phone calls:
« Reply #2 on: July 02, 2020, 04:49:30 am »
Quote from: Patrick H
Observations:
- CODI Sound Recorder is clear and captures background TV noise.  Playback volume at max was still a tad low but much higher quality.

I've made the same observation, that this is probably *not* tied to the mic hardware itself, but something weird goes on when the call goes out to PSTN. Unfortunately, the gain setting is really as far as I got.

However, there are apparently *no* issues if I use external mic, e.g. a headset. Just a plain wired USB makes clear difference. So it's not exactly the transcoder for GSM/VoLTE Codecs, either, because if that had wrong settings, then the problems would be there also for external microphones.

Zarhan

  • Full Member
  • ***
  • Posts: 201
    • View Profile
Microphone low gain / muddled voice on GSM phone calls:
« Reply #3 on: July 12, 2020, 01:23:39 pm »
Quote from: Patrick H
Any tips would be appreciated.  Meanwhile I'll post updates here on my progress and hopefully knock togeather a proceedure to fix this.

Have you been able to figure out anything?

I have to say, I've gotten less complaints about poor voice quality since V22/V23-update, although it might be that my colleagues have simply stopped caring about the issue...

kubaz

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Microphone low gain / muddled voice on GSM phone calls:
« Reply #4 on: August 17, 2020, 08:48:32 am »
Hello

I have a similar problem. People who talk to me on the phone almost every time they say they can hear me. They say it's quiet and unclear.

Is it possible to solve the problem? Is it a defect of my device and I should send it back for repair?

Regards

Zarhan

  • Full Member
  • ***
  • Posts: 201
    • View Profile
Re: Microphone low gain / muddled voice on GSM phone calls
« Reply #5 on: October 28, 2020, 03:32:56 am »
Patrick, did you ever find a solution to this?

I again got a complaint today from a customer about my poor voice quality. Well, quickly fixed by activating my headset, but still, the issue is still there...