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-driverEdit

alsa-libEdit

alsa-utilsEdit

ArdourEdit

DependenciesEdit

  • 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 TipsEdit

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.)

AudacityEdit

DependenciesEdit

Compiling NotesEdit

DSSIEdit

DependenciesEdit

Compiling NotesEdit

fftw3Edit

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.

DependenciesEdit

  • None

Compiling TipsEdit

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.

DependenciesEdit

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

Compiling TipsEdit

FLACEdit

DependenciesEdit

Optional:

  • libogg

Compiling TipsEdit

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-kitEdit

The JACK Audio Connection Kit

DependenciesEdit

  • FFAD (for IEEE1394 device support)

Compiling TipsEdit

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.

JAMinEdit

DependenciesEdit

  • fftw3 (with --enable-float)

Compiling TipsEdit

LADSPAEdit

The Linux Audio Developer's Simple Plugin API

DependenciesEdit

None

Compiling TipsEdit

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.

libloEdit

DependenciesEdit

  • None

Compiling TipsEdit

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.

liblrdfEdit

An XML Library

DependenciesEdit

  • Raptor

Compiling TipsEdit

You should have little trouble compiling this package.

libsamplerateEdit

DependenciesEdit

  • fftw3 (without --enable-float)

Compiling TipsEdit

libsndfileEdit

DependenciesEdit

Optional:

  • FLAC (version 1.1.2 - see below)

Compiling TipsEdit

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.

RosegardenEdit

DependenciesEdit

  • CMake
  • QT3

Optional:

  • LIRC

Compiling NotesEdit

Last modified on 13 July 2009, at 13:55