[ubuntu-studio-devel] Ubuntu Studio on Gnome (23.04)

Erich Eickmeyer erich at ericheickmeyer.com
Sun Jul 9 18:53:34 UTC 2023


Hi Ross,

I was following-up on this and what the implications are for Mantic an 
the future. Where the problem lies is that we have no implementation 
for a JACK-PipeWire bridge in the same way that we have a 
JACK-PulseAudio bridge, hence when using JACK proper (as opposed to the 
PipeWire emulation that is now the default), we need to remove PipeWire 
and install PulseAudio. However, it appears as though GNOME development 
has gone toward depending on PipeWire for the sound server and 
deprecating PulseAudio altogether, which is why we're finding ourselves 
in this situation.

However, as I read the PipeWire release notes, it might be unnecessary 
to use PulseAudio altogether and we might be able to deprecate it as 
well. Ubuntu 23.04 contains PipeWire 0.3.65. PipeWire 0.3.71 was 
released on 17 May and contains the following notable highlight:

> A new zero-latency jackdbus bridge was added. This works similar to 
> what PulseAudio has to offer and creates a sink/source when jackdbus 
> is started. It is however much more efficient and runs the complete 
> PipeWire graph as a synchronous JACK client with no added latency.

How this works, I'm not quite certain. I'm assuming that, if jackdbus 
is started, that PipeWire simply bridges itself. What's nice is the 
zero-latency bit since we know that PulseAudio adds quite a bit of 
latency.

Another highlight in that release is notable as well:

> The JACK notify callback implementation was reworked to emulate 
> better what JACK does, improving compatibility with ardour7 and the 
> JACK stress test.

This was one of Robin's major concerns. With that, it seems as though 
PipeWire is making great strides toward the Pro Audio space.

Then, a week ago, PipeWire 0.3.72 was released with this notable 
highlights:

> A new module-netjack2-driver and module-netjack2-manager were added 
> that are compatible with NETJACK2. This allows PipeWire to become a 
> NETJACK2 manager or a driver between JACK2 or PipeWire 
> servers.Support was added for firewire devices with FFADO. This is 
> untested for now and MIDI is not implemented yet.

I know these were items that Len was looking for, so it would be good 
to see these implemented somehow. Len is out until mid-July so once 
he's back I'd love to see some feedback or ideas on this.

For Mantic, I have taken the pieces that switch between the PipeWire 
config an the PulseAudio/JACK config and moved them to their own 
application (called Ubuntu Studio Audio Config). It also allows one to 
configure the PIPEWIRE_QUANTUM variable that sets the buffer and sample 
rate at boot, which currently defaults at 1024/48000 for the greatest 
compatibility. However, if we deprecate PulseAudio, then having the 
metapackages change the configuration would be moot because then all 
that would have to be done is adding/removing a symlink, running 
ldconfig, and a reboot in order to use JACK proper and having it bridge 
to PipeWire. That might take me doing some experimentation.

Anyhow, this is what I'm thinking Mantic (23.10) since, if it works, it 
would improve compatibility across all platforms and we wouldn't have 
to worry about the adding/removing of whole packages in order to avoid 
major conflicts like we are having to do in 23.04.
--
Erich Eickmeyer
Project Leader - Ubuntu Studio
Technical Lead - Edubuntu

On Sun, Jul 9 2023 at 08:22:13 AM -07:00:00, Erich Eickmeyer 
<erich at ericheickmeyer.com> wrote:
> Hi Ross!
> 
> I see what's going on. They made pipewire-audio a hard Depends of 
> ubuntu-desktop. pipewire-audio itself is a metapackage which has a 
> hard Depends on pipewire-alsa. ubuntu-desktop having a hard Depends 
> on pipewire-audio seems wrong. Unfortunately, I have no good fix for 
> that.
> 
> However, it does seem as though it's not removing anything critical, 
> so that's the good news, just the ubuntu-desktop metapackage. 
> However, I do wonder why they made pipewire-audio a hard Depends as 
> opposed to a Recommends.
> 
> Either way, what you have should still work. It looks scarier than it 
> is, but it's still working exactly the way I designed it to work.
> --
> Erich Eickmeyer
> Project Leader - Ubuntu Studio
> Technical Lead - Edubuntu
> 
> On Sun, Jul 9 2023 at 10:53:37 AM +02:00:00, Ross Gammon 
> <rosco at ubuntustudio.org> wrote:
>> Hi All,
>> 
>> As you may remember, one of my machines runs plain Ubuntu, has a 
>> spare USB Audio device plugged in, and I have been testing Ubuntu 
>> Studio on top of Gnome (ubuntustudio-installer did this for me 
>> several releases ago).
>> 
>> Last night I upgraded to 23.04 and as expected, saw that Studio 
>> Controls was removed. Running ubuntustudio-installer to install 
>> ubuntustudio-pulseaudio-config failed. To try and understand what 
>> might have gone wrong, I tried to install us-pulse*-config on the 
>> command line. It (apt) was going to remove ubuntu-desktop which I 
>> thought was a bad idea and said "no":
>> 
>> ~$ sudo apt install ubuntustudio-pulseaudio-config
>> ...
>> Reading package lists... Done
>> Building dependency tree... Done
>> Reading state information... Done
>> The following packages were automatically installed and are no 
>> longer required:
>>   libwireplumber-0.4-0 qpwgraph
>> Use 'sudo apt autoremove' to remove them.
>> The following additional packages will be installed:
>>   libasound2-plugins libpulsedsp pavucontrol pipewire-media-session 
>> pulseaudio
>>   pulseaudio-module-bluetooth pulseaudio-module-jack pulseaudio-utils
>>   python3-alsaaudio python3-cffi python3-jack-client 
>> python3-pycparser
>>   studio-controls zita-njbridge
>> Suggested packages:
>>   pavumeter paprefs
>> The following packages will be REMOVED:
>>   pipewire-alsa pipewire-audio pipewire-jack pipewire-pulse 
>> ubuntu-desktop
>>   ubuntu-desktop-minimal ubuntustudio-pipewire-config wireplumber
>> The following NEW packages will be installed:
>>   libasound2-plugins libpulsedsp pavucontrol pipewire-media-session 
>> pulseaudio
>>   pulseaudio-module-bluetooth pulseaudio-module-jack pulseaudio-utils
>>   python3-alsaaudio python3-cffi python3-jack-client 
>> python3-pycparser
>>   studio-controls ubuntustudio-pulseaudio-config zita-njbridge
>> 0 upgraded, 15 newly installed, 8 to remove and 0 not upgraded.
>> Need to get 142 kB/1,906 kB of archives.
>> After this operation, 8,530 kB of additional disk space will be used.
>> Do you want to continue? [Y/n]
>> 
>> I have not looked into the dependencies to see if there is a way to 
>> untangle this. Instead, I was wondering if it was worth playing with 
>> the pipewire setup. It is a test setup after all! Does anyone know 
>> of any good guidance on the workflows in this set up? What would I 
>> use to help all of the routing between pipewire, jack, and how to 
>> use Ardour/Hydrogen/Carla etc.?
>> 
>> From the packages listed for removal above, I assume that 
>> wireplumber in the answer?
>> 
>> I did see some discussion on LAD, but I was hoping for some blog 
>> with easy instructions, screenshots etc. :-)
>> 
>> Cheers,
>> 
>> Ross
>> 
>> --
>> ubuntu-studio-devel mailing list
>> ubuntu-studio-devel at lists.ubuntu.com 
>> <mailto:ubuntu-studio-devel at lists.ubuntu.com>
>> Modify settings or unsubscribe at: 
>> <https://lists.ubuntu.com/mailman/listinfo/ubuntu-studio-devel>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-studio-devel/attachments/20230709/4a01f225/attachment-0001.html>


More information about the ubuntu-studio-devel mailing list