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

Firmware.

First off, fuck you Debian, for not including this firmware anywhere anymore. You've been getting more and more hostile toward HDSP users for years and this just makes me wonder what you're going to do next to make life harder for us.

I would not be surprised in the least if, in a near-future release of Debian, they decide to just not ship any binary firmware for anything anywhere ever.

Fuck you, fuck you, fuck you.

  • git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
  • cd linux-firmware
  • sudo make install
  • wget ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.9.tar.bz2
  • cd alsa-firmware-1.0.9
  • ./configure –prefix=/usr –libdir=/usr/lib/x86_64-linux-gnu
  • make
  • sudo make install

This installs firmware in /usr/share/alsa/firmware. I don't understand how people can be this brain-damaged and still remember how to push things up to github.

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

A thread-safe fftw3

TODO

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.

qjackctl

  • git clone git://git.code.sf.net/p/qjackctl/code qjackctl
  • cd qjackctl
  • autoreconf
  • ./configure --enable-jack-version --enable-qt4
  • make
  • sudo make install
  • cd ..

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

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

  • 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

CALF Plugin Suite

Calf has, at some point in the last 9 months, made their plugin suite work with newer versions of GCC, and they've either made qt5 work, or are forcing qt4, I'm not sure which.

Keep in mind their DSP may not work as advertised. I haven't done complete testing, but the 30-band EQ definitely generates completely wrong frequency responses. No, I haven't tried to fix it; no, I haven't opened a case upstream.

  • sudo apt-get -y install libgconf2-dev sfftw-dev libfftw3-dev

Now you can check out and build the CALF plugins:

  • git clone https://github.com/calf-studio-gear/calf.git calf
  • cd calf
  • ./autogen.sh
  • ./configure --enable-experimental --enable-sse
  • make
  • sudo make install

Then sudo make install will complete successfully.

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

Then check out and build Ardour:

  • git clone git://git.ardour.org/ardour/ardour.git ardour3
  • cd ardour3
  • ./waf configure --optimize
  • ./waf
  • sudo ./waf install
nndocs/lad.txt · Last modified: 2018/06/12 03:27 by austin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki