No subject


Wed May 8 10:53:36 CEST 2013


Where jackd could be either jack1 or jack2.

This is something I'm beginning to see as somewhat of a problem in the
Linux audio community, and as the project lead of Ubuntu Studio, I'm
putting it as one my goals this year to see how we who package the
applications can influence the infrastructure of the audio systems for
the various Linux distros - in this case Debian and its derivatives. And
also how we can influence the upstream jack developers as well.

Not sure if pulseaudio can be used for low latency. Haven't ever heard
of anyone trying, but it is the standard sound system on most Linux
distros today. Supporting it seems like a good idea. Even if you might
not be able to get low latency.

Since I'm not much of a coder yet, I don't know very much about how
applications interact with jack. But, from a user point of view, I'd
prefer pd to autostart whatever jack is installed, preferably jackdbus
over jackd, for the simple reason that it offers more functionality.

= About pulseaudio and jack integration (for those who are interested)

pulseaudio and jack integration is getting much better. With the release
of pulseaudio 3.0 a bug was fixed, allowing jack to seemlessly grab a
pulseaudio reserved card. (This works for jack2 only - which as said
exists in two forms: jackd and jackdbus) 

If having installed the jackdbus detect module (which is a part of
pulseaudio source, but packaged separately), and you are running
jackdbus, the module automatically creates a jack sink and source for
pulseaudio, allowing the user to connect pulseaudio to jack.

So, if pd is set to start jackdbus by default, it would either just cut
audio from pulseaudio completely (if pulse is using the same card), or
with the module - more or less seemlessly connect pulseaudio to jack,
keeping desktop audio intact.

There are still some problems with the module.

It eats a lot of CPU.

One problem is channel configuration. It's configurable nowadays, and I
was able to make it default to 2 channels by default in the upstream
source, which makes it go easier on the CPU, and makes it easier to use
with multichannel cards (where the channel config might otherwise not
make sense). It's missing the feature of profiles that audio cards
otherwise have - stereo, 5.1, 7.1, etc.

Another problem, which is more about convenience, is that it doesn't
automatically set applications that are already streaming audio to use
the jack sink and source. You need to do that manually using a
pulseaudio mixer.

I would say integrating pulseaudio and jack is working fairly well, but
because you are dealing with two different audio systems, or three (if
including alsa), as well as there being variants of jack, it is not easy
to get an overview from the user point of view. There is no gui app that
controls all of them.

= My recommendation

My recommendation at this point would be to let pd use pulseaudio by
default (once it was supporting it). And if the user would set pd to use
jack, it should start jackdbus if exists. And if not, jackd.

In the Ubuntu Studio team, we're talking about creating a gui
application for controlling jack and the integration with pulseaudio in
a much less painful way. Currently, the gui controls that exist don't
really do that. I believe that would help smoothen some things out a
bit. 



More information about the Pd-dev mailing list