===== First, you must create the universe... ===== I use this guide in its current form on Debian Bookworm. The host needs to be provisioned "[[nndocs:initial|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''