dan0v / AmplitudeSoundboard

A sleek, cross-platform soundboard, available for Windows, MacOS, and Linux
https://amplitude-soundboard.dan0v.com
GNU General Public License v3.0
79 stars 10 forks source link

[BUG] PipeWire / PulseAudio output devices don't allow selecting a specific sink #71

Open 3XC4L1B3R opened 7 months ago

3XC4L1B3R commented 7 months ago

Describe the bug PipeWire / PulseAudio output devices don't allow selecting a specific sink. They create a new output and play to the system default sink.

To Reproduce Steps to reproduce the behavior:

  1. Create PulseAudio virtual sink.
  2. Add a clip to the app.
  3. Edit clip output profile to select PulseAudio / PipeWire output device.
  4. Play the clip. Audio is played through system default sink even if virtual sink wasn't connected to anything.

Expected behavior Virtual sinks added through PipeWire / PulseAudio appear in Amplitude output device list, or another context menu after selecting PipeWire / PulseAudio to select a sink to play to.

Screenshots Current behaviour: Screenshot from 2024-03-25 15-18-58 (simplified; connection visualizer is QjackCtl.) Amplitude connects to system default sink. PipeWire output pictured, but behaviour is the same for JACK and PulseAudio outputs. Expected behaviour: Screenshot from 2024-03-25 15-18-39 Amplitude connects to a virtual sink, and the virtual sink monitor can connect to other sinks.

Desktop:

dan0v commented 7 months ago

You're right, virtual sinks don't seem to show up, although I am sure that at some point in the past, this worked.

As a temporary workaround, you could use the default output and use pavucontrol to route the entire AmplitudeSoundboard application to your virtual sink. This isn't a great solution and makes the profile editing and output selection inside Amplitude meaningless on Linux.

It looks like an alternative, newer sound engine solution might be needed for Linux, which is aware of virtual sinks. I'm not keen to develop platform specific logic when I've been trying to unify as much as possible, but I'll take a look into the matter when I have a bit of free time.