User Tools

Site Tools


nndocs:lad

This is an old revision of the document!


First, you must create the universe...

I use this guide in its current form on Debian Sid.

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

Recent (hah) changes:

  • rtirq-init used to be listed here, but with BFS-patched kernels, I don't think it's necessary anymore

Opus

There's an Opus 1.1 now. I haven't tried it.

  • wget http://downloads.xiph.org/releases/opus/opus-1.0.1.tar.gz
  • tar -xvf opus-1.0.1.tar.gz
  • cd opus-1.0.1
  • ./configure --enable-custom-modes
  • make
  • sudo make install

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:
  • sudo apt-get -y install libasound2-dev libsamplerate0-dev libsndfile1-dev libreadline6-dev libncurses5-dev qt4-dev-tools libtool libdb-dev

Only Install JACK1 or JACK2, not both!!

I recommend checking out both jack1 and jack2, so if you decide you need to switch, it isn't a big deal. But always remember you have to uninstall one before you install the other.

  • git clone git://github.com/jackaudio/jack2.git jackd2
  • git clone git://github.com/jackaudio/jack1.git jackd1
  • 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's also a good idea to read the rest of the JACK faq. Personally, I recommend Jack2 unless you plan to do audio work for more than 6 hours continually.

For jackd1:

  • cd jackd1
  • ./autogen.sh
  • ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
  • 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.)

  • cd jackd2
  • ./waf configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --alsa
  • ./waf
  • 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.

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.

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
  • git clone http://lv2plug.in/git/lv2.git
  • 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:

  • svn co http://svn.drobilla.net/lad/trunk drobilla
  • 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
  • wget http://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-convolver-3.1.0.tar.bz2
  • 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 http://factorial.hu/plugins/lv2/ir 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:

  • wget http://factorial.hu/system/files/ir.lv2-1.3.2.tar.gz
  • 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.

  • svn co svn://svn.code.sf.net/p/eq10q/code/trunk eq10q
  • 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.

  • wget http://talentledhack.googlecode.com/files/talentedhack1.85_source.tar.gz
  • tar -xvf talentedhack1.85_source.tar.gz
  • make
  • cd ../
  • sudo cp -a talentedhack.lv2 /usr/local/lib/lv2

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

  • git clone http://git.code.sf.net/p/qsynth/code qsynth-git
  • cd qsynth-git
  • autoreconf
  • ./configure
  • make
  • sudo make install

Swami

  • sudo apt-get -y install intltool librsvg2-dev libinstpatch-dev libglade2-dev
  • git clone https://git.code.sf.net/p/swami/code swami-code
  • cd swami/swami
  • ./autogen.sh
  • ./configure
  • make
  • sudo make install

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
nndocs/lad.1581211879.txt.gz · Last modified: 2020/02/09 01:31 by naptastic