Creating a mono source from stereo-device (Scarlett 2i2 3 gen.) for Skype

I’m new here on the forum and I’m looking for support for tackling an issue with Skype for some music lessons.
My scenario: audio interface Scarlett Focusrite 2i2 3.gen., microphone and electric guitar attached.

The issue: Skype takes only the first channel, so the sound of the guitar is lost.
In former times with a mac this problem was solved with Blackhole and LadioCast.

Digging for a respective solution with pipewire I found examples for creating virtual sources e.g. combining several stereo sources into one. But there was no example or howto create a virtual souce that combines / merges / downmixes two stereo signals into a single mono signal / source / output that might be accepted by Skype as mic-input.

Any help is highly appreciated or even a hint if this cannot be accomplished with pipewire and maybe requires some other software. I’ve tried easyeffects (stereo plugin) without success, same with switching to Proaudio for the Focusrite.

Just in case this helps, here is the output of wpctl status

PipeWire 'pipewire-0' [1.2.2, henrich@miniit11, cookie:90116274]
 └─ Clients:
        32. xdg-desktop-portal                  [1.2.2, henrich@miniit11, pid:818]
        33. WirePlumber                         [1.2.2, henrich@miniit11, pid:1004]
        41. WirePlumber [export]                [1.2.2, henrich@miniit11, pid:1004]
        86. pipewire                            [1.2.2, henrich@miniit11, pid:1109]
        87. libcanberra                         [1.2.2, henrich@miniit11, pid:893]
        88. plasmashell                         [1.2.2, henrich@miniit11, pid:893]
        89. Plasma-PulseAudio                   [1.2.2, henrich@miniit11, pid:893]
       119. Firefox                             [1.2.2, henrich@miniit11, pid:9087]
       123. Firefox                             [1.2.2, henrich@miniit11, pid:9087]
       148. Chromium input                      [1.2.2, henrich@miniit11, pid:142]
       152. KDE Connect-Dienst                  [1.2.2, henrich@miniit11, pid:1116]
       183. wpctl                               [1.2.2, henrich@miniit11, pid:12351]
       199. qpwgraph                            [1.2.2, henrich@miniit11, pid:12097]
       200. Skype                               [1.2.2, henrich@miniit11, pid:70]

Audio
 ├─ Devices:
 │      42. Scarlett 2i2 3rd Gen                [alsa]
 │      43. Tiger Lake-LP Smart Sound Technology Audio Controller [alsa]
 │  
 ├─ Sinks:
 │      53. Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort 1 Output [vol: 1.00]
 │      80. Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort 3 Output [vol: 1.00]
 │      81. Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort 2 Output [vol: 1.00]
 │      82. Tiger Lake-LP Smart Sound Technology Audio Controller Headphones [vol: 1.00]
 │  
 ├─ Sources:
 │      83. Tiger Lake-LP Smart Sound Technology Audio Controller Internal Stereo Microphone [vol: 0.75]
 │      84. Tiger Lake-LP Smart Sound Technology Audio Controller Digital Microphone [vol: 0.60]
 │  
 ├─ Filters:
 │    - pro-audio-0                                                 
 │  *   47. alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8XYM8203316BB-00.pro-output-0 [Audio/Sink]
 │  *   48. alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8XYM8203316BB-00.pro-input-0 [Audio/Source]
 │  
 └─ Streams:
       157. Skype                                                       
             97. monitor_FR     
            150. input_FR       
            198. input_FL        < Scarlett 2i2 USB:capture_AUX0        [init]
            202. monitor_FL     
       191. Skype                                                       
            184. output_FR       > Scarlett 2i2 USB:playback_AUX1       [init]
            194. output_FL       > Scarlett 2i2 USB:playback_AUX0       [init]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8XYM8203316BB-00.pro-output-0
         1. Audio/Source  alsa_input.usb-R__DE_Microphones_R__DE_NT-USB_Mini_A67B9AEA-00.mono-fallback

Install the easyeffects package. This allows you to create a “mono” preset which will do the job for you.

Annoyingly, I can’t remember just how I did create my mono preset, but I’m sure a quick search will find something. If you can’t find anything, come back and I’ll try to dig into my setup to see if I can work it out (just about to leave the house, so can’t do that now).

Thanks a lot for your reply.
I had easyweffects still installed and tried again according to a recommendation I hadread before.
After starting a test call with Skype, I found “Skype output” in OUT and from “effects” added stereotool. There in stereo.matrix I chose "LR > L + R (Monosumme L + R).
I could then find an input souce “easyeffects source” in Skype. But the test call reproduced only audio from the first canal of Focusrite i.e. voice recording. The guitar rested muted in the feedback although I could here it in my earphones during the call.
In a second try easyeffects did not show neither in Skype nor in pavucontrol.
If your preset works with skype that would be great to hear. But I’m not in a hurry! :smiley:

Could you specify exactly what it is that you’re trying to do?

Perhaps you could configure Audacity to record live input, and mixdown to however many channels you need; and use the resulting file for whatever the intended purpose.

From time to time I get a music/guitar-lesson via Skype. In order to get good sound quality, some time ago I bought an AV-Interface Focusrite 2i2 3.gen… It produces a stereo stream with one channel for voice (FL or with ProAudio aux0) and one for the electric guitar (FR or with ProAudio aux1). But Skype accepts only one mono input.
On my Mac - now out of date - I managed to set up the sound system with Blackhole and Ladiocast appropriately. These apps bundled/merged/downmixed the two stereo channels into one mono stream thus bringing the whole audio input into Skype.
Now on Linux unfortunately I’m not able to achieve this “downmixing” of the two stereo signals.

I’m new to pipewire, but I found some examples and tried to create a virtual source for this purpose:

context.modules = [
{   name = libpipewire-module-combine-stream
    args = {
        combine.mode = source
        node.name = "focusrite_mono"
        node.description = "Focusrite Mono Source"
        combine.props = {
            audio.position = [ MONO ]
        }
        stream.props = {
                stream.dont-remix = false
        }
        stream.rules = [
            {   matches = [
                    {   media.class = "Audio/Source"
                        node.name = "alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8XYM8203316BB-00.pro-input-0"
                    } ]
                actions = { create-stream = {
                        audio.position = [ AUX0 ]
                        combine.audio.position = [ MONO ]
                } } }
            {   matches = [
                    {   media.class = "Audio/Source"
                        node.name = "alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8XYM8203316BB-00.pro-input-0"
                    } ]
                actions = { create-stream = {
                        audio.position = [ AUX1 ]
                        combine.audio.position = [ MONO ]
                } } }
        ]
    }
}
]

But this did not work. And to be honest, pipewire for me is difficult stuff. In the documentation there are many examples for different purposes, but I did not find one fitting my needs.

@ soundofthunder Thanks for your hint to audacity. I have used it several times for recording, but until now I have not found a notice that it works for live streaming e.g. with Skye.
So hopefully a proper setup of easyeffects will work.

Whether Audacity works with streaming or not, I can’t say. However, now that we know what the ultimate goal is, that may open the door for a few practical suggestions from the community. Or, it may not.

I did find this article Using A Multichannel Audio Interface with Skype and the accompanying video, which only serves to confirm it was possible on Mac a some point in the past.

Otherwise, there doesn’t seen an abundance of information on the topic in the wild; at least, nothing that stood out from the few minutes spent searching.

The following information taken from share computer sound on skype might potentially be useful, though not overly descriptive. I’ll dump the text here for convenience.

You might also investigate capabilities of Digital Audio Workstation (DAW) software available for Linux, in case they could be leveraged for the purpose:

1. Ardour

sudo pacman -S ardour

2. LMMS

sudo pacman -S lmms

Good luck.

pipewire-pulse can use PulseAudio module-remap-source to remap audio channels to mono

pactl load-module module-remap-source source_name=mono channel_map=aux0,aux1 master_channel_map=mono,mono

Or pw-loopback to load a Virtual Device - Remap Source

For pipewire-jack (“pro-audio” profile) Audio channels can be remapped manually in patchbay GUI (qpwgraph, helvum etc)
JACK mono patch for skype

Or use an audio mixer - jack_mixer - SkypeMonoRemix · GitHub Gist

Linux alternatives to LadioCast for streaming to icecast/shoutcast:
BUTT - broadcast using this tool
Darkice

I can’t comment on whether or not this works specifically with Skype as I’ve never used it. But these are the two filter files I have.

~/.config/easyeffects/output/Mono.json

{
    "output": {
        "blocklist": [],
        "plugins_order": [
            "stereo_tools#0"
        ],
        "stereo_tools#0": {
            "balance-in": 0.0,
            "balance-out": 0.0,
            "bypass": false,
            "delay": 0.0,
            "input-gain": -5.0,
            "middle-level": 0.0,
            "middle-panorama": 0.0,
            "mode": "LR > L+R (Mono Sum L+R)",
            "mutel": false,
            "muter": false,
            "output-gain": 0.0,
            "phasel": false,
            "phaser": false,
            "sc-level": 1.0,
            "side-balance": 0.0,
            "side-level": 0.0,
            "softclip": false,
            "stereo-base": 0.0,
            "stereo-phase": 0.0
        }
    }
}

~/.config/easyeffects/output/Stereo.json (needed to switch back afterwards)

{
    "output": {
        "blocklist": [],
        "plugins_order": [
            "stereo_tools#0"
        ],
        "stereo_tools#0": {
            "balance-in": 0.0,
            "balance-out": 0.0,
            "bypass": false,
            "delay": 0.0,
            "input-gain": 0.0,
            "middle-level": 0.0,
            "middle-panorama": 0.0,
            "mode": "LR > LR (Stereo Default)",
            "mutel": false,
            "muter": false,
            "output-gain": 0.0,
            "phasel": false,
            "phaser": false,
            "sc-level": 1.0,
            "side-balance": 0.0,
            "side-level": 0.0,
            "softclip": false,
            "stereo-base": 0.0,
            "stereo-phase": 0.0
        }
    }
}

pipewire-jack can use Stereo Tools as a standalone plug-in without easyeffects GUI

calfjackhost stereo

CalfStereoTool

@beermad Thank you for the files. Unfortunately, this did not work with skype.

@nikgnomic Thank you for all your hints. I have started with module-remap-source.
With qpwgraph it gave this picture:

I could connect Scarlett Capture AUX1 → mono source input FR manually. But this didn’t help. During the test call only the left channel audio (voice) arrived.

If I understand you correctly, you get audio from Skype - which is mono - and merge it with other sources. However I want to send a mono audio to Skype. For this purpose I haven’t found any examples or hints in the Pipewire Wiki either.

The module-remap-source swaps the right and left channel. The combine-sinks merge several sources into one, but the output is always FL FR. Similiarly the Virtual Mono Source creates a mono stream of a LF (or a LR), but does not downmix LF+LR to a single mono stream.

Of course I don’t know if a jack-server could provide a solution. And there is still @soundofthunder the option to investigate the capabilities of Digital Audio Workstation (DAW) software.
But at present I’m a bit reluctant to dive into these unknown waters. My head is spinning and I need a short break. Maybe I’ld better reactivate the old MacMini. :flushed:

Thanks again to all of you for your support !! And I’ll come back in case there is some progress.

Meanwhile Wim Taymans on the site of pipewire found out that it is a problem of Skype or more precisely, it is an issue of the Skype-app.
Using Skype in a web browser, both the mono-skype input as well as the ‘native’ input of the Focusrite are working, albeit the sound quality is not as good as in the Skype-app.
@beermad @nikgnomic @soundofthunder thanks again for your support.

Screenshot shows a mono source using input and output channel maps FL,FR and does not look anything like my suggestion of how to use remap module

I could connect Scarlett Capture AUX1 → mono source input FR manually. But this didn’t help. During the test call only the left channel audio (voice) arrived.

If Skype is using FL channel only and ignoring FR channel I would not expect it to help

Skype used to have decent audio, until Microsoft bought it out
Skype does not have an issue when used as intended with one microphone, but users who want to mix more than one audio source to Skype callers will need to customise audio server configuration

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.