• buddascrayon@lemmy.world
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    5 days ago

    Oh no… Anyway, anyone got a fix for dual audio on Linux Mint.

    I wanna output to 2 devices (one is HDMI TV and the other is Bluetooth) at once and pipewire isn’t accommodating me. I’m hesitant to go screwing around with pulseaudio cause I tried that on a previous build and things went badly.

    I managed to get an all devices audio output inserted into the pipewire.conf but the only sound that comes out is from the TV and not the bluetooth speaker.

    I don’t really expect an answer here but if you could point me to the forum or instance that might have answers would be appreciated.

    I used this page to do the code insert.

    ~~https://thecodeninja.net/2024/06/pipewire-combined-sink/~~ nevermind, the site seems to have 404’d itself in the last minute or so.

    • opfar.v30@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      5 days ago

      If outputting separate programs to separate outputs: install Pavucontrol (yes, for Pipewire); change outputs per-program in the first tab.

      If trying to output the same stream(s) to both: install Helvum; drag lines around to connect to additional outputs.

      • buddascrayon@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 day ago

        So, I’m finally able to tackle this. Do i need pavucontrol? I’m trying to avoid installing any pulseaudio components.

      • buddascrayon@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        5 days ago

        Oooo, Helvum looks like what I’m trying for. Thanks! Do you know if i can use flatpak on an Ubuntu/Debian based system? Or does it only work on Arch based?

    • Domi@lemmy.secnd.me
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      Check out qpwgraph: https://flathub.org/en/apps/org.rncbc.qpwgraph

      It’s like Helvum but it can save patchbays and restore them on boot.

      The easiest solution is to create a virtual audio device through your Pipewire config and then use qpwgraph to link them up to your physical device on boot.

      I can copy my Pipewire virtual device config if you need it.

      I have used this setup to separate game audio from voice audio when streaming for years.

      • buddascrayon@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        5 days ago

        Yeah, if you could post your setup that would be great. I think it would give me a better idea of how things work. Though, my goal is to consolidate sources to multiple outputs not to separate them.

        • Domi@lemmy.secnd.me
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          5 days ago

          my goal is to consolidate sources to multiple outputs not to separate them.

          Works the same way, just in reverse.

          Put the following in ~/.config/pipewire/pipewire.conf.d/10-virtual.conf

          context.objects = [
              {   factory = adapter
                  args = {
                      factory.name     = support.null-audio-sink
                      node.name        = "Virtual-Sink-1"
                      node.description = "Virtual Sink 1"
                      media.class      = "Audio/Sink"
                      audio.position   = "FL,FR"
                  }
              }
          ]
          

          If you need more than stereo, you can adjust it in audio.position. If you need multiple devices, just copy/paste the block between the {} multiple times and rename the device.

          After that restart your system, you should now have a new audio device called Virtual Sink 1, select it as default device.

          Start qpwgraph and connect the Virtual sink(s) to your output device(s) by dragging the monitor nodes to the playback nodes:

          You can now try if everything sounds correctly. If it does, hit Ctrl + S in qpwgraph to save your patchbay somewhere. It will save all the connections you just made and establish them on start and on the fly if new devices are added.

          Next up, add an autostart entry for qpwgraph. This depends on your desktop environment, add the --minimized flag so you don’t see the qpwgraph window every boot. You can also select “Start minimized to system tray” in “Graph” -> “Options”.

          If you only need certain applications to go to both devices, you can also achieve this without the virtual device by just dragging your application node directly to your bluetooth device in qpwgraph and saving the patchbay, it will route the audio automatically every time the application starts.

    • ayyy@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      Combining Bluetooth with other output types is quite challenging because the audio buffers are not just huge for Bluetooth, they are actually dynamically resized depending on signal depending on the implementation.