4

I happen to record a meeting using SimpleScreenRecorder (SSR) on Linux.

I use Pulseaudio and default configurations.

When SSR records the screen and audio, it records the speakers output, but not my microphone. I know that I can create a loopback using pactl load-module module-loopback latency_msec=1 so that the mic goes to the speakers and SSR can record both, but that creates feedback and Larsen effect when not using earphones.

Apparently I cannot ask SSR to record from two audio sources at once. Is there a way to create a virtual Pulseaudio source where the speakers and mic both go, so that I can then instruct SSR to record from that virtual source?

As I read up at Mix application and microphone into one input, I can create a virtual speaker to which I can route both the mic and the speakers, and from which SSR can read. However, I still want the mic and speaker to function normally while I have the meeting, and i am not sure that solution would do that, so I need someone with Pulseaudio experience here.

If I find no simple way, I'll switch from SSR to OBS...

1 Answer 1

5

If you want to record both microphone and speakers output then create virtual speaker and two loopback modules: one which mirrors microphone to virtual speaker and the second one which mirrors your speakers. Then just choose to record monitor of that virtual speaker inside ssr.

Commands:

pactl load-module module-null-sink sink_name=both sink_properties=device.description=Both-mic-and-speakers
pactl load-module module-loopback source=alsa_output.pci-0000_00_1f.3.analog-stereo.monitor sink=both
pactl load-module module-loopback sink=both

Just make sure to replace alsa_output.pci-0000_00_1f.3.analog-stereo with name of your speakers, you can get one using pactl list sinks short.

This solution has drawbacks however:

  • it records sound from all your applications
  • your system volume affects the recording's volume (so, if you have volume set to 20% the recording will be quite quiet), compare that with your voice which is affected by your mic's volume (probably 100%)
  • There'll be echo in the recording if you don't use headphones

You can mitigate first two issues by using more complex script (which I use to record single application):

pactl load-module module-null-sink sink_name=fake_speakers sink_properties=device.description=Virtual-speakers
pactl load-module module-remap-source source_name=fake_mic master=fake_speakers.monitor source_properties=device.description=Virtual-mic
pactl load-module module-null-sink sink_name=fake_speakers2 sink_properties=device.description=Second-virtual-speakers
pactl load-module module-loopback source_dont_move=true sink_dont_move=true sink=fake_speakers2 source=fake_speakers.monitor
pactl load-module module-loopback sink_dont_move=true sink=fake_speakers2
pactl load-module module-remap-source source_name=fake_mic2 master=fake_speakers2.monitor source_properties=device.description=Second-virtual-mic
pactl load-module module-loopback source_dont_move=true source=fake_speakers.monitor

Then set application's sink to be Virtual Speakers. And then set SSR audio source to be Second-Virtual-mic. You will still hear application, but SSR will record only selected apps and your voice and everything has 100% volume by default and is to your control. If you encounter sound delay try adding latency_msec parameter to loopbacks.

4
  • Thank you, jakweg, I have not yet tried your solution but now I do wonder: does it make sense doing that as a normal user-oriented task? If I need doing that when using SSR, probably I should be using OBS instead, am I right? Dec 16, 2021 at 19:22
  • I did not get this work. I tried the first option. The commands do not mention microphone source sink so how a microphone is mixed in? Can you define the microphone in a command?
    – jarno
    Dec 15, 2023 at 19:31
  • 2
    @jarno yes, you can define which microphone to mix. If you don't specify then the default I've should be used afaik. You can add source=<your_mic_name> to the last line in first snippet to specify which microphone to record. Use pactl list sources short to list all microphones.
    – jakweg
    Dec 16, 2023 at 20:12
  • For some reason I had to delete my user configuration for PulseAudio to make this work.
    – jarno
    Dec 17, 2023 at 16:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .