Remove monitor-output from sources on Pipewire

Messed up with pulse-audio settings on Pipewire and now my mic capture playback…Need to return built-in mic as a single source

I am searching for solution 3 days and nothing. My system Pulse-audio on Pipewire.

  1. I opened Audacity and set recording device as “pulse”

  2. I opened pavucontrol and chose recording as “monitor”

After rebooting I got 2 sources 1) monitor-output 2) mic -which is not recognized in browsers. In audacity/OBS it plays like mic+monitor-playback at the same time

I have wireplumber but all scripts I wrote it does not execute, I tried to mute source with pactls - nothing works for me. Please help. You are my last option.

People here who could help would need to know some things.

one would be what you have changed - what you did and why
the next would be details about your scripts - what you think they ought to achieve, what they look like and where you put them …

To start over you might need to have to delete audacity configs in ~/.config/…

I, for one, am not clear, don’t have an understanding of what the actual problem is.

1 Like

sure. I wanted to record a music from youtube) So I did. Audacity recorded it. But after that I cannot return my built-in mic as a single source. I even reinstalled audacity (i notced that Audacity has alsa-plugin to record playback) but it did not help monitor as a source is still there

reinstalling an application will not ever, never ever, change anything in your $HOME - in your user configuration.
You would need to remove that “by hand” to go back to the default state.

2 Likes

aha. got it. So I need to find conf file in audacity folder and remove it manually?

probably
likely

It will (likely) be identifiable by the name of the directory under ~/.config/…

removed

Unfortunately it did not work

I removed conf for Audacity from command line entering particular directory

changing recording source in pavucontrol might have set the sink monitor as default source instead of microphone source

Please post more information about pipewire-pulse sources

pactl list sources short; pactl get-default-source

OBS-Studio default settings allows user to record desktop audio and microphone at the same time, but Audacity can usually record from one audio source only, unless audio card is using pro-audio profile (pipewire-jack)

Please post more information about card profiles

pactl list cards
1 Like

Whatever that means - what did you do to do it?

audacity might not even be the reason for your perceived problem with the mic.

1 Like

Welcome to the forum! :wave:

Please edit your topic title to be clear and concise about the problem you’re having as well as post your system information. All the details are included in the following:

1 Like

This is something I do myself, as I rarely keep detailed notes when I’m trying to fix something…

I rely on snapshots and backups much more. I would first browse my backup folder (fresh incremental back-up every 4 hours) and copy back my original Audacity config.

if changes are wider, then I could restore the whole lot - and if it’s a system issue, I can restore a snapshot.

Failing that, possibly brute force:

# brute force troubleshooting...
mv ~/.config ~/.configBORKED
# logout and log back in again to force plasma to recreate the folder with default settings
dolphin --split ~/.config ~/.configBORKED
# copy back half of the BORKED folder contents at a time and relog to see if issue returns
# if it does, then delete the folder again, relog, and only copy half of that previous half
# repeat until the culprit is found, then finally, copy back everything BUT that culprit bit

To establish it’s a USER vs SYSTEM error, you can create a new USER and make sure everything works in a fresh account (though in this case, you’re confident you borked it in some setting or script or something).

Moving On:

Be sure to set snapshots and backups - back-in-time is my poison, and it creates an incremental backup of my HOME contents every 4 hours and keeps copies for a few hours, few days, week, month.

Then snapshots I donate 33% of my 250GiB system drive for disaster recovery.

The most important is backups, as they make reinstalling less painful and store most of the important things that would take months to recover.

2 Likes

Did you also logout, enter a TTY and remove/rename the ~/.cache directory, and reboot? Otherwise, if settings are currently in use any changes may not be obvious.

Please provide your system information as described (below) which will allow others to identify possible contributors, and edit the topic title as previously instructed.

Regards.


What follows is from a standard template.

Welcome to the Manjaro community

As a new or infrequent forum user, please take some time to familiarise yourself with forum requirements, and the many ways to use the forum to your benefit.

Note: By virtue of using the Manjaro forum you acknowledge and agree to follow Rules and Guidelines outlined; so, you really should read them:

Required Reading
Highly Recommended

Work with us, not against us

Be prepared to provide output from commands when asked. It is equally important to provide as much actionable information as possible in your first post, rather than simply indicating there is a problem.

Simply waiting for others to ask you questions can be counter-productive – typically, nobody has a :crystal_ball: at their disposal – instead, please help others to make informed suggestions based on information you provide.


System Information

While information from *-fetch type apps might be fine for someone wishing to buy your computer, for Support purposes it’s better to ask your system directly; :eyes:

Output of the inxi command (with appropriate parameters, and formatted according to forum guidelines) will generate information useful for those wishing to help:

Suggested inxi command (use either):

short-form: inxi -zv8
long-form: inxi --filter --verbosity=8

Running inxi within a chroot environment :eyes:

  • Add --color=0 to the long-form command, or…
  • Change the short-form command to inxi -zv8c0
Your privacy is respected

Update Announcements


Technical Resources


1 Like

pactl list sources short; pactl get-default-source

pactl list sources short; pactl get-default-source
54	alsa_output.pci-0000_00_1b.0.analog-stereo.monitor	PipeWire	s32le 2ch 48000Hz	SUSPENDED
55	alsa_input.pci-0000_00_1b.0.analog-stereo	PipeWire	s32le 2ch 48000Hz	RUNNING
alsa_input.pci-0000_00_1b.0.analog-stereo

pactl list cards
Card #47
	Name: alsa_card.pci-0000_00_1b.0
	Driver: alsa
	Owner Module: n/a
	Properties:
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.card.longname = "HDA Intel PCH at 0xf2530000 irq 29"
		api.alsa.card.name = "HDA Intel PCH"
		api.alsa.path = "hw:0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.api = "alsa"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1b.0"
		device.description = "Вбудоване аудіо"
		device.enum.api = "udev"
		device.form_factor = "internal"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_00_1b.0"
		device.nick = "HDA Intel PCH"
		device.plugged.usec = "20863053"
		device.product.id = "0x1e20"
		device.product.name = "7 Series/C216 Chipset Family High Definition Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		media.class = "Audio/Device"
		spa.object.id = "2"
		factory.id = "15"
		client.id = "46"
		object.id = "47"
		object.serial = "47"
		object.path = "alsa:acp:PCH"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xf2530000 irq 29"
		alsa.driver_name = "snd_hda_intel"
		alsa.mixer_name = "Realtek ALC3202"
		alsa.components = "HDA:10ec0269,17aa21f3,00100203 HDA:80862806,80860101,00100000"
		alsa.id = "PCH"
		device.string = "0"
	Profiles:
		off: Вимкнено (sinks: 0, sources: 0, priority: 0, available: yes)
		output:analog-stereo+input:analog-stereo: Аналогове двобічне стерео (sinks: 1, sources: 1, priority: 6565, available: yes)
		output:analog-stereo: Аналогове стерео-вихід (sinks: 1, sources: 0, priority: 6500, available: yes)
		output:hdmi-stereo+input:analog-stereo: Цифровий стерео (HDMI)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 5965, available: no)
		output:hdmi-stereo: Цифровий стерео (HDMI)-вихід (sinks: 1, sources: 0, priority: 5900, available: no)
		output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 5765, available: no)
		output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 5765, available: no)
		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2)-вихід (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3)-вихід (sinks: 1, sources: 0, priority: 5700, available: no)
		output:analog-surround-40+input:analog-stereo: Аналоговий об'ємний 4.0-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 1265, available: yes)
		output:analog-surround-40: Аналоговий об'ємний 4.0-вихід (sinks: 1, sources: 0, priority: 1200, available: yes)
		output:hdmi-surround+input:analog-stereo: Цифровий об’ємний 5.1 (HDMI)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 865, available: no)
		output:hdmi-surround71+input:analog-stereo: Digital Surround 7.1 (HDMI)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 865, available: no)
		output:hdmi-surround: Цифровий об’ємний 5.1 (HDMI)-вихід (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround71: Digital Surround 7.1 (HDMI)-вихід (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3)-вихід + Аналогове стерео-вхід (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2)-вихід (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2)-вихід (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3)-вихід (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3)-вихід (sinks: 1, sources: 0, priority: 600, available: no)
		input:analog-stereo: Аналогове стерео-вхід (sinks: 0, sources: 1, priority: 65, available: yes)
		pro-audio: Професійний звук (sinks: 4, sources: 1, priority: 1, available: yes)
	Active Profile: output:analog-stereo+input:analog-stereo
	Ports:
		analog-input-internal-mic: Вбудований мікрофон (type: Mic, priority: 8900, latency offset: 0 usec, availability group: Legacy 1, availability unknown)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 1"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "0"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo
		analog-input-dock-mic: Мікрофон док-станції (type: Mic, priority: 7800, latency offset: 0 usec, availability group: Legacy 2, not available)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 2"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "1"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo
		analog-input-mic: Мікрофон (type: Mic, priority: 8700, latency offset: 0 usec, availability group: Legacy 3, not available)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 3"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "2"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo
		analog-output-speaker: Акустичні колонки (type: Speaker, priority: 10000, latency offset: -40000 usec, availability group: Legacy 4, availability unknown)
			Properties:
				port.type = "speaker"
				port.availability-group = "Legacy 4"
				device.icon_name = "audio-speakers"
				card.profile.port = "3"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+input:analog-stereo
		analog-output-headphones: Аналогові навушники (type: Headphones, priority: 9900, latency offset: -40000 usec, availability group: Legacy 5, not available)
			Properties:
				port.type = "headphones"
				port.availability-group = "Legacy 5"
				device.icon_name = "audio-headphones"
				card.profile.port = "4"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 6, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 6"
				device.icon_name = "video-display"
				card.profile.port = "5"
			Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71, output:hdmi-surround71+input:analog-stereo
		hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 7, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 7"
				device.icon_name = "video-display"
				card.profile.port = "6"
			Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo
		hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 8, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 8"
				device.icon_name = "video-display"
				card.profile.port = "7"
			Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo

second command is not found after logged out and logged in. Monitor as a source is still available

 pactl get-default-source
alsa_input.pci-0000_00_1b.0.analog-stereo

default source - my mic, but is not on the first place in pavucontrol but only on the second

I removed all conf files and cache of Audacity after de-instalation - but monitor is still in sources in pavucontrol - so it looks like Audacity plugin effected the whole system and it is not the one that cause the problem

pactl data shows Microphone source alsa_input.pci-0000_00_1b.0.analog-stereo is the default source for audio capture.

But if the recording source is changed in pavucontrol, PipeWire will continue using the user-preferred source instead of the system default

User preferences are saved to ~/.local/state/wireplumber

To reset WirePlumber to default settings:

  • Stop the user service for WirePlumber:

    systemctl --user stop wireplumber.service
    
  • Delete user settings in home folder

    rm -r ~/.local/state/wireplumber
    
  • Restart the user service

    systemctl --user restart wireplumber.service
    

ArchWiki - WirePlumber - Tips and Tricks - Delete corrupt settings


For edited topic title:

How to remove monitor-output from sources

As far as I know there is no simple way to disable creation of alsa-output.*.monitor sources, aside from changing the card profile to input only that also disables the output sink for audio playback

1 Like

resetting wireplumber to default did not help. It looks like wireplumber cannot forbid the particular source. Can I set a rule in user configuration in ~/.config/pipewire/…. to forbid particular source? or edit pulse-audio configuration file? I tried to unload some modules but it did not work as well. So I think the problem in configuration in pulse-audio. But where to set the rules and how to set them correctly?

Since there is no solution how to recover built-in mic I will use external USB mic for recording and chatting and monitor-playback to record music in Audacity from youtube) Cannot miss such great opportunity) If i receive a lemon - i will do a lemonade :slight_smile: Thank you everyone for your help. I appreciate it so much. I learned a lot from your answers)

1 Like

Topic closed without a solution.
@devops2320 – If you wish to add more pertinent information at a later time, please ask a Moderation staff member to re-open the topic, at their discretion.

As far as I know there is no simple, known solution for disabling a sink monitor in pipewire-pulse (or pulseaudio) and nobody seems to have asked the project maintainers about this

Hardware sink or source nodes can be disabled in WirePlumber (similar to changing card profiles in pavucontrol GUI) - ArchWiki - WirePlumber - Disable a device/node
BUT the sink monitor source does not have a node to disable (it is created automatically to allow recording from the sink output)

It might be possible to change low-level configuration of PipeWire using coppwr-bin AUR but it is not recommended

FAQ · Wiki · PipeWire - is-there-a-native-gui-tool-to-configure-PipeWire?

The PipeWire lowlevel API is a loose collection of objects, properties and parameters that are combined into a coherent use case by the Audio Toolkit in use (JACK/PulseAudio). So any GUI without a concrete use case would not make much sense.

That said, there are cli tools to configure and manipulate every aspect of PipeWire

There are a few possible solutions for using built-in microphone source instead of the sink monitor

user could change the recording source in the dropdown menu in pavucontrol Recording tab pavucontrol --tab=2 (to revert change of Audacity recording source in OP)

OR use pactl or pw-metadata to move the source-output stream:

PipeWire Wiki · Migrate PulseAudio - Move

Streams (sink-input/source-output) are linked and moved by the session manager.

You can use pactl or pavucontrol to move streams:

pactl move-source-output [ID] alsa_input.pci-0000_00_1b.0.analog-stereo

(use pactl list source-outputs short to get the stream [ID] number)

The PipeWire native equivalent is by using the metadata tool.

pw-metadata <stream-id> target.node <node-id>

This instructs the session manager to move stream to the sink/source with name/id

You can move the stream back to the default with:

pw-metadata -d <stream-id> target.node

Using an external USB microphone instead of an built-in microphone is a good solution that should have much better audio quality

But it would be better to use yt-dlp (or a similar download utility) to download online audio content instead of recording it in Audacity

If a GUI app is preferred, there is also Vitomu:

  • An AppImage package is downloadable from GitHub.
  • PKGBUILD is available via the AUR:
    pamac build vitomu