No sound coming out of my headphones

There is where I am plugging in my headphones.

Another green jack is used in the back of my computer for my Logitech sound system.

No sound is reaching my headphones.

Do I have to unplug my Logitech jack in order to hear thru the headphones?

Is music coming out of the logi desktop speakers? If yes, do they have a headphone jack?

No. The only sound I can get is out of the TV speakers.

If you plug the speakers in the jack that is intended for headphones, do you still get sound out of the speakers?

No, not out of my Logitech speakers.

My sound hardware.

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [LG TV]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

This very frustrating.

Card 1, device 0 should give you the Analog output you want.

The issue is:

Sound Preferences is only letting you choose one or the other.

I bet if you click on the bottom one (non-HDMI), you will likely get your headset sound.

I don't know if there is any way to have both fed simultaneously, or if you can only "enable" one at a time. :frowning:

1 Like

It did not help.

I am taking a break from this issue. :slight_smile:

1 Like

Start alsamixer, text based. Move to the right to Auto-Mute. Use the down arrow to disable both Speakers and Headphone. The text should read, "Disabled Disabled"

Then give some volume to both speakers and headphone and test.

1 Like

This is what I get. Why is that all there is?

I think you need to select another card, the current one shows HDMI

That's what I said in my last posting. :frowning:

Press F6 to select a different sound card.

1 Like

If you want PipeWire to send audio to two devices at the same time, you'll need to use the 'combine steam' module, from the documentation at https://docs.pipewire.org/page_module_combine_stream.html:

The combine stream module can make:

  • a new virtual sink that forwards audio to other sinks

This is what you need!

You can experiment with this via pw-cli using the load-module command, OR you can write a configuration file e.g. ~/.config/pipewire/pipewire.conf.d/test-combine-sink.conf:

context.modules = [
{   name = libpipewire-module-combine-stream
    args = {
        combine.mode = sink
        node.name = "combine_sink"
        node.description = "My Combine Sink"
        combine.latency-compensate = false
        combine.props = {
            audio.position = [ FL FR ]
        }
        stream.props = {
        }
        stream.rules = [
            {
                matches = [
                    {
                        # node.name = 'regex here'
                        media.class = "Audio/Sink"
                    }
                ]
                actions = {
                    create-stream = {
                    }
                }
            }
        ]
    }
}
]

That will create a dummy device called "My Combine Sink" which will output to all sinks at once. That's good for a start, but you might want to restrict it to use only the devices you want; for that you'll need to add to the matches in the stream rules.

I wish this was a more trivial task - but there's no GUI for configuring PipeWire as far as I know.

2 Likes

pw-cli /home/andy/.config/pipewire/pipewire.conf.d/test-combine-sink.conf
Error: "Command "/home/andy/.config/pipewire/pipewire.conf.d/test-combine-sink.conf" does not exist. Type 'help' for usage."

assuming you created that sink.conf file, the command should be:

pw-cli load-module ~/.config/pipewire/pipewired.conf.d/test-combine-sink.conf

The help page says to use load-module and specify the module name

   load-module name [arguments...]
       Load a module specified by its name and arguments in the local instance. For most modules it is OK to be loaded more than once.

@stephematician can correct me if I'm wrong.

1 Like

There are two options.

  1. pw-cli to create the virtual device for the duration of the session.
pw-cli load-module module-combine-stream \
    combine.mode=sink \
    node.name="combine_sink" \
    ...
  1. Create a .conf file as above, which will create the virtual device for the user each time pipewire is started. So systemctl restart --user pipewire.{socket,service} should suffice to activate it.
1 Like

pw-cli load-module ~/.config/pipewire/pipewired.conf.d/test-combine-sink.conf
Error: "Could not load module"

So systemctl restart --user pipewire.{socket,service} should suffice to activate it.

I looked at those links you had on previous posts.

I could not find socket or service.

It's a command for the terminal.

To restart our PipeWire service - which is what handles mixing audio on Ubuntu MATE - we can go to a terminal (Ctrl+Alt+T), then type:

systemctl restart --user pipewire.{socket,service}

If we ever want a not-so-helpful manual for a command, we can use the man command: e.g.

man systemctl

Brings up:

SYSTEMCTL(1)                       systemctl                      SYSTEMCTL(1)

NAME
       systemctl - Control the systemd system and service manager

SYNOPSIS

       systemctl [OPTIONS...] COMMAND [UNIT...]

DESCRIPTION
       systemctl may be used to introspect and control the state of the
       "systemd" system and service manager. Please refer to systemd(1) for an
       introduction into the basic concepts and functionality this tool
       manages.

Man pages might be easier to navigate in a browser. To restrict a DuckDuckGo search (for example) to man pages, we can search for !man7 systemctl. The !man7 prefix restricts our search so we don't see unrelated blogs and AI-generated nonsense that is typical of search results these days.

1 Like

For this problem, however, we don't need to what systemctl does. The command I provided is all we need to restart the PipeWire service, and there will be few (if any) side effects in most cases.

If we run that command while some application was using audio, it will cut out. For example; a Firefox tab that was using audio will need to be reloaded. Other applications (using audio) may need to be closed (and re-opened).

1 Like