Two Microphones

borne

New Member
Can anyone please help? I don't want to have to set up a WinBlows PC just so I can record this podcast.

I need to use two microphones, but no matter what I do I can either use one mic, or the other, but not both.

Setup:
Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
Motherboard: ASUSTek PRIME X299-DELUXE II, Rev 1.xx
Video Card: Nvidia 3090 Founders Edition
OS: Linux Mint 21.2 Victoria
Mic 1: HyperX Quadcast 5) - Connected to USB1
Mic 2: Blue Yeti - Connected to USB2

I went into Settings->Output and enabled multiple tracks. Then I went into Audio and set mic 1 (a HyperX Quadcast 5) as Mic/Auxiliary Audio, then set Mic 2 (a Blue Yeti) as Mic/Auxiliary Audio 2. But the audio is only picked up by the HyperX, even if I disable the HyperX. (NOTE: Whatever the system has set in PulseAudio or System Settings as the default mic is automatically assigned to Desktop Audio by OBS).

When I go into PulseAudio, whatever mic the system defaulted to is working, but if I switch to the other I get nothing. Switching back to the first also gets nothing. I then have to restart ALSA and Pulse with "pulseaudio -k && sudo alsa force-reload; pulseaudio -D". Sometimes I have to do it multiple times to get it to find a mic.

I have also tried binding both mics to a combined sink with the following script:

#!/bin/bash

# Script to map two pulseaudio hardware input sources as mono inputs
# to left and right channel of a new loopback-sink respectively. This
# sink can be used e.g. to use VoIP or record two microphones seperately.
# Copyright (C) 2013, Henning Hollermann, laclaro@mail.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

do_activate() {
while [ "x" = "x$LEFT" ]; do
echo "Choose Source for left channel by ID"
pactl list short sources | grep input
read ID
LEFT=$(pactl list short sources|awk '/^'$ID'/{print $2}')
done
while [ "x" = "x$RIGHT" ]; do
echo "Choose Source for right channel by ID"
pactl list short sources | grep -v $LEFT |grep input
read ID
RIGHT=$(pactl list short sources | grep -v $LEFT|awk '/^'$ID'/{print $2}')
done
# Create the name of the Combined sink
NAME="COMBINED MICS:_Left:_"$(echo $LEFT|awk -F'.' '$0=$2')"_Right:_"$(echo $RIGHT|awk -F'.' '$0=$2')

echo "[LOAD] null sink as \"$NAME\" to connect the two mics to"
pactl load-module module-null-sink \
sink_name=combined channels=2 \
sink_properties="device.description=$NAME"

echo "[LOAD] map source 1 ($LEFT) to left channel of \"$NAME\""
pactl load-module module-remap-source \
source_name=${LEFT}_left_channel master=$LEFT channels=2 \
master_channel_map=mono,mono channel_map=left,left
pactl load-module module-loopback sink=combined source=${LEFT}_left_channel

echo "[LOAD] map source 2 ($RIGHT) to right channel of \"$NAME\""
pactl load-module module-remap-source \
source_name=${RIGHT}_right_channel master=$RIGHT channels=2 \
master_channel_map=mono,mono channel_map=right,right
pactl load-module module-loopback sink=combined source=${RIGHT}_right_channel
echo "[DONE] Now adjust the left and right channel volume of the new sink to be equally loud"


}

do_deactivate() {
echo "[UNLOAD] pulseaudio modules..."
echo "[UNLOAD] module-loopback"
pactl unload-module module-loopback
echo "[UNLOAD] module-remap-source"
pactl unload-module module-remap-source
echo "[UNLOAD] module-null-sink"
pactl unload-module module-null-sink
}

init() {
for exe in /usr/bin/pulseaudio /usr/bin/pactl; do
if [ ! -x "$exe" ]; then
echo "[ERROR] required file $exe not found or not executable"


However, this script does not bind them correctly. When I go to PulseAudio, there is a "COMBINED" audio input. But switching to it only enables one mic, and the sound is passed through directly to the speakers and I cannot record anything.

Needless to say I am frustrated. The whole reason I switched from Audacity to OBS was to use the multiple mic capability.

FYI, Audacity is supposed to be able to handle two mics by setting up two mono tracks and assigning one mic to each. But when I try to do this the selected mic is assigned to all tracks.
 

AaronD

Active Member
There's something weird going on here. Audacity is supposed to handle multiple mics just fine, and far better than OBS does.

If you're only using OBS for audio, don't. Use something else that's actually designed for audio. OBS's audio is the worst mess I've seen from anything that still manages to work...at least superficially. It was originally designed for much more limited use than what it supports now, and the additions were not managed very well.

So I often recommend that people move all of their audio work outside of OBS and into an external tool, like a DAW or physical console, and then send the final finished soundtrack from that external tool to OBS as its only audio source at all, to pass through completely unchanged.

Use OBS for video processing, streaming, and recording; and something else for audio. Slip the final audio into OBS at the last possible moment to send them out together.
 
Last edited:
Top