Table of Contents
First, you must create the universe...
I use this guide in its current form on Debian Bookworm. The host needs to be provisioned “The Naptastic Way” already.
Start with the essentials.
sudo apt -y install ncurses-dev build-essential automake cmake subversion git libogg-dev alsa-tools alsa-tools-gui rtirq-init
Development headers we're going to need
sudo apt -y install libcurl4-gnutls-dev libarchive-dev libfftw3-dev uuid-dev liblrdf-dev libaubio-dev libcppunit-dev liblrdf-dev libcwiid-dev libtag1-dev libtag-extras-dev vamp-plugin-sdk librubberband-dev libsratom-dev liblilv-dev
JACK
Install the build dependencies:
sudo apt-get -y install libasound2-dev libsamplerate0-dev libsndfile1-dev libreadline6-dev libncurses5-dev libtool libdb-dev
opus with custom modes
This is necessary for Netjack to get compiled. Since removing Debian's version of libopus causes half the system to attempt seppuku, we will overwrite it with our version. Keep in mind that, if Debian updates libopus (which happens with surprising frequency) then you have to do this again because Netjack (and possibly Jack) will be broken.
Go download opus from xiph.org and
git clone git@github.com:xiph/opus.git
cd opus
./autogen.sh
./configure –prefix=/usr –libdir=/usr/lib/x86_64-linux-gnu –enable-custom-modes
- …you know the rest…
jackd
Like libopus, we will be overwriting Debian's jack-related files with our own.
(By the way, these instructions assume you'll be using the ALSA backend driver. If you plan to use a firewire audio interface, you need to build ffado, which I really don't want to help with. But I still love you.)
git clone git@github.com:jackaudio/jack2.git
cd jackd2
./waf configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --alsa
./waf
sudo ./waf install
qjackctl
git clone git://git.code.sf.net/p/qjackctl/code qjackctl
cd qjackctl
cmake -DCONFIG_QT6=0
make
sudo make install
cd ..
Applications and plugins we install from Debian
sudo apt -y install ir.lv2 eq10q qsynth
Specifically request soundfonts be installed
sudo apt -y install fluid-soundfont-gm fluid-soundfont-gs musescore-general-soundfont-lossless opl3-soundfont
This is where we install our own soundfonts globally
rsync soundfonts from someplace to /usr/local/share/someplace
Give yourself access to Realtime Scheduling
Add these lines to /etc/security/limits.conf
: (Note: I've heard that some systems are using /etc/systemd/user.conf
instead. I've not encountered this yet.)
@audio - rtprio 99 @audio - nice -19 @audio - memlock unlimited
Then add yourself to the audio group:
sudo adduser [username] audio
So on my system, I did sudo adduser david audio
. Between the time you do this and the time you start using any of this software, you'll need to log completely out and back in.
Ardour
Fetch the packaged dependencies:
sudo apt-get -y install uuid-dev liblrdf-dev libaubio-dev libarchive-dev libcppunit-dev liblrdf-dev libcwiid-dev libtag1-dev libtag-extras-dev vamp-plugin-sdk librubberband-dev libarchive-dev liblilv-dev libsratom-dev libsord-dev libserd-dev lv2-dev libsamplerate0-dev libjack-jackd2-dev libasound2-dev
Then check out and build Ardour:
git clone git://git.ardour.org/ardour/ardour.git ardour
cd ardour
./waf configure --optimize
./waf
sudo ./waf install