Improve integration with Pulse

Bug #1514332 reported by Daniel Schürmann
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

Two possible solutions:
I think they are covering different use-cases, so we should implement both:

1) Implement a sounddevicepulse, to become a native pulse client.
The pro-setup of such a system will be still tricky since it requires pavucontrol, which is not default on most distros.
Mixxx has to register more than one clients to have access to more than one hardware soundcard.

Currently this is already possible with one soundcard using the "pulse" Soundcard of ALSA.

2) redirect Pulse (System Sound) to the ALSA Loopback soundcard, to allow to Mixxx the system sound in (Youtube/Soptify)

Solution 1) id the jukbox setup which makes Mixxx behave as any other desktop application.
Solution 2) is the pro setup, which allows to use teh system sound in lief Mixes.

Related Bugs:
Bug #1333466
Bug #1414456

Revision history for this message
Tuukka Pasanen (pasanen-tuukka) wrote :

I recommend to test Portaudio-pulseaudio currently only available in patch and builds can be found: https://build.opensuse.org/package/show/home:illuusio:portaudio/portaudio

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Thank you, this would be a adequate replacement for 1) if the two soundcards use case is easy to setup (just as easy as with the alsa backend)

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I think we're better served from a maintenance perspective by leveraging Tuukka's work in portaudio itself.

Changed in mixxx:
importance: Undecided → Wishlist
status: New → Triaged
status: Triaged → Won't Fix
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Tuukka's work is a very nice solution for 1.)
So we do not need a sounddevicepulse.

However it is not a solution for the "Using the system sound" 2.)

Since we currently have non of these solutions, lets keep the bug open.

Changed in mixxx:
status: Won't Fix → Confirmed
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

If the user wants to mix the system sound in then they should get it into a sound device PortAudio can read from on their own (e.g. using JACK, SoundFlower, etc.) and use an AUX input. I don't think we should be messing with Pulse/ALSA for the user.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

I was thinking about a extended pasuspender, which switches the Pulse default output to the loopback device.
This way, Mixxx itself is not responsible for messing with the pulse config, it has not pulse dependency, but it can interact with this new wrapping process, so solve the other issues we currently have with pulse as well.

The result is able to achieve a much better latency than a Mixxx/System - > Pulse -> ALSA solution or a Mixxx/Jack - > Jack -> ALSA solution.

Finally we will have System -> Pulse -> ALSA -> MIxxx -> ALSA. Mixxx does actually the final mixing ;-)

Revision history for this message
Daniel Schürmann (daschuer) wrote :

https://github.com/illuusio/portaudio-pulseaudio/pull/1

This branch is quite mature. Unfortunately merging upstream is somehow stalled.
I think we should adopt this in our Ubuntu PPA
That should be a great usability boost.

And a nice topic on our 2.2 feature list.

Changed in mixxx:
milestone: none → 2.2.0
Revision history for this message
Be (be.ing) wrote :

IMO we should work to get it merged upstream rather than hack in our own functionality to replace a common package on almost every users' system.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Illuusio is trying that for two years, and even if it would be merged today, we should offer it our users in a ppa instead of wait an other two yeas until it lands in a new distro release.

Be (be.ing)
Changed in mixxx:
milestone: 2.2.0 → none
Revision history for this message
Daniel Schürmann (daschuer) wrote :
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8285

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.