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 <er...@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 <ro...@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@lists.ubuntu.com <mailto:ubuntu-studio-devel@lists.ubuntu.com> Modify settings or unsubscribe at: <https://lists.ubuntu.com/mailman/listinfo/ubuntu-studio-devel>

-- 
ubuntu-studio-devel mailing list
ubuntu-studio-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-studio-devel

Reply via email to