pulseaudio

What's the difference between module-remap-source and module-virtual-source in PulseAudio


If I run the following command, I get a "virtual microphone" that's hooked up to a sink called "MicOutput". If I send data to "MicOutput", that data is then sent to the virtual microphone.

pactl load-module module-null-sink sink_name=MicOutput sink_properties=device.description="MicOutput"
pacmd load-module module-virtual-source source_name=VirtualMic master=MicOutput.monitor

I can get similar behavior if I replace the second line with:

pactl load-module module-remap-source source_name=Remap-Source master=MicOutput.monitor

The main difference I see is that the latency is lower.

But what's the difference? When would I want to use one, or the other?

My Research so far

I see these two files:

Perhaps if I looked at the code hard enough I'd understand the answer. I wonder if someone happens to know the answer though?


Solution

  • Source: I asked the PulseAudio team. https://lists.freedesktop.org/archives/pulseaudio-discuss/2022-April/032260.html