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
-
Download (HTTP): https://distfiles.audacious-media-player.org/audacious-4.2.tar.bz2
-
Download MD5 sum: 3f76597aa1d2ea1501a93456b46d870f
-
Download size: 600 KB
-
Estimated disk space required: 72 MB (with Qt user interface)
-
Estimated build time: 0.8 SBU (with Qt user interface)
Additional Downloads
Required Plugins
-
Download (HTTP): https://distfiles.audacious-media-player.org/audacious-plugins-4.2.tar.bz2
-
Download MD5 sum: 029d1ee500e8941812ddbf65b23988c8
-
Download size: 1.9 MB
-
Estimated disk space required: 171 MB (with Qt user interface)
-
Estimated build time: 1.8 SBU (with Qt user interface)
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)
Recommended
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
Recommended (for Plugins)
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
-
Download (HTTP): https://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz
-
Download MD5 sum: b304bbe8ab63373924a744eac9ebc652
-
Download size: 179 KB
-
Estimated disk space required: 2.9 MB
-
Estimated build time: less than 0.1 SBU
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/cdparanoia-III-10.2-gcc_fixes-1.patch
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
-
Download (HTTP): https://download.kde.org/stable/release-service/22.12.2/src/kwave-22.12.2.tar.xz
-
Download MD5 sum: 41e49171074c1e3497185ab97c2f233c
-
Download size: 6.6 MB
-
Estimated disk space required: 72 MB
-
Estimated build time: 0.8 SBU (using parallelism=4)
KWave Dependencies
Required
AudioFile-0.3.6, fftw-3.3.10, id3lib-3.8.3, and KDE Frameworks-5.103.0
Recommended
alsa-lib-1.2.8, FLAC-1.4.2, libogg-1.3.5, and PulseAudio-16.1
Optional
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
-
Download (HTTP): https://downloads.sourceforge.net/lame/lame-3.100.tar.gz
-
Download MD5 sum: 83e260acbe4389b54fe08e0bdbf7cddb
-
Download size: 1.5 MB
-
Estimated disk space required: 9.7 MB
-
Estimated build time: 0.1 SBU
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
-
Download (HTTP): https://downloads.sourceforge.net/mpg123/mpg123-1.31.2.tar.bz2
-
Download MD5 sum: 7aa9b41b70826fe8edd743202e488433
-
Download size: 1.0 MB
-
Estimated disk space required: 16 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
mpg123 Dependencies
Recommended
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
-
Download (HTTP): https://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-5.0.tar.xz
-
Download MD5 sum: a4a5dc51dcf4d912443faf3fe8d32b55
-
Download size: 192 KB
-
Estimated disk space required: 14 MB
-
Estimated build time: 0.3 SBU
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
-
Download (HTTP): https://github.com/nicklan/pnmixer/releases/download/v0.7.2/pnmixer-v0.7.2.tar.gz
-
Download MD5 sum: e9f17f56c50de39393030a96e343427b
-
Download size: 236 KB
-
Estimated disk space required: 2.5 MB
-
Estimated build time: less than 0.1 SBU
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
-
Download (HTTP): https://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.2.tar.gz
-
Download MD5 sum: 998fca293bd4e4bdc2b96fb70f952f4e
-
Download size: 1.3 MB
-
Estimated disk space required: 12 MB
-
Estimated build time: 0.1 SBU
Vorbis Tools Dependencies
Required
Optional (required to build the ogg123 program)
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.