[pulseaudio-discuss] How to combine microphone audio and music from application to pipe to video conference

Samir Parikh spython01 at gmail.com
Mon Jun 1 01:56:10 UTC 2020


Sean Greenslade wrote on 5/24/20 1:44 AM:
> On Sat, May 23, 2020 at 11:49:54AM -0400, Samir Parikh wrote:
>> Ok, I'm back after researching and trying some things a bit more.
>>
>> Sean Greenslade wrote on 5/16/20 1:23 AM:
>>> This is definitely possible entirely within pulseaudio. I'll go over the
>>> basic concepts here, then show an example.
>> ...
>>> Now you can begin playing music, and in the Playback tab of pavucontrol
>>> move the music playback to the VirtualMixer.
>>
>> I got this far in following your instructions but got stumped on that last
>> part about moving the music playback to the VirtualMixer.  This screenshot
>> shows my options for where to direct the Rhythmbox output:
>> https://imgur.com/a/PRCYV3B
>>
>> If I select VirtualMixer, playback of the music continues but I can no
>> longer hear it.  Is there a way for me to also hear it through my own
>> speakers/headset?
> 
> This is possible, but adds some complexity to the setup. To hopefully
> make this easier to follow, I've made a little flowchart of all the
> components:
> 
> https://dumbpic.link/manu/2020-05-23_pulse_diagram_mic_mix_with_mon.png
> 
> Remember that pulseaudio draws a distinction between sources and sinks,
> and normally doesn't allow you to route a source to sink or vice-versa.
> So source components have a rounded face, and sink components have a
> pointed face.
> 
> Certain endpoints are "exclusive," meaning that they can only have one
> thing connected to or from it. These points have a grey shading to
> indicate that property.
> 
> Modules with a thick border are real hardware. Modules with a thin
> border are software. The dotted line around "auto monitor" refers to the
> fact that it is auto-created when a virtual sink is created.
> 
> The thick lines connecting modules are the routings within Pulse. These
> routings can all be modified in realtime within pavucontrol.
> 
> Hopefully this makes enough sense to help you to augment your script.
> For comparison, here's the flowchart for my original suggestion that
> does not let you monitor the music:
> 
> https://dumbpic.link/manu/2020-05-23_pulse_diagram_mic_mix.png
> 
> --Sean
> 
I've played with this a bit more to update my steps.  I corrected some 
errors and I think I was able to piece together some more steps but 
still have a few open issues.  Here's what I've got so far based on my 
revisions:
https://imgur.com/NzteBvg

Step 1:  Create the music_mic_mix virtual mixer
$ pacmd load-module module-null-sink sink_name=music_mic_mix
$ pacmd update-sink-proplist music_mic_mix device.description=music_mic_mix

Step 2:  Create the mic_loop loopback module and specify the sink as the 
virtual mixer created in step 1 (music_mic_mix)
$ pacmd load-module module-loopback sink=music_mic_mix

Step 3:  Create the music_only virtual mixer
$pacmd load-module module-null-sink sink_name=music_only
$ pacmd update-sink-proplist music_only device.description=music_only

Step 4:  Create the music_loop_headphones loopback module and specify my 
headphones output as the "real sink".  (I found the name using the pacmd 
list-sinks command.)
$ pacmd load-module module-loopback 
sink=alsa_output.usb-Plantronics_Plantronics_BT600.analog-stereo

Step 5:  Create the music_loop_videoconf loopback module and specify the 
music_mic_mix created in step 1 as the sink
$ pacmd load-module module-loopback sink=music_mic_mix

Step 6:  Connect the headset microphone to the mic_loop loopback module 
via the "Recording" tab in pavucontrol.

Step 7:  Direct the output of Rhythmbox to the music_only virtual mixer 
created in step 3 via the "Playback" tab in pavucontrol.

Step 8:  Direct the output of the music_mix_mix virtual mixer created in 
step 1 to the video conference application in the "Recording" tab of 
pavucontrol.

My question is how do I direct the output of the music_only virtual 
mixer created in step 3 to the music_loop_headphones and 
music_loop_videoconf loopback modules created in steps 4 and 5 
(indicated by the red boxes in my revised diagram)?

Thanks
Samir


More information about the pulseaudio-discuss mailing list