User Tools

Site Tools


nndocs:lad

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nndocs:lad [2020/02/07 22:59] – [A thread-safe fftw3] never gonna do naptasticnndocs:lad [2022/03/30 00:43] (current) – [jackd] restore missing git clone naptastic
Line 1: Line 1:
 ===== First, you must create the universe... ===== ===== First, you must create the universe... =====
-I use this guide in its current form on Debian Sid.+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. Start with the essentials.
  
-  * ''sudo apt-get -y install ncurses-dev build-essential automake cmake subversion git libogg-dev alsa-tools alsa-tools-gui rtirq-init''+  * ''sudo apt -y install ncurses-dev build-essential automake cmake subversion git libogg-dev alsa-tools alsa-tools-gui rtirq-init''
  
-Recent (hah) changes: +==== Development headers we're going to need ====
- +
-  * ''rtirq-init'' used to be listed here, but with BFS-patched kernels, I don't think it's necessary anymore +
- +
- +
-===== Opus ===== +
- +
-There's an [[http://xiph.org/press/2013/Opus_1.1/|Opus 1.1]] now. I haven't tried it. +
- +
-  * ''<nowiki>wget http://downloads.xiph.org/releases/opus/opus-1.0.1.tar.gz</nowiki>'' +
-  * ''tar -xvf opus-1.0.1.tar.gz'' +
-  * ''cd opus-1.0.1'' +
-  * ''<nowiki>./configure --enable-custom-modes</nowiki>'' +
-  * ''make'' +
-  * ''sudo make install''+
  
 +  * ''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 ===== ===== JACK =====
- 
-**ALWAYS ALWAYS ALWAYS CONFIGURE JACK WITH prefix=/usr** 
- 
-**ONLY INSTALL ONE JACK AT A TIME** 
- 
-**UPDATING WITHOUT REMOVING FIRST IS OK** 
- 
-**NEVER EVER OVERWRITE JACKD1 WITH JACKD2 OR VICE-VERSA** 
  
 == Install the build dependencies: == == Install the build dependencies: ==
  
-  * ''sudo apt-get -y install libasound2-dev libsamplerate0-dev libsndfile1-dev libreadline6-dev libncurses5-dev qt4-dev-tools libtool libdb-dev''+  * ''sudo apt-get -y install libasound2-dev libsamplerate0-dev libsndfile1-dev libreadline6-dev libncurses5-dev libtool libdb-dev''
  
 +==== opus with custom modes ====
  
-==== Only Install JACK1 or JACK2not both!! ====+This is necessary for Netjack to get compiled. Since removing Debian's version of libopus causes half the system to attempt seppukuwe 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**.
  
-I recommend checking out both jack1 and jack2, so if you decide you need to switch, it isn't a big dealBut always remember you have to uninstall one before you install the other.+Go download opus from xiph.org and 
 +  * ''git clone <nowiki>git@github.com:xiph/opus.git</nowiki>'' 
 +  * ''cd opus'' 
 +  * ''./autogen.sh'' 
 +  * ''./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --enable-custom-modes'' 
 +  * ...you know the rest...
  
-  * ''<nowiki>git clone git://github.com/jackaudio/jack2.git jackd2</nowiki>'' +==== jackd ====
-  * ''<nowiki>git clone git://github.com/jackaudio/jack1.git jackd1</nowiki>'' +
-  * ''cd jack1'' +
-  * ''git submodule init'' +
-  * ''git submodule update''+
  
-Decide whether you want jack1 or jack2. Refer first to [[http://trac.jackaudio.org/wiki/Q_differenc_jack1_jack2]]. It'also a good idea to read the rest of the [[http://jackaudio.org/jack12n|JACK faq]]. Personally, I recommend Jack2 unless you plan to do audio work for more than 6 hours continually. +Like libopus, we will be overwriting Debian'jack-related files with our own.
- +
-For jackd1: +
- +
-  * ''cd jackd1'' +
-  * ''./autogen.sh'' +
-  * ''<nowiki>./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu</nowiki>'' +
-  * ''make'' +
-  * ''sudo make install'' +
- +
-For jackd2:+
  
 (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.) (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 <nowiki>git@github.com:jackaudio/jack2.git</nowiki>''
   * ''cd jackd2''   * ''cd jackd2''
   * ''<nowiki>./waf configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --alsa</nowiki>''   * ''<nowiki>./waf configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --alsa</nowiki>''
   * ''./waf''   * ''./waf''
   * ''sudo ./waf install''   * ''sudo ./waf install''
- 
-In case it wasn't clear enough before, **only follow one of the above sets of instructions.** But now that we're all hunky-dory, we can get on with qjackctl. 
  
 ==== qjackctl ==== ==== qjackctl ====
Line 73: Line 42:
   * ''<nowiki>git clone git://git.code.sf.net/p/qjackctl/code qjackctl</nowiki>''   * ''<nowiki>git clone git://git.code.sf.net/p/qjackctl/code qjackctl</nowiki>''
   * ''cd qjackctl''   * ''cd qjackctl''
-  * ''autoreconf'' +  * ''cmake -DCONFIG_QT6=0''
-  * ''<nowiki>./configure --enable-jack-version --enable-qt4</nowiki>''+
   * ''make''   * ''make''
   * ''sudo make install''   * ''sudo make install''
   * ''cd ..''   * ''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 ==== ==== 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.) 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.)
Line 89: Line 70:
   * ''sudo adduser [username] audio''   * ''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. +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.
- +
-===== LV2 components ===== +
-Install dependencies: +
- +
-  * ''sudo apt-get -y install graphviz-dev libglib2.0-dev libgtk2.0-dev libgtkmm-2.4-dev libgnomecanvas2-dev libdbus-1-dev libdbus-glib-1-dev libgnomecanvasmm-2.6-dev libboost-all-dev libusb-1.0-0-dev libsoup2.4-dev liblo-dev glib2.0-dev libgtkmm-2.4-dev libglibmm-2.4-dev libgnomecanvasmm-2.6-dev libflowcanvas-dev libsoup2.4-dev libdbus-glib-1-dev'' +
-  * ''<nowiki>git clone http://lv2plug.in/git/lv2.git</nowiki>'' +
-  * ''cd lv2'' +
-  * ''./waf configure'' +
-  * (The "experimental" flag that was necessary is no longer so.) +
-  * ''./waf'' +
-  * ''sudo ./waf install'' +
- +
-Then build Dave Robillard's repository, which has some necessary utilities and useful items: +
- +
-  * ''<nowiki>svn co http://svn.drobilla.net/lad/trunk drobilla</nowiki>'' +
-  * ''cd drobilla'' +
-  * ''./waf configure'' +
-  * ''./waf'' +
-  * ''sudo ./waf install'' +
-===== LV2 Plugins ===== +
-There are LOTS and LOTS of LV2 plugins, usable as synths, processors, mixers, routers, and so on. I'm compiling instructions for as many of them as I can; many simply won't work right now, and many I can't get to yet because, for crap's sake, I have a day job! But here are all the main ones I use. +
- +
-==== ir.lv2 ==== +
- +
-This plugin depends on zita-convolver and fftw3f. You will have to build zita-convolver yourself. +
- +
-  * ''sudo apt-get -y install libfftw3-dev'' +
-  * ''<nowiki>wget http://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-convolver-3.1.0.tar.bz2</nowiki>'' +
-  * ''tar -xvf zita-convolver-3.1.0.tar.bz2'' +
-  * ''cd zita-convolver-3.1.0/libs/'' +
-  * ''make'' +
-  * ''sudo make install'' +
- +
-Zita really does not like putting libraries where they belong. +
- +
-  * ''sudo ln -s /usr/local/lib64/libzita-convolver.so /usr/lib/libzita-convolver.so.3'' +
- +
-=== How the hell did you figure that out? === +
-On a different system, YMMV. In order to figure out what symlink I needed to add, I ran this: +
- +
-  * ''strace jalv <nowiki>http://factorial.hu/plugins/lv2/ir</nowiki> 2>&1 | grep libzita-convolver'' +
- +
-This produces about 1,000 pages of output; you only need the last 2 or three. What you'll see is a bunch of failed attempts to find the relevant library: +
- +
-  open("/lib/tls/x86_64/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/lib/tls/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/lib/x86_64/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/lib/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/usr/lib/tls/x86_64/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/usr/lib/tls/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/usr/lib/x86_64/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
-  open("/usr/lib/libzita-convolver.so.3", O_RDONLY) = -1 ENOENT (No such file or directory) +
- +
-Any of the locations listed in this output will do. I picked /usr/lib because it seemed the least nasty. Strictly speaking, it should go in /usr/local/lib someplace but you can see it's not getting looked for there, so that's not an option. +
- +
-==== Back to the show ==== +
- +
-With that bit of unpleasantness out of the way, you can install the other dependencies, download ir.lv2 and compile and install it: +
- +
-  * ''<nowiki>wget http://factorial.hu/system/files/ir.lv2-1.3.2.tar.gz</nowiki>'' +
-  * ''tar -xvf ir.lv2-1.3.2.tar.gz'' +
-  * ''cd ir.lv2-1.3.2/'' +
-  * ''make'' +
-  * ''sudo make install'' +
- +
-==== EQ10Q ==== +
-For a long time, this plugin was unmaintained, and finally became impossible to build on modern distributions. I was very sad, as this is an excellent and exceptionally powerful plugin, for one thing, as an active crossover for your sound system. +
- +
-  * ''<nowiki>svn co svn://svn.code.sf.net/p/eq10q/code/trunk eq10q</nowiki>'' +
-  * ''cd eq10q'' +
-  * ''cmake ./'' +
- +
-This last time I built it, it looked for some headers in the wrong place. Hack around: +
- +
-  * sudo ln -s /usr/lib/x86_64-linux-gnu/gtkmm-2.4/include/gtkmmconfig.h /usr/include/x86_64-linux-gnu/ +
-  * sudo ln -s /usr/lib/x86_64-linux-gnu/gdkmm-2.4/include/gdkmmconfig.h /usr/include/x86_64-linux-gnu/ +
-  * sudo ln -s /usr/lib/x86_64-linux-gnu/pangomm-1.4/include/pangommconfig.h /usr/lib/x86_64-linux-gnu/ +
-  * sudo ln -s /usr/lib/x86_64-linux-gnu/pangomm-1.4/include/pangommconfig.h /usr/include/x86_64-linux-gnu/ +
- +
-Continue: +
- +
-  * ''make'' +
-  * ''sudo make install'' +
- +
-==== Talentedhack ==== +
-This is fun; automatic pitch correction. IMO, the latency is too high for live performance. +
- +
-The tarball contains a directory that isn't the same name as the tarball, grr. +
- +
-There's no configure stage. +
- +
-''make install'' doesn't, or at least didn't in my case. I had to copy the files by hand; no big deal though. +
- +
-  * ''<nowiki>wget http://talentledhack.googlecode.com/files/talentedhack1.85_source.tar.gz</nowiki>'' +
-  * ''tar -xvf talentedhack1.85_source.tar.gz'' +
-  * ''make'' +
-  * ''cd ../'' +
-  * ''sudo cp -a talentedhack.lv2 /usr/local/lib/lv2'' +
- +
-==== Vee One Suite ==== +
-I've removed Vee One from this page because they're still hosted on Sourceforge. If they move to a non-evil host, I'll put them back, because their stuff really is useful. But wading through Sourceforge's crap is not worth it. +
-===== Fluidsynth ===== +
- +
-As of Debian Stretch, it's just not worth it to me to figure out why fluidsynth does such a shitty job of installing itself, so I'm relying on the distribution-provided packages. +
- +
-  * ''sudo apt-get -y install libtool a2jmidid fluidsynth libfluidsynth-dev'' +
-==== Qsynth ==== +
- +
-  * ''<nowiki>git clone http://git.code.sf.net/p/qsynth/code qsynth-git</nowiki>'' +
-  * ''cd qsynth-git'' +
-  * ''autoreconf'' +
-  * ''./configure'' +
-  * ''make'' +
-  * ''sudo make install'' +
- +
-==== Swami ==== +
- +
-  * ''sudo apt-get -y install intltool librsvg2-dev libinstpatch-dev libglade2-dev'' +
-  * ''<nowiki>git clone  https://git.code.sf.net/p/swami/code swami-code</nowiki>'' +
-  * ''cd swami/swami'' +
-  * ''./autogen.sh'' +
-  * ''./configure'' +
-  * ''make'' +
-  * ''sudo make install'' +
  
 ===== Ardour ===== ===== Ardour =====
Line 220: Line 76:
 Fetch the packaged dependencies: 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''+  * ''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: Then check out and build Ardour:
nndocs/lad.1581116387.txt.gz · Last modified: 2020/02/07 22:59 by naptastic