-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Electron-provided audio uses ALSA, phone-calls Pulseaudio/Pipewire #6606
Comments
Thanks for your quick triaging and googling. Alsa is (almost?) always present as far as I understand, back pre-pulseaudio all audio playback clients were directly talking to alsa devices I believe. With Pulseaudio and later Pipewire, the soundservers would provide a virtual alsa device for clients that weren't supporting pulseaudio - but would still benefit that way of soundserver functionality (aka mixing volume of different devices). With sophistication of bluetooth devices or other audio playbacks, soundservers (and modules/components) would move more and more of the playback out of the alsa environment (bluez-alsa) into the respective audio servers. This allows pipewire/pulseaudio to modify/control audio codecs or do fewest encoding/decodings as possible. To me it appears that at the moment Signal Desktop probably relies on different audio playback mechanisms internally, some of which are only supporting Alsa (calling sound, voice message playback and recording) and others (actual voice calls) which are natively using Pulseaudio already. You can possible observe this behavior by opening |
Yes. Message video/audio playback, voice note recording, and incoming call rings all use built-in Electron-provided audio sources. Calls are separate, as you've discovered. We would like to integrate those in the future. Unfortunately, this will stay this way until we make a relatively large architectural change. |
Thank you. That's totally fine for me. I think having an issue that explains the behavior (and the workaround of ensuring to activate pipewire-alsa and pulseaudio-alsa activated) is sufficient. #5099 appears to have been a similar issue just reverse (so someone noticed that most of the time alsa only works but some things won't work). |
I am having an issue with my microphone not being picked up in voice notes, but working in voice calls. Is this likely the issue? |
@schmeat I don't think this is the correct github issue. Can you create a new issue and please include as much detail as possible about your microphone hardware, OS mic settings, and anything else that may be relevant? |
One issue that might be arising from this is that the setting used for voice calls cannot be reused for selecting a device for voice notes. Otherwise, it would be pretty simple to enumerate a device ID to pass to Signal-Desktop/ts/services/audioRecorder.ts Lines 73 to 77 in 92d22d0
Without constraints passed by the application developer, Electron will always pick the first device by default, no matter what: I just asked Electron to look into how they determine their own defaults. We'll see how that develops. electron/electron#44502 |
Should I open a separate issue here on Signal too? There is a setting for voice calls, but not voice notes, and I assume that they use different audio APIs under the hood, making them unable to just reuse the setting for both., as well as this issue. |
Bug Description
If you run Pipewire without Alsa Signal Desktop:
Steps to Reproduce
Platform Info
Signal Version:
6.30.1
(Note this bug has been present for ever)Operating System:
NixOS 23.05
with
configuration.nix
The text was updated successfully, but these errors were encountered: