How can we combine two audio recording inputs (mics) into one audio input source?

My partner and I are running Manjaro and very new to it. Trying to switch as much as possible over to daily use with Manjaro. We have pipewire, not pulseaudio.

We have two mic inputs which are being properly recognized by the system, but have a need to combine these into one single input for the purposes of recording software and things that can only use one input source.

We have tried the below to do a mic merge sink, but it creates an OUTPUT device, not an input device, so it is not recognized for a recording device.

#!/bin/bash

pactl load-module module-null-sink sink_name=merge1
pactl load-module module-loopback source=alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8E9YZX09509F6-00.HiFi__Mic1__source sink=merge1
pactl load-module module-loopback source=alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8E9YZX09509F6-00.HiFi__Mic2__source sink=merge1

Interested in solutions for this, as we’ve been unable to find one for a couple weeks now of trying. This is one thing that is preventing us from moving over a significant use case to Linux.

In windows, we used Voicemeeter to accomplish this.

SOLUTION:
We were already using PipeWire in our system, so the recommendations from Tomek worked for us. QPWGraph is the one that worked for my set up, and while it looks intimidating at first you just need to understand it’s a series of outputs and inputs and you play mix and match.

In the end, this did everything we wanted from Voicemeeter + MORE, as I can now isolate different outputs as well. So for instance in recordings I can manage the volume of discord and the background music separately. So this was an amazing solution and the result was exactly what was needed, and ultimately was much easier than Voicemeeter.

Thank you for the help, you guys have been great

Welcome to the Manjaro community @robochocobo

Have you had a look at AUR (en) - pulsemeeter? You could also try AUR (en) - pulsemeeter-git, which should install the latest version from git.

The original spiel from 4 years ago: Pulsemeeter, a voicemeeter alternative for linux : r/linuxaudio

You can build pulsemeeter either via the Pamac GUI (make sure the AUR is enabled in the settings), or to do it via the command line:

pamac build pulsemeeter 

To build the latest git version:

pamac build pulsemeeter-git

Note: Do not use sudo with the above commands - pamac will prompt you for your password when required.

https://wiki.archlinux.org/title/Arch_User_Repository

Switch to pipewire and try qpwgraph or helvum - all packages are in official repositories :wink:

3 Likes

Thank you for the suggestion.

I installed pulsemeeter with yay. When I try to open it, it thinks for a bit and then nothing happens. I tried to run it from the terminal instead and got this error

 pulsemeeter                                                                                                                                                                               
ERROR: invalid json grep: warning: stray \ before #
grep: warning: stray \ before #
[{"id":0, "device":"alsa_output.pci-0000_03_00.1.hdmi-stereo-extra1", "name":"plasmashell"},{"id":1, "device":"alsa_output.pci-0000_03_00.1.hdmi-stereo-extra1", "name":"plasmashell"}]
invalid json from server
App sinks returned an error, audio backend probably crashed. Server will be closed.
Could not join subscribe_thread (maybe there is none)
closing client handler threads...
closing socket
sending exit signal to listener thread, it should exit within 2 seconds...

Edited to add: I enabled AUR support in pamac GUI (did not know I could do that, thank you!) and retried from there just in case. Same error after build and install.

Thank you for the suggestion. Assume that I am a total newb to linux and Manjaro… what are the ramifications of switching to pipewire, and do you have an in depth guide/tutorial for how to do so?

Try building pulsemeeter-git instead:

pamac build pulsemeeter-git

I just built it and it launched successfully:

Although, after I closed the GUI, pulsemeeter remained running in the background. I don’t do any audio stuff & don’t have a microphone, so I couldn’t test it. Anyway, give it a try - if it doesn’t work for you, then you can just remove it:

pamac remove pulsemeeter-git

@Tomek’s suggestions may also be more practical. They have a lot more knowledge about audio than I have.

No drawbacks, simpler (though it’s subjective), more powerful configuration, you will receive better support for bluetooth audio devices. To switch to pipewire you need only install manjaro-pipewire

Nope - I have no knowledge about audio, it just happen that I had some fun with qpwgraph some time ago :wink:

2 Likes

Uninstalled the first instance and built the pulsemeeter-git instead.
Still errored out, but slightly different.

For the record:

invalid json from server
App sinks returned an error, audio backend returned error
object of type 'bool' has no len()
Could not join subscribe_thread (maybe there is none)
closing socket

(pulsemeeter:41744): Gtk-CRITICAL **: 20:05:52.972: gtk_main_quit: assertion 'main_loops != NULL' failed

going to try the other two Tomek recommended

I use jack_mixer with a JACK audio server
VOIPmixxer - jack_mixer configuration for JACK · GitHub
Or use audio mixer in obs-studio (AUR)

PipeWire Wiki - Migrate PulseAudio

Thank you Tomek,

We were already using PipeWire in our system, so these recommendations worked easily for us. QPWGraph is the one that worked for my set up.

In the end, this did everything we wanted from Voicemeeter + MORE, as I can now isolate different outputs as well. So thank you very much for this, we successfully ran a recording set up in Linux yesterday and it went smoothly. One more step away from Windows

3 Likes