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