Signal-android: Call volume better with 3.9.0 but still too low

Created on 30 Dec 2015  Â·  61Comments  Â·  Source: signalapp/Signal-Android

Hello,

After updating to 3.9.0, the call volume is better (was issue #4244) but still low VS a classic phone call (same contact).
Both sides running 3.9.0, both see the improvement but still lower than classic phone call for both sides.

Phone 1 : Nexus 6P, stock 6.0.1, Signal 3.9.0.
Phone 2 : Moto G (2nd gen), stock 5.0.x, Signal 3.9.0.

Most helpful comment

I can confirm WAY better call volume and quality with 3.29.6. Nexus 5 / Stock / 6.0.1. Before webRTC i had to gues 1/3 of what the other party is saying.

All 61 comments

Yes, I am having the same problem too. The only way to hear something is to use earbuds

@x12x what version are you running?

I'm on 3.9.1 (sorry I thought it was obvious that I'd been following the issue for a while, but it wasn't)

Can verify on my Nexus 6p. To both a nexus 6p and a nexus 4.

Same here on 3.9.1 between a Galaxy S5 and a Moto G3. In fact, I don't think the sound is better at all.

sony xperia z3 compact here.volume works in quiet rooms but in public – no way :(

Low volume in 3.9.1 on Zenphone 5, Android 4.4.2; remote phone is S5 with 3.9.1 and Android 5.1

OK if quiet, otherwise impossible to understand.

Edit: FWIW, the sound on the S6 is almost OK; too quiet still, but much better than the Asus.

I'm having the same problem on a Samsung Galaxy S4 mini (GT-I9195, Android 5.1.1, CyanogenMod 12.1, snapshot YOG7DAO1K3) using Signal 3.9.1. Affects both the speaker in the earpiece as well as the "normal" speaker. Inside, the volume is "okay", but not really comfortable; outside, it's definitely too quiet.

"Call volume better with 3.9.0 but still too low"

I can confirm this experience with both phones running Signal 3.9.1. Further improvements are necessary to make the call feature usable.

Same issue here, issue still present on 3.15.2

After some mor testing, I can confirm the issue is still here on 3.15.2 :

Phone 1 : Nexus 6P, stock 6.0.x
Phone 2 : Moto G (2nd gen), stock 6.0
Phone 3 : Nexus 5, stock 6.0.x
Phone 4 : Galaxy A3, stock ROM

I'm experiencing the low volume problem as well, which indeed prevents me most often from using Signal for voice calls. Also because when I set the volume to maximum the 'loud gong' described in issue #4988 deafens me, which makes hearing my phone counterpart even more difficult.

If there is any testing that I can do, let me know. I can privately share my phone number if you want to test by calling me and gathering relevant debug information.

Phone : BQ Aquaris 3.5, stock 4.2.2, Signal 3.15.2

Happy to help troubleshoot this issue as well, nexus 5 android 6.0.1 MOB30D and signal 3.15.2

On May 8, 2016 7:39:23 AM EDT, janvlug [email protected] wrote:

I'm experiencing the low volume problem as well, which indeed prevents
me most often from using Signal for voice calls. Also because when I
set the volume to maximum the 'loud gong' described in issue 4988
deafens me, which makes hearing my phone counterpart even more
difficult.

I there is any testing that I can do, let me know. I can privately
share my phone number if you want to test by calling me and gathering
relevant debug information.

Phone : BQ Aquaris 3.5, stock 4.2.2, Signal 3.15.2


You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/WhisperSystems/Signal-Android/issues/5004#issuecomment-217710900

Sent from my Android device with K-9 Mail. Please excuse my brevity.

Having this problem between a Nexus 6 (running 7.0 NBD90Z) and a Moto E (running Android 5.1), both have Signal 3.19.1 installed. Call volume is fine on the Nexus 6 but you can hardly hear anything on the Moto E.

This problem is actually rendering Signal voice call close to useless. The only way for me to hear a voice conversation is to put the call on speaker and stick the phone to my ear :(
I don't have this problem when using the following apps: Whatsapp, Line, BBM, Facebook Messenger.

here is a debug log:
https://gist.github.com/anonymous/b1bf6e9b360d2052e63db8050894a763

I still have the same issue on my Motorola Moto X (XT1092) and Signal 3.24.1. Both my friend and I hear very low voice.

@moxie0 one year later, any news on this?
This is a grave usability bug.
(Device: Nexus 6, stock android 7.0, everything up-to-date.)

I didn't dive into the source code yet, but seeing that libredphone-audio
seems to stem either from webrtc or from libspeex or from both (?), if it is a
webrtc issue, maybe this thread could be helpful?:
https://bugs.chromium.org/p/webrtc/issues/detail?id=916

I wish we could find the knob to crank up the volume somewhere in the code.
Need to do some reading on those codecs and on webrtc before that.

Running Signal 3.25.3 on Samsung S5 CM 13.0-20161021-NIGHTLY-klte
and on Samsung S4 CM 13.0-20161021-NIGHTLY-jfltexx
and same issue: extremely low volume. I have a contact with hearing aids
who can hear normal phone calls but can't use Signal/Redphone at all, even
in quiet rooms, so bad it is... even with external Bluetooth speakers. This really
needs to be fixed.

Not sure yet, but theoretically, piping the audio through speex's preprocessor
AGC (automatic gain control) to boost the audio could help crank up the volume.

Concretely:

  1. In Signal-Android/jni/redphone/AudioCodec.cpp::init() add calls to initialize Speex preprocessor, including AGC using speex_preprocess_ctl() with SPEEX_PREPROCESS_SET_AGC_LEVEL. Call other initializers as necessary here. In destructor, don't forget to release the preprocessor as well by calling speex_preprocess_state_destroy().

  2. In Signal-Android/jni/redphone/AndioPlayer.cpp::start(), just before the last call SetPlayState() or Enqueue() (or earlier? not sure...), insert call to speex_preprocess_run() to run AGC on the audio samples just before playback.

Couldn't test yet, since away from my development machine ATM.

I've had a go at adding the code described by fhajji.

https://github.com/ItsOnlyBinary/Signal-Android/commit/70f648cc00e6ec88c2dcb25576722c74f2c9d29d

It maybe need some more sane settings as my goal was to turn it up to 11

Well I'm really disappointed 😞
Even with latest Beta Video Calling enabled (webRTC) the call volume is still too low 😭
[EDIT] Video calls not tested yet [/EDIT]
Both devices with latest Beta Signal v3.29.1 and CM 13.0 (Android 6.0.1)

P.S will test more and report back

I seconed that. I love OWS and Signal, but I'm really disappointed too when it comes to call Quality and volume in Beta Video Calling (webRTC). I thought this would Change alot and lift this App up to a new Level. But talking with Signal even with the latest Update is worst it could be.

I have Signal on several devices non rooted with stock and strong wifi connection. Nexus 4, Nexus 5, Nexus 6P, Samsung 6, Samsung 4 and on every phone, the call quality is really horrible and the volume is fucked up.

I recently tested several other apps for calling with zrtp and they are way better than Signal. For example Simlar. Or StrukturAG Messenger webrtc on iphone and Chrome on Android.

Here is what it looks like in simlar. Call quality is determined with how good the inet connection is. They are based on Linphone.

This is how it looks in simlar:
https://www.simlar.org/wp-content/uploads/2014/04/sound-settings.png

I just don't understand why this bug is still a bug. Why don't they instead of just ignoring it completely just give us an independent gain control that lets us boost the output volume.

People who are experiencing low call volume, I just want to double check, are you sure that you've opted into the new calling code by toggling Settings -> Advanced -> Video calling beta and are calling someone who has done the same?

Some of what you're describing makes it sound like some people might still be using the old calling code. For instance, there is no more "gong" in the new code. The new calling activity also looks pretty different from the old one, and has a "video" toggle button.

@moxie0 I confirm, both devices with Signal v3.29.1 and video calling beta enabled.

Device 1: Nexus 5X (bullhead) - CM13
Device 2: Nexus 5 (hammerhead) - CM13
Only Device 1 suffers from low volume (audio call). Video call (with speaker on) was OK

EDIT:
org.webrtc.Logging: WebRtcAudioManager: STREAM_RING stream volume: 4 (max=7)
is this ok?

EDIT 2:
log https://gist.github.com/anonymous/cb47fb0ebb4940f7c2ae9c5e71eda82b

@p4nci Can you try linking to it instead of posting a wall of text?

@Dyras I now it's not ideal, but I don't like posting unedited log, and searching and editing in Signal it's a pain. Sorry

EDIT: done

@p4nci That log looks really screwy, but what you've posted is for an old-style redphone call.

Moxie unfortunately i tested the new webrtc 3.29.1 on the above mentioned devices. WebRtc is activated in the setting on all devices. With just signal on stock. No other bullshit and sitting directly infront of my wifi. My friend is a neighbour that has 2 of the other phones and we tried every combination. 6p to 5. 5 to 5. 5x to 6p. I dunno. Look at the screenshot above. In simlar you can hit the ? button so it can show you how good the interent connection is and what codec and so on. Maybe Signal does not recognize the actual connection quality at the moment the call is done or whatever.

i have nearly 40 signal contacts in my contact list. I have a wifi only phone and some people just have my signal number cause i told them im out of gsm talking for several reasons. I totally enforced signal on all my friends that want to communicate with me. Every one of them has 10+ contacts in his list and i don't know of anybody NOT complaining about call quality and volume. (This is redphone without the new branch). When WebRTC hit stable. I will beg the hell out of them to contribute logs so i can post them here. There are alot of people that depend on that feature. There are alot of people that depend on that calling. We don't wan't to switch to linphone or some other app. We trust in your skills and know you are an idealist when it comes to crypto. So please what the hell can i do to help with quality and volume?

we need a similar screen like in simlar. please take a look at my screenshot above.

thx

@sigenc I don't see any screenshot.

EDIT: Oh, you mean a screenshot for another app. Can you post a screenshot of your signal call?

@moxie0 well, first I tested a video call (with speaker on) and then audio call only. How can this be old-style redphone call? :confused: And yes, there is a video toggle button
EDIT: log captured after video and audio calls

Simlar shows you the network quality when the call initiated. When you hit the question button right at "netwerqualität" you get detailed info whats going on. The source code is available on github.

@p4nci I'm just looking at the log:

02-02 21:16:10.769  7709  7709 W RedPhone: Got message from service: CALL_DISCONNECTED
02-02 21:16:10.770  7709  7709 W RedPhone: handleTerminate called
02-02 21:16:10.775  7709 29021 W RedPhoneService: termination stack
02-02 21:16:10.775  7709 29021 W RedPhoneService: java.lang.Exception
02-02 21:16:10.775  7709 29021 W RedPhoneService:   at org.thoughtcrime.redphone.RedPhoneService.terminate(RedPhoneService.java:364)
02-02 21:16:10.775  7709 29021 W RedPhoneService:   at org.thoughtcrime.redphone.RedPhoneService.notifyCallDisconnected(RedPhoneService.java:439)
02-02 21:16:10.775  7709 29021 W RedPhoneService:   at org.thoughtcrime.redphone.call.SignalManager$SignalListenerTask.run(SignalManager.java:66)
02-02 21:16:10.775  7709 29021 W RedPhoneService:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
02-02 21:16:10.775  7709 29021 W RedPhoneService:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
02-02 21:16:10.775  7709 29021 W RedPhoneService:   at java.lang.Thread.run(Thread.java:818)
02-02 21:16:10.777  7709 29021 D LockManager: Entered Lock State: PARTIAL
02-02 21:16:10.777  7709 29021 D AccelerometerListener: enable(false)
02-02 21:16:10.778  7709 29021 D org.thoughtcrime.redphone.audio.IncomingRinger: Stopping ringer
02-02 21:16:10.787  7709 29021 D org.thoughtcrime.redphone.audio.IncomingRinger: Cancelling vibrator
02-02 21:16:10.794  7709  7709 W RedPhone: Termination Stack:
02-02 21:16:10.794  7709  7709 W RedPhone: java.lang.Exception
02-02 21:16:10.794  7709  7709 W RedPhone:  at org.thoughtcrime.redphone.RedPhone.handleTerminate(RedPhone.java:191)
02-02 21:16:10.794  7709  7709 W RedPhone:  at org.thoughtcrime.redphone.RedPhone.onEventMainThread(RedPhone.java:319)
02-02 21:16:10.794  7709  7709 W RedPhone:  at java.lang.reflect.Method.invoke(Native Method)
02-02 21:16:10.794  7709  7709 W RedPhone:  at de.greenrobot.event.EventBus.invokeSubscriber(EventBus.java:498)
02-02 21:16:10.794  7709  7709 W RedPhone:  at de.greenrobot.event.EventBus.invokeSubscriber(EventBus.java:492)
02-02 21:16:10.794  7709  7709 W RedPhone:  at de.greenrobot.event.HandlerPoster.handleMessage(HandlerPoster.java:67)
02-02 21:16:10.794  7709  7709 W RedPhone:  at android.os.Handler.dispatchMessage(Handler.java:102)
02-02 21:16:10.794  7709  7709 W RedPhone:  at android.os.Looper.loop(Looper.java:148)
02-02 21:16:10.794  7709  7709 W RedPhone:  at android.app.ActivityThread.main(ActivityThread.java:5461)
02-02 21:16:10.794  7709  7709 W RedPhone:  at java.lang.reflect.Method.invoke(Native Method)
02-02 21:16:10.794  7709  7709 W RedPhone:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
02-02 21:16:10.794  7709  7709 W RedPhone:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

There is no difference between an "audio" call and a "video" call in the new call code. It's just the same thing, either with your camera enabled or not. You're saying that you were talking with the camera enabled and the audio was fine, then you toggled the camera off and the audio wasn't?

@sigenc I'm sorry but I'm not sure what it is you want me to get out of those screenshots, they're for another app? To be clear, I don't think whatever audio volume problems you're having are a result of network congestion.

I'd love it if you could post a screenshot of your Signal call that you are having trouble with, though, thanks!

I thought call quality depends on network quality, Is signal using the same bitrate in very low quality network as in high quality? For example edge and lte? It's not only low volume. It is bad quality overall. Sometimes it is low volume and super cristall clear quality. No lags or other bullshit. I will collect some logs in a few days and post them here.

The screenshots above are from the app simlar. It is based on linphone and uses ZRTP. It uses high bitrate when the network connection is fine and low bitrate when the connection is bad or slow. With edge you have good volume and not so good quality and with lte you have good volume and cristall clear quality.

@moxie0 nope:
Call 1: Video call (speaker on) => ok
Call 2: Audio only (speaker off) => call volume low

02-02 21:16:10.769 7709 7709 W RedPhone: Got message from service: CALL_DISCONNECTED
this is probably the third call (with phone without Beta enabled video call)

I'll try asap (but not today) and report back with new logs.

@p4nci you have to enable beta on both phones and make a normal call

@sigenc that's already the case (see my comments above)

@p4nci do you have the ability to build/test from source?

I have one device (6.0.1) which has almost inaudible volume level with the legacy redphone calling.
When I switch to the new webrtc calling the volume on that device is noticeably louder but it's still much lower than with my main device.

@moxie0 I could mirror the repo and try building it on a GitLab runner or something.

@2-4601 awesome could you also test the moxie/mode_in_communication branch on that low-volume device?

Tested now. I don't notice any significant improvements with volume levels.

Redphone call seems as low volume as before (Not sure if that code was even touched)

Webrtc volume also seems same as before.

I tried the AppRTCMobile.apk with the same two devices and the device with the low-volume issue with Signal has no issues with this test app. The volume level is very good.

@2-4601 That app uses speakerphone, though, right? Are you saying the speakerphone volume in Signal is also lower than acceptable?

Didn't pay attention before. You're right, that app uses speakerphone.

I compared now to webrtc Signal with speakerphone. Signal has still lower volume. Signal also has weird mushy, thick background noise that is very noticeable (but not super annoying). I would call the volume level acceptable though... but I guess this is highly personal. (In the legacy Redphone call I wouldn't call the volume acceptable)

@moxie0 sorry, but ATM can't do anything since device 2 owner is to busy and can't help testing in the next few days :=(

@2-4601 Could you test the moxie/webrtc_level_control branch with your low-volume device? I'd like to see if that makes things any louder.

Does that version require that both parties have it installed? (Saw some db related commits after 3.29.2 and don't want to mess with my main device if I need to go back.)

In my case, this issue seems to depend on many variables. I experience low volume with a ZTE Open C device (6.0.1) but only when the other participant is Moto G4 Play (6.0.1). With another device (bq Aquaris E4.5, Android 5.0) the volume level on the ZTE is very good. This is true even with the older webrtc versions. Also Moto <--> bq work well together.

With these new changes https://github.com/WhisperSystems/Signal-Android/commit/3668c578f33e468f6318c73fa35308f968b1c684 the volume is still noticeable lower on the ZTE (when the other party is Moto). Perhaps it's a bit better but hard to hear a clear improvement. At least it didn't get worse :)

@2-4601 Bummer! From poking around on the internet, it looks like webrtc's AGC is kind of problematic for devices with low volume inputs, but that was the only flag I could find that might help alleviate it.

I've never been able to reproduce it on any of my devices, so it's kind of hard to experiment with. I'll keep looking around, but I'm kind of out of ideas.

Alright, so those changes affect the input. In my previous test I applied the changes only to the low (output) volume device (ZTE). But now I installed the https://github.com/WhisperSystems/Signal-Android/commit/3668c578f33e468f6318c73fa35308f968b1c684 build also on my Moto and _by the power of Grayskull_ the volume on the ZTE sounds much louder (and clearer) now! :tada:

@2-4601 wow, very interesting results!

@moxie0 I have a Moto G4 and my mom has a Moto G3 and the audio quality is... Subpar to say the least. Will you be pushing this update out to the beta soon? I'm dying to try it!

@moxie0 and @2-4601 obviously the output device (in my case NOT my own device = Device 2) needs https://github.com/WhisperSystems/Signal-Android/commit/3668c578f33e468f6318c73fa35308f968b1c684. If so, I can't test this until a PR is merged in the beta channel and ask the Device 2 owner for update. In meantime I had the possibility to make some webrtc calls with another third person and call volume was OK. So I assume that my device (Device 1) it's not the culprit

I can confirm WAY better call volume and quality with 3.29.6. Nexus 5 / Stock / 6.0.1. Before webRTC i had to gues 1/3 of what the other party is saying.

Call volume with my problem device a MotoE, which you could barely hear, is now at least 2-3 times better with the webRTC beta.

Testing webrtc audio in beta 3.29.6 on

  • device 1: Samsung Galaxy S4 GT-I9505, LineageOS 14.1-20170120-UNOFFICIAL-jfltexx
  • device 2: Samsung Galaxy S5 SM-G900F, LineageOS 14.1-20170213-NIGHTLY-klte
    with the following results:
  1. call quality is way better than with Speex codec on both device 1 and device 2. Even for my contact with hearing problems on device 1, the call is understandable in quiet rooms most of the time, which is a huge improvement.

  2. call volume is subjectively higher, but after measuring, that is mostly an illusion. Objectively, the volume didn't increase, it is just that the brain has less work to do to compensate for bad quality as it had to do with Speex, and thinks that the volume is higher. Still need to find a way to up the volume. But, again, it sure does sound somewhat louder than with Speex.

  3. attaching an external Bluetooth speaker to device 1 yields miserable call quality and volume results though, same as with Speex. It seems as if the speaker channel part of the output hasn't been optimized yet in that special case (?). Yet a working reasonably loud external speaker with decent call quality would be a great help to my contact with hearing problems, so it would be great to fix that as well.

Thank you @moxie0 for all your efforts to bring better sound quality to Redphone. Highly appreciated.

3.31.4 still an issue, including bluetooth speakers and car setups.

Device: Pixel XL, 7.1.1 March Update

I switched to Moto G4 Plus, and got updated to Signal v3.31.4 with video calling. The call volume (audio and video) is much much better than it used to be. It's actually usable now :) Haven't tried with bluetooth, only with the phone's speaker.

I switched to the beta version and the call volume is verifiably better on the Nexus 6p

GitHub Issue Cleanup:
See #7598 for more information.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bartz1 picture bartz1  Â·  66Comments

flipzmode picture flipzmode  Â·  70Comments

bkerensa picture bkerensa  Â·  70Comments

SlackingVeteran picture SlackingVeteran  Â·  91Comments

alexh3791 picture alexh3791  Â·  83Comments