Skip to the content.

43. Audio Utilities


This chapter contains programs involved with audio file manipulation; that is to say playing, recording, ripping and the other common things which people want to do. It also includes a package used to render text to speech using your system’s audio hardware. To use much of this software, you will need to have the kernel sound drivers installed.

43.1 Audacious-4.2


Introduction to Audacious

Audacious is an audio player.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

Required Plugins

Audacious Dependencies

Required

GTK+-2.24.33 or Qt-5.15.8 (or both), libxml2-2.10.3 (plugins), Xorg build environment (plugins), and a graphical environment (runtime)

ALSA-1.2.7 and dbus-1.14.6, also gnome-icon-theme-3.12.0 (runtime)

Optional

libarchive-3.6.2 and Valgrind-3.20.0

mpg123-1.31.2 and neon-0.32.5 (for online mpg3 and ogg radio)

Optional (for Plugins)

cURL-7.88.1, FAAD2-2.10.1, FFmpeg-5.1.2, FLAC-1.4.2, LAME-3.100, libcdio-2.1.0 (to identify and play CDs), libnotify-0.8.1, libsamplerate-0.2.2, libsndfile-1.2.0, libvorbis-1.3.7, PulseAudio-16.1, SDL-1.2.15, ampache-browser, adplug, The Bauer stereophonic-to-binaural DSP (bs2b) library, FluidSynth, JACK (requires libsamplerate-0.2.2), libcue, libmodplug, libmms, libopenmpt, libsidplayfp, LIRC, sndio, SoX, and WavPack

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/audacious

Installation of Audacious

Installation of the Main Audacious Program

Install Audacious by running the following commands (you may wish to change the stamp to another string):

TPUT=/bin/true ./configure --prefix=/usr \
                           --with-buildstamp="BLFS" &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Installation of Audacious Plugins

Install the required plugins package by issuing the following commands:

tar -xf ../audacious-plugins-4.2.tar.bz2                &&
cd audacious-plugins-4.2                                &&
TPUT=/bin/true ./configure --prefix=/usr --disable-wavpack &&
make

Now, as the root user:

make install

Note

This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Command Explanations

TPUT=/bin/true: the default is for make to output text in color. This is fine if you are building in a terminal, but if you script the build process and pipe the output from make to a log file then the control characters used to color the text can make the logfile unreadable. This option prevents make from coloring the text.

--with-buildstamp: This switch appends the given text to the version string.

--disable-wavpack: This switch is required unless the optional WavPack package is installed.

--enable-gtk: Use this to enable GTK+ support.

--disable-qt: Use this to disable qt support.

--disable-mp3: Use this for the plugins if you have not installed mpg123 and do not wish to play mp3 files.

--enable-valgrind: Allow better Valgrind leak checks.

--disable-neon: Use this for the plugins if you have not installed neon, and do not want to use HTTP/HTTPS transport.

Configuring Audacious

If you prefer the old, smaller Winamp/XMMS interface, click on View> Interface> Winamp Classic Interface.

If you built with both Gtk and Qt user interfaces, the Qt version can be executed from a terminal, issuing audacious –qt. If you wish a desktop menu entry to execute this Qt version, issue the following commands as the root user:

cp -v /usr/share/applications/audacious{,-qt}.desktop &&

sed -e '/^Name/ s/$/ Qt/' \
    -e '/Exec=/ s/audacious/& --qt/' \
    -i /usr/share/applications/audacious-qt.desktop

Contents

Installed Programs: audacious and audtool

Installed Libraries: libaudcore.so, libaudgui.so, libaudqt.so, libaudtag.so, and several plugin libraries under /usr/lib/audacious/ sub-directories

Installed Directories: /usr/include/{audacious,libaudcore,libaudgui,libaudqt}, /usr/lib/audacious and /usr/share/audacious

Short Descriptions

audacious is a Qt port of XMMS based on the Beep Media Player.

audtool is a small tool to modify the behavior of a running audacious instance.

43.2 CDParanoia-III-10.2


Introduction to CDParanoia

The CDParanoia package contains a CD audio extraction tool. This is useful for extracting .wav files from audio CDs. A CDDA capable CDROM drive is needed. Practically all drives supported by Linux can be used.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/cdparanoia

Installation of CDParanoia

Note

This package does not support parallel build.

Install CDParanoia by running the following commands:

patch -Np1 -i ../cdparanoia-III-10.2-gcc_fixes-1.patch &&
./configure --prefix=/usr --mandir=/usr/share/man &&
make -j1

This package does not come with a test suite.

Now, as the root user:

make install &&
chmod -v 755 /usr/lib/libcdda_*.so.0.10.2 &&
rm -fv /usr/lib/libcdda_*.a

Contents

Installed Program: cdparanoia

Installed Libraries: libcdda_interface.so and libcdda_paranoia.so

Installed Directories: None

Short Descriptions

cdparanoia is used for ‘ripping’ an audio-cd. Ripping is the process of digitally extracting music from an audio CD.

libcdda_interface contains functions used by cdparanoia, as well as other packages, which can automatically identify if a CD device is CDDA compatible.

libcdda_paranoia contains functions used by cdparanoia, as well as other packages, which provide data verification, synchronization, error handling and scratch reconstruction capability.

43.3 kwave-22.12.2


Introduction to KWave

The KWave package contains a KF5 based Sound Editor application.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

KWave Dependencies

Required

AudioFile-0.3.6, fftw-3.3.10, id3lib-3.8.3, and KDE Frameworks-5.103.0

alsa-lib-1.2.8, FLAC-1.4.2, libogg-1.3.5, and PulseAudio-16.1

Optional

Doxygen-1.9.6

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/kwave

Installation of KWave

Install KWave by running the following commands:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-dev .. &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Programs: kwave

Installed Libraries: libkwave.so, libkwavegui.so, and 29 plugins

Installed Directories: $KF5_PREFIX/lib/plugins/kwave, $KF5_PREFIX/share/kwave, $KF5_PREFIX/share/doc/HTML/*/kwave

Short Descriptions

kwave is a sound editor built on the KDE Frameworks 5.

43.4 LAME-3.100


Introduction to LAME

The LAME package contains an MP3 encoder and optionally, an MP3 frame analyzer. This is useful for creating and analyzing compressed audio files.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

LAME Dependencies

Optional

Dmalloc, Electric Fence, libsndfile-1.2.0 and NASM-2.16.01

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lame

Installation of LAME

Install LAME by running the following commands:

./configure --prefix=/usr --enable-mp3rtp --disable-static &&
make

To test the results, issue: make test.

Now, as the root user:

make pkghtmldir=/usr/share/doc/lame-3.100 install

Command Explanations

--enable-mp3rtp: This switch enables building the encode-to-RTP program.

--disable-static: This switch prevents installation of static versions of the libraries.

--enable-nasm: Enable the use of NASM-2.16.01 to compile optimized assembly routines for 32-bit x86. This option has no effect on x86_64.

Contents

Installed Programs: lame and mp3rtp

Installed Library: libmp3lame.so

Installed Directories: /usr/include/lame and /usr/share/doc/lame-3.100

Short Descriptions

lame creates MP3 audio files from raw PCM or .wav data.

mp3rtp is used to encode MP3 with RTP streaming of the output.

libmp3lame.so libraries provide the functions necessary to convert raw PCM and WAV files to MP3 files.

43.5 mpg123-1.31.2


Introduction to mpg123

The mpg123 package contains a console-based MP3 player. It claims to be the fastest MP3 decoder for Unix.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

mpg123 Dependencies

alsa-lib-1.2.8

Optional

PulseAudio-16.1, SDL-1.2.15, JACK, OpenAL and PortAudio

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mpg123

Installation of mpg123

Install mpg123 by running the following commands:

./configure --prefix=/usr &&
make

To test the results, issue: make check.

Now, as the root user:

make install

Contents

Installed Programs: mpg123, mpg123-id3dump, mpg123-strip, and out123

Installed Libraries: libmpg123.so, libout123.so, and libsyn123.so

Installed Directory: /usr/lib/mpg123

Short Descriptions

mpg123 is used for playing MP3 files via the console.

mpg123-id3dump is a tool to dump ID3 meta data from MPEG audio files using libmpg123.

mpg123-strip extracts only MPEG frames from a stream using libmpg123 (stdin to stdout).

out123 plays raw PCM audio to an output device.

libmpg123.so contains the mpg123 API functions.

libout123.so contains the out123 API functions.

libsyn123.so contains some audio signal synthesis and format conversion functions.

43.6 pavucontrol-5.0


Introduction to pavucontrol

PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool (“mixer”) for the PulseAudio sound server. In contrast to classic mixer tools, this one allows you to control both the volume of hardware devices and of each playback stream separately.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

pavucontrol Dependencies

Required

Gtkmm-3.24.7, JSON-GLib-1.6.6, libcanberra-0.30, libsigc++-2.12.0, and PulseAudio-16.1

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pavucontrol

Installation of pavucontrol

Install pavucontrol by running the following commands:

./configure --prefix=/usr --docdir=/usr/share/doc/pavucontrol-5.0 &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Program: pavucontrol

Installed Libraries: None

Installed Directory: /usr/share/pavucontrol and /usr/share/doc/pavucontrol-5.0

Short Descriptions

pavucontrol is a GUI configuration tool for sound settings using pulsaudio.

43.7 pnmixer-0.7.2


Introduction to Pnmixer

The Pnmixer package provides a lightweight volume control with a tray icon.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Pnmixer Dependencies

Required

alsa-utils-1.2.8, GTK+-3.24.36, and libnotify-0.8.1

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pnmixer

Installation of Pnmixer

Install Pnmixer by running the following commands:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr ..  &&
make

This package does not have a test suite.

Now, as the root user:

make install

Contents

Installed Program: pnmixer

Installed Libraries: None

Installed Directories: /usr/share/pnmixer

Short Descriptions

pnmixer is a lightweight volume control that sits in a tray.

43.8 vorbis-tools-1.4.2


Introduction to Vorbis Tools

The Vorbis Tools package contains command-line tools useful for encoding, playing or editing files using the Ogg CODEC.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Vorbis Tools Dependencies

Required

libvorbis-1.3.7

Optional (required to build the ogg123 program)

libao-1.2.0

Optional

cURL-7.88.1, FLAC-1.4.2, Speex-1.2.1, and libkate

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/vorbistools

Installation of Vorbis Tools

Install Vorbis Tools by running the following commands:

./configure --prefix=/usr \
            --enable-vcut \
            --without-curl &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--enable-vcut: This parameter is used so that the vcut program is built as it is not by default.

--without-curl: This parameter disables HTTP streaming in ogg123. Remove this parameter if you have cURL installed.

Configuring Vorbis Tools

Config Files

/etc/libao.conf, ~/.libao and ~/.ogg123rc

Configuration Information

Issue man libao.conf for information about setting the default output device. Also see /usr/share/doc/vorbis-tools-1.4.2/ogg123rc-example .

Contents

Installed Programs: ogg123, oggdec, oggenc, ogginfo, vcut and vorbiscomment

Installed Libraries: None

Installed Directory: /usr/share/doc/vorbis-tools-1.4.2

Short Descriptions

ogg123 is a command-line audio player for Ogg Vorbis streams.

oggdec is a simple decoder which converts Ogg Vorbis files into PCM audio files (WAV or raw).

oggenc is an encoder that turns raw, WAV or AIFF files into an Ogg Vorbis stream.

ogginfo prints information stored in an audio file.

vcut splits a file into two files at a designated cut point.

vorbiscomment is an editor that changes information in the audio file metadata tags.