Sometimes you want to run jackd like a real server so it is simply always there. Fiddling with starting up apps is a terrible thing to be doing when you should be playing music and your friends are waiting for your dumb fancy linux noise toy. If it starts automatically, it goes a long way to creating the impression of a serious machine.
Jack comes with dbus by default, which is a great thing when you are running a desktop. When you are not, it is a pain in the (insert body part of choice here).
Ubuntu 14.04 does not come with a dbus-less version of jackd, so you need to compile it yourself. It's not hard.
# Prerequisites sudo -s apt-get install build-essential libsamplerate-dev libasound-dev libsndfile-dev git # Get source cd /usr/local/src git clone git://github.com/jackaudio/jack2.git cd jack2 # version from distro may prevent surprises git checkout v1.9.10 # add --firewire if you use it ./waf configure --alsa --prefix=/usr/local --libdir=/usr/lib/x86_64-linux-gnu ./waf ./waf install
You can still install the normal jackd package to satisfy dependencies. If you run
jackd from the command line, it will take precedence because it is in
/usr/local/bin. Just make sure to run
/usr/local/bin/jackd in startup scripts and other places where you need to provide the full path.
Ubuntu uses upstart to start things on startup in 14.04. This may need to be converted to a systemd job later, but not until the fall of 2016 if you are sticking to LTS point releases.
Place the following in
start on runlevel  stop on runlevel  limit memlock unlimited unlimited limit rtprio 95 95 setuid carlo setgid audio exec /usr/local/bin/jackd -R -dalsa -dhw:PCH -r48000 -p512 -n3
jackd settings to what is best for your setup.
Note that jackd considers itself more or less single-user, so enter the user you will be using it with. It may be possible to use it with different users, so if you come up with a use case you need that for, go ahead, but this guide is not tested with it.
You might want to run other services that depend on jackd. Here we will use the multicore version of the supercollider sound server, supernova. supernova needs realtime priority, so we keep the limit settings. Other daemons may not need that. The key is to use
start on jackd, so that upstart handles depending daemons.
description "Supernova supercollider audio daemon" start on jackd stop on runlevel  limit memlock unlimited unlimited limit rtprio 95 95 setuid carlo setgid audio exec /usr/bin/supernova -S48000 -u57110