Skip to content

Instantly share code, notes, and snippets.

@Anomitee
Last active March 4, 2022 22:09
Show Gist options
  • Save Anomitee/328dc469e24b66428aea to your computer and use it in GitHub Desktop.
Save Anomitee/328dc469e24b66428aea to your computer and use it in GitHub Desktop.
Instructions on how to record multiple audio streams in SimpleScreenRecorder of only the applications you want such that they are separable when editing.

Suppose you want to record 3 things: your microphone, game and Mumble. With multiple audio stream support, you can record what's in the input tab of pavucontrol (which contains the mic channel, and a monitor of your computer's sounds). Problem is, as you stated, is that recording the monitor input will grab every application (not good, for example, if you want to keep Skype open to catch any calls but not record it). This also mashes together all the audio meaning you won't be able to edit the game audio and Mumble separately.

What you can do, is run the command pactl load-module module-null-sink sink_name=game_out This will create an output named "Null Output" in the output tab. Using pavucontrol, you can send the output of your game to the "Null Ouput", but you'll lose the sound. Running pactl load-module module-loopback source=app_out.monitor, however, will loop the Null Ouput back into the original output of the game, meaning you'll be able to hear your game again, but there will be a new input recordable by SSR called "Monitor of Null Output".

You can then also send the output of Mumble into this as well, but the audio streams will be combined into one, which you may not want. Repeat the commands, but with new sink names:
pactl load-module module-null-sink sink_name=mumble_out
pactl load-module module-loopback source=app_out.monitor
This will give you another Null Output and its monitor. It will be listed as Null Output, which can be confusing, but just remember that they are listed in the order you create them. SSR can then simply record each one as separate streams.

Here's a quick drawing of what is achieved: http://i.imgur.com/L91T1XW.jpg

Edit: To undo all this, run:
pactl unload-module module-null-sink
pactl unload-module module-loopback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment