Skip to content

Default input is used as source when set application disappears from Pipewire #770

@YourDLCMaster

Description

@YourDLCMaster

I use Pipewire and have Cava configured to use an application name as the source (so it doesn't visualize ALL my desktop audio and just my music apps), this worked fine up until a couple of months ago when Cava (through any instance, including with Kurve) suddenly started visualizing my default microphone input when the chosen application wasn't present in Pipewire (either by not running or idling for a while after audio no longer plays). This happens with any application, including Spotify and cmus. It also used to be more inconsistent but has gradually become very consistent in behavior. This happens when built and run from source as well, and I installed Cava from the extra Arch repository.

Steps to Reproduce

  1. Install or build Cava from source
  2. Set [input] section of ~/.config/cava/config to:
method = pipewire
source = <application.name as seen in "wpctl status" and "wpctl inspect", e.g. "C* Music Player", "spotify", etc.>
  1. Start Cava
  2. Test microphone/input audio
  3. Open and play audio from application
  4. Test input audio again

Expected Behavior

  • Cava should remain dormant with no input after set application disappears from Pipewire until it exists and is playing audio again (it used to do this, even with Kurve)

Screen Recording

cava.issue.mp4

Desktop

  • OS: Arch Linux
  • Kernel version: 6.19.14-arch1-1
  • Pipewire version: libpipewire 1.6.4
  • Cava version: 0.10.7 (also happens when built from source)

Terminal Emulator

  • Terminal: Ghostty
  • Version: 1.3.1-arch2

Additional Context

I assume this is different from the issue listed in the troubleshooting section of the README because I'm trying to use application audio instead of my speaker output. It behaves perfectly normally when I choose my speakers or don't define a source in the config.

I also apologize if this is a duplicate issue, I've been searching for WEEKS and I can't find another issue similar to this, and there's a chance it's an issue with my own Pipewire setup (though I don't have anything like qpwgraph, Cable, or Easy Effects running, and I had just booted my computer). I notice pallaswept mentioned something similar in #661, and application outputs DO work, but I didn't see anything about how Cava uses the default input when the application is no longer present in Pipewire. It also still captures my microphone even when another application isn't, which gets annoying.

If I'm defining the source wrong that could very well be my fault, I've tried setting the source to target.object.serial or its number, as well as other properties (nothing I've tried works, it either uses the default input or the default output, and I don't know if I'm specifying it wrong in the config). I admittedly don't know much about Pipewire so I apologize if I sound dumb 💔

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions