• 3 Posts
  • 22 Comments
Joined 1 year ago
cake
Cake day: June 19th, 2023

help-circle













  • Does the method you’re describing play well with speaking at the same time

    Yes.
    With pipewire, it is possible to patch two sources (i.e. your microphone and an application’s audio) into a single input, and it will mix them together into one stream. I just tested this with Audacity (didn’t feel like booting up Discord, but it should work the same). I could hear my voice and the application’s audio at the same time. This is what it looked like for me in Helvum:

    The gray PortAudio block is Audacity (would be Discord in your case). “ALC3232 Analog” is my microphone (on the left) and my headphones (on the right). Music Player Daemon is the application whose audio I wanted to stream. The connection between the microphone and Audacity was made automatically as soon as I started the recording. I had to manually make the connections from Music Player Daemon to Audacity for both left and right channels. After that I could see both the mic sound and the music player daemon sound in the recording, mixed into one stream. It should work the same way with Discord. If you wanted to, for example, make your voice louder or quiter compared to the application audio, you could just adjust your mic’s gain (or the application’s volume) with Pavucontrol (it’s an app made for Pulseaudio, but it works flawlessly under pipewire as well).

    In my original comment, I said that you could patch your output’s monitor back into Discord. This is a bad idea, since if anyone speaks to you in the call, that audio will also be echoed back to them. So it’s better to connect the individual applications’ audio into Discord as opposed to the output monitor.

    Now, this could get a little tedious, making those connections by hand every time you want to screen share. So you could try to make a script that does something like that automatically. Pipewire also has the concept of a “session manager”, which is basically a daemon that decides which connections are made by default, when new sources or sinks register with Pipewire. For example, wireplumber, the default session manager, was responsible for connection audacity to my microphone automatically. Maybe you could try to configure your session manager to also automatically make connection between Discord and any app that outputs audio (idk tho, never done it before).