Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve integration with Pulse #8285

Open
mixxxbot opened this issue Aug 22, 2022 · 11 comments
Open

Improve integration with Pulse #8285

mixxxbot opened this issue Aug 22, 2022 · 11 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: daschuer
Date: 2015-11-09T08:05:06Z
Status: Confirmed
Importance: Wishlist
Launchpad Issue: lp1514332


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.

  1. 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

@mixxxbot
Copy link
Collaborator Author

Commented by: illuusio
Date: 2015-11-12T13:05:00Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2015-11-12T14:29:34Z


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)

@mixxxbot
Copy link
Collaborator Author

Commented by: rryan
Date: 2015-12-31T18:39:22Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2016-01-01T02:29:47Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: rryan
Date: 2016-01-01T02:47:50Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2016-01-01T10:44:53Z


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 ;-) 

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2018-05-20T20:02:50Z


illuusio/portaudio-pulseaudio#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.

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2018-05-20T20:16:33Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2018-05-20T22:04:09Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2020-06-10T06:27:10Z


the code lives now here: https://github.com/illuusio/assembla-mirror-portaudio-pulseaudio

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
@daschuer
Copy link
Member

The Pulse API has now been merged:
PortAudio/portaudio#336

we need to consider how we want to make it usable for all our Linux users.

@daschuer daschuer added this to the 2.5.0 milestone Oct 25, 2023
@daschuer daschuer modified the milestones: 2.5-beta, 2.5.0 May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants