Open norpol opened 1 year ago
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 pavucontrol
and seeing that sometimes Signal desktop will be shown as native and sometimes as alsa client, I believe possible also on pulseaudio only environments too.
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.
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 MediaDevices.getUserMedia
, instead of passing nothing:
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. https://github.com/electron/electron/issues/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