Libraries Needed to Compile Ecasound from Source
Compiling Ecasound from source requires specific dynamic link libraries to enable its multitrack audio processing, hardware routing, and diverse audio format handling capabilities. While the core build relies on essential C++ runtime and terminal control libraries, enabling full functionality depends on dynamic libraries provided by audio servers, hardware interfaces, and audio codec packages. This guide identifies the required and optional dynamic link libraries necessary to compile Ecasound successfully on a Unix-like system.
Core System and Interface Libraries
To compile the fundamental Ecasound binaries and its interactive command-line interface, your linker requires:
- Standard C/C++ Libraries (
libc.so,libstdc++.so,libm.so,libpthread.so): Mandatory for basic execution, mathematical operations, and multithreading. - GNU Readline (
libreadline.so): Required for line editing, history, and autocompletion features in the interactiveecasoundconsole. - NCurses (
libncurses.soorlibtinfo.so): Typically required as a dependency by GNU Readline for terminal handling.
Audio Server and Hardware Dynamic Libraries
Ecasound interacts directly with system sound architectures through dynamically linked drivers:
- ALSA (
libasound.so): The Advanced Linux Sound Architecture library is essential for direct communication with Linux sound cards and MIDI hardware. - JACK Audio Connection Kit
(
libjack.so): Required to compile the JACK I/O subsystem, allowing low-latency inter-application audio routing.
File Format and Sampling Libraries
To read, write, and process standard uncompressed audio and perform sample-rate conversions, Ecasound relies on:
- libsndfile (
libsndfile.so): The primary library used for decoding and encoding standard uncompressed audio formats like WAV, AIFF, and AU. - libsamplerate (
libsamplerate.so): Required for high-quality audio sample rate conversion during playback and recording. - Audiofile (
libaudiofile.so): An alternative or complementary library for reading and writing various silicon graphics and AIFF formats.
Audio Codec Libraries
For compressed audio input and output streams, the compiler will dynamically link against specific codec implementations if present:
- Ogg Vorbis (
libogg.so,libvorbis.so,libvorbisenc.so): Required for encoding and decoding Ogg Vorbis audio streams. - FLAC (
libFLAC.so): Provides dynamic support for reading and writing Free Lossless Audio Codec files. - MAD (
libmad.so): An MPEG audio decoder library required for playing MP3 streams. - LAME (
libmp3lame.so): Required if you want Ecasound to natively encode audio to MP3 format.
Extension and Language Binding Libraries
If you configure Ecasound to include external plugins and scripting integration, the following libraries are dynamically linked:
- Python (
libpython*.so): Required when building Python language bindings for Ecasound control. - LADSPA and Lilv (
liblilv*.so): Dynamic libraries necessary if enabling certain LV2 or dynamic LADSPA plugin host extensions.
To satisfy these link dependencies during compilation, ensure the
development packages (often suffixed with -dev on
Debian/Ubuntu or -devel on Fedora/RHEL) corresponding to
these shared objects are installed before running the
./configure script.