https://help.ubuntu.com/community/Ubuntu%20Studio%20Upgrade%20from%20Ubuntu
$> apt-get install linux-lowlatency $> vim /etc/security/limits.d/audio.conf @audio - rtprio 99 @audio - memlock unlimited $> adduser mbfisher audio
Restart!
$> apt-get install libasound2-dev libsamplerate0-dev libsndfile-dev pgk-config $> git clone https://github.com/jackaudio/jack2.git $> ./waf configure --alsa $> [sudo] ./waf build $> [sudo] ./waf install $> [sudo] ldconfig
To find available hardware interfaces:
$> arecord -l **** List of CAPTURE Hardware Devices **** card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: US800 [US-800], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
The jackd
argument is then constructed as hw:$CARD[,$SUBDEVICE]
. My Tascam interface is referenced with hw:1
:
$> jackd -d alsa -d hw:1
Now you have the serve running it's time to connect a client to it.
JACK ships with a bunch of example code in example-clients/
; each provides a simple implementation of a basic principle. simple_client.c
is an excellent first step. JACK's documentation gives an example command to build a client however I think it's out of date due to changes in the default linking behaviour of gcc. The command that works for me is:
$> gcc example-clients/simple_client.c -o ~/jack-simple $( pkg-config --cflags --libs jack ) -lm
pkg-config
links the JACK library and -lm
links the math library required to use sin
.
$> apt-get install libqt4-dev $> wget http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.10.tar.gz $> ./configure $> make $> make install
$> apt-get install a2jmidid
http://www.joebutton.co.uk/fst/
Jump through Steinberg's hoops!
http://download.savannah.gnu.org/releases/lash/
$> apt-get install libxml2-dev uuid-dev