Linux Audio: A Guide For Beginner and Beyond/Appendix-List of Dependencies and Compiling Tips

This is a list of many of the widely used software packages. Mainly provided for those who compile their own packages, it lists required packages and various notes on compiling, although other users may find this information useful as well.

Some General Troubleshooting Tips

  • As with compiling and installing any software, running configure and make as a non-root user is recommended.
  • A number of libraries rely on pkg-config, so check to make sure your PKG_CONFIG_PATH contains the right path to dependencies.

Advanced Linux Sound Architecture (ALSA) edit

alsa-driver edit

alsa-lib edit

alsa-utils edit

Ardour edit

Dependencies edit

  • Boost C++ libraries
  • fftw3 (without --enable-float)
  • gtk2 (confirm this package name)
  • scons

Optional:

  • fftw3 (with --enable-float)
    • (Note to self: Confirm this)
  • (Note to self: Double check dependencies needed for VST support)

Compiling Tips edit

Notes:

  • The boost and gtk2 libraries are included in most sane linux distributions, so there is little chance you will need to worry about these. At most, it will involve installing a -devel package or two.
  • The non float-enabled fftw3 is required for Ardour's internal libsndfile library.
  • (The optional float-enabled fftw3f is required for the optional FFT analysis window feature.)

Audacity edit

Dependencies edit

Compiling Notes edit

DSSI edit

Dependencies edit

Compiling Notes edit

fftw3 edit

The Fastest Fourier in the West

A very well optimized FFT library used in a lot of packages for performing DSP routines. *NOTE* There is a version 2 of the library as well, which is incompatible with version 3.

Dependencies edit

  • None

Compiling Tips edit

Flags:

  • --enable-shared - disabled by default, this enables the shared library to be built, which is required by most software
  • --enable-single - same as --enable-float
  • --enable-float - this forces the library to be built with single-precision floating point numbers, and the library names beginning with fftw3 will begin with fftw3f.

Notes:

Some software require the fftw3 version of the library, and some require the fftw3f version. This may be confusing to users who are compiling this for the first time. If another software fails to detect this library, double check which version you have installed. Since a lot of software documentation does not specify which, it may be a good idea just to install both from the start and avoid confusion later.

FFAD (formerly FreeBoB) edit

Free Firewire Audio Drivers

Formerly the FreeBob project (for support of BridgeCo. BeBoB devices). A backend end driver for use with firewire audio interfaces.

Dependencies edit

  • libraw1394
  • libavc1394 (requires libraw1394)
  • libiec61883 (requires libraw1394)

Compiling Tips edit

FLAC edit

Dependencies edit

Optional:

  • libogg

Compiling Tips edit

This software should compile with little issue.

Note for those wishing to run the test suite, it takes a VERY long time. As a comparison, on 2.4GHz dual core system with 2GB of RAM, compiling the library takes less than a minute, but the test suite takes about 45 minutes.

jack-audio-connection-kit edit

The JACK Audio Connection Kit

Dependencies edit

  • FFAD (for IEEE1394 device support)

Compiling Tips edit

Flags:

  • --enable-dynsimd - Enables SIMD instructions, such as SSE. HIGHLY recommended for any user using a Pentium II or later compiler.
  • --with-default-tmpdir - Sets the default path for a shared memory directory.

Notes:

  • A note on using SSE, even though the configure script will add the -sse flag, SSE and above support will not be enabled. A way to check this, if you run the jackd server, it will explicitly output SSE, SSE2, or Enhanced3DNow! detected if found. Since a good deal of JACK is SSE optimized, your best bet is to just enable it from the start. The worst thing that could happen is an illegal instruction error if your processor does not support it, in which case you can disable it.
  • If the --with-default-tmpdir flag is not set, JACK will use /tmp, which is not present or not set as shared memory in some distributions. The JACK documentation recommends creating and entry in /etc/fstab for it, but for recent kernels and distributions, it may be simpler to set this to existing shared memory, such as /dev/shm.
    • Note: Some pre-compiled versions already set this for you. So, if you are upgrading from a previous version of JACK, make sure everything including the installation goes in the same place. The JACK developers advise against having more than one version installed to avoid possible breakage and general confusion.

JAMin edit

Dependencies edit

  • fftw3 (with --enable-float)

Compiling Tips edit

LADSPA edit

The Linux Audio Developer's Simple Plugin API

Dependencies edit

None

Compiling Tips edit

Installation requires not compiling at all, just copying src/ladspa.h from the source tree into your /usr/include directory.

Compiling the sample plugins is completely optional.

liblo edit

Dependencies edit

  • None

Compiling Tips edit

You should have little trouble compiling this package.

  • Note: While out of the scope of this book, liblo can use IPv6, which has been known to be rather unstable on some older systems. This shouldn't be a problem on any recent kernel or distribution.

liblrdf edit

An XML Library

Dependencies edit

  • Raptor

Compiling Tips edit

You should have little trouble compiling this package.

libsamplerate edit

Dependencies edit

  • fftw3 (without --enable-float)

Compiling Tips edit

libsndfile edit

Dependencies edit

Optional:

  • FLAC (version 1.1.2 - see below)

Compiling Tips edit

Notes:

The current version of libsndfile requires version 1.1.2 of FLAC. A note to those who like to use the most recent versions of software, libsndfile will NOT compile with FLAC versions 1.1.3, 1.1.4 or later! This is due to the FLAC library changing the names of some key functions in the stream encoder. While designed to be easier to use, libsndfile has not been updated to use these new functions yet.

Rosegarden edit

Dependencies edit

  • CMake
  • QT3

Optional:

  • LIRC

Compiling Notes edit