Comment 1 for bug 687689

Revision history for this message
Benjamin Drung (bdrung) wrote :

Response from upstream (Richard Ash):

(Note using the abbreviation "PA" is highly confusing - please don't).

Jack is I'm fairly sure irrelevant to this discussion. The core is that
Audacity actively probes all available ALSA devices, which upsets the
tower-of-babel that has been built on top of them.

There are two ways round this that are long-term acceptable:
1. Write a proper PulseAudio backend for PortAudio, the audio abstraction
library that Audacity uses. Ubuntu can then compile their Portaudio build with
only that backend enabled, and restrict Audacity to just PulseAudio devices.
2. Fix the ALSA emulation in PulseAudio and Ubuntu's ALSA configuration so that
what Audacity does is acceptable and doesn't crash things. This might include
hiding the real ALSA devices so only the faked ones are visible, and ensuring
that the full ALSA API works (or at least doesn't crash things).

Option 1 would mean that when ripping out PulseAudio, PortAudio would have to
be replaced with a build that supports ALSA, but that's not a big deal. It
would also involve knowing enough about the PulseAudio API to work out how to
wrap it up for the PortAudio callback structure. None of this is terribly hard,
and would benefit all PortAudio-based applications on systems with PulseAudio
operational.

Option 2. Would require substantial input from PulseAudio developers, probably
in conjunction with someone who understands how the Ubuntu sound stack is
supposed to work. Would probably only benefit Ubuntu in the main, and may
involve quite invasive changes to alsa-lib, which I would imagine won't go
upstream.

Neither is going to get done by me (I don't run PulseAudio, or indeed Gnome,
and have many higher priorities), and as the supply of other Linux developers
round here is rather thin, don't hold out too much hope for anyone else from
Audacity picking it up.