Most of the echo issues nowadays occur also with headphones.
Fox example, this loud echo was measured with headphones https://imgur.com/a/FpeB6Mp
Mumble's auto gain control will happily amplify a tiny echo to a loud annoying level if the echo canceller isn't enabled and working properly.
Bu why is there any echo at all when using headphones? Modern laptops have a single jack for both microphone and headphones, just like smartphones. And thus there's a single cable where both the high audio level of headphones, and the tiny microphone level run very close together for a considerable length of unshielded cable, because users want their cable to be highly flexible and manufacturers want the cable to cheap. That causes electrical coupling and creates the echo.
Summing up, since almost everything has echo cancellation these days, hardware quality and care in avoiding echo has become worse. And if mumble does not adapt, people will just stop using it.
That's why I think echo cancellation should be enabled by default, and also with headphones.
This feature depends on https://github.com/mumble-voip/mumble/pull/4167, and fixing https://github.com/mumble-voip/mumble/issues/4177 too before enabling echo cancellation by default would be nice tho have.
Other potential issues include:
Idea: create an autoconfiguration wizard that automatically tests (multichannel) echo cancellation, adjust mic gain, ...
We can call it "calibrate audio for optimal voice quality" ;)
Although an improved wizard is a nice to have. It' doesn't help if an user runs the wizard with a pro audio headset and then switches to its cheap in-ear headphones later on.
Or if later on wants to use the speakers instead of headphones. Mumble does not detect when headphones are plugged in or not.
I think the only sure way to not have echo is to turn on cancellation by default. The power user who is concerned with CPU use will just disable it from the audio configuration if he/she knows it's not necessary for his/her use case.
Moreover, let's not forget that the high CPU use is not inherent with echo cancellation, it's a bug and bugs can be fixed.
We currently have no support for echo cancellation in Mac OS
I think that's a problem of its own and should not influence the issue at hand. Additionally I think it might take a while until we get echo cancellation to MacOS as afaik none of the active devs has a MacBook. And given that there is no (legal) VM that could be used for this I think the MacOS version won't receive a lot of attention in the near future. But that's a different issue and a bit OT here.
What we should do with users that have already installed mumble and are upgrading, should we silently enable echo cancellation, force them to re-run the wizard, or just leave them with the echo canceller off?
For the sake of simplicity I'd vote for not changing existing settings. This also saves us from potential problems that come with changing a user's settings automatically :)
OH and btw.: If the echo cancellation does work properly after your fix(es), then I'm absolutely in for enabling it by default :point_up:
Now that the echo canceller has been improved, it may be the time to enable it by default.
I guess mixed should be the default, right?
EDIT: See #4214
Yes, I think mixed would be a good balance between features and CPU use, and would suit most users.
I agree that the less CPU demanding setting should be the default.
Most helpful comment
OH and btw.: If the echo cancellation does work properly after your fix(es), then I'm absolutely in for enabling it by default :point_up: