Sean Greenslade wrote on 5/24/20 1:44 AM:
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
Sean,
Thanks for this! Very helpful! I appreciate you taking the time to
also include the diagrams. It helps me understand a bit more some fo
the commands you gave earlier.
You've been very helpful and generous with your time and explanations so
I hope I'm not reaching my limit of questions with you or the list but I
have a few more:
- In general, what is the purpose of the "loopback module"? It just
looks like a pass through. The docs[1] say that "This allows one to
route audio from a source directly back to a sink. This module performs
adaptive resampling to adjust for slight differences in the clock speeds
of the source and sink devices" but I'm not sure what purpose it is
serving in this application.
- In your original configuration, you had me create just one loopback
module. In your more complicated setup, there appear to be 3 in total.
Do I just use the original
pacmd load-module module-loopback sink=virt_mix
command to create the other 2 but change the sink?
- In general, is pavucontrol just used to create the "connections"?
- Within pavucontrol, is my understanding of what the various tabs do
correct?
Playback: Shows the application sources of sound
Recording: Shows any application that can take sound as input
Output Devices: Sinks
Input Devices: Sources
Thanks again!
Samir
[1]
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#module-loopback
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss