On Mon, 2013-05-27 at 22:08 -0700, Jonathan Wilkes wrote:
Ok, quick restatement of the problem:
How does one get Pd to just run in GNU/Linux for casual/sporadic use cases? Like 1 fire up Pd to patch an idea with Firefox/music player/other stuff sitting in the background 2 audio from online tutorial while patching in Pd with audio 3 some dude screwing around in Ubuntu with it, learns enough to get interested in fairly low latency to process some guitar sounds, possibly live
Cases 1 and 2 could benefit from having a PulseAudio backend in Pd, but case 3 would still be a pain because at the point that the guitarist cares about latency he/she is back to screwing around with audio settings (either directly through ALSA or with JACK). (If I'm wrong and Pulse can cover use case 3 I'd like to hear about it, but from what I've read Pulse is not designed with realtime audio processing as a goal.)
So, I'm curious about this: http://trac.jackaudio.org/wiki/JackDbusPackaging
Specifically the "D-bus only JACK" route. _If_ it works reliably (and of course that's a big if) then it gives the best of both worlds: all cases 1,2, and 3 above are covered by the JACK server automatically starting and Pulse getting out of the way for it. Moreover, Pulse clients get routed to JACK with what I take are "sane" defaults. So, if you have Pd running through JACK with this setup and then you open up a youtube video in Firefox, Pulse will automagically make a connection to JACK for it and (I'm guessing) hook it up to the output.
Any thoughts on this?
I think I'm with IOhannes here. I feel pulseaudio and JACK come with separate promises. Besides providing quite a lot of solutions to many problems, pulseaudio's major goal is its ease of use, i.e. you don't necessarily need to be aware you're using it. JACK is about latency and connecting audio software and people who use it most likely know why they are using it. I think you can only optimize latency by manually trying to find the optimal parameters to JACK. Having too much "auto-magic" might be detrimental to what people expect it to do.
Personally, I'd appreciate if Pd would support pulseaudio. If Pd covers many backends, it is easy for package maintainers to package Pd with default suitable for the specific distro. In my opinion, it would be sane to let Pd default to pulseaudio in Ubuntu. In pure:dyne JACK would probably make more sense.
Actually, using JACK is already quite easy today, even in the pulseaudio using distros. When I start JACK from qjackctl, pulseaudio is immediately stopped and frees the device. So I don't see much room for improvement there.
Routing pulseaudio to JACK is already quite easy, but I wouldn't want it to happen automatically. Imagine during a performance I'd accidentally click on a link and Firefox would start to play some Youtube movie on my x channel setup. Another a smallish issue I experienced with pulse->Jack is that the volume keys of my laptop only control the master volume of pulse and thus do not control the actual device anymore.
Roman