Converting Audio and Ripping CDs
During ripping raw audio is typically recorded into .wav format, which is then converted to ogg, flac or some other desired format. Most applications for ripping do both processes in one go. The choice of appropriate software tools depend on the format of input audio (typically CD or direct audio streams).
An understanding of the differences between lossless and lossy formats, open and patent-encumbered formats, bitrates and tags will be most helpful for getting the most out of the listed applications. Always prefer free and open source multimedia formats like Ogg and flac over other patent-encumbered formats like mp3, wmp and rm.
CLI applications for converting audio/video or ripping are not tied to particular desktops in general. Related GUI applications may require particular toolkit related libraries or may be tied to specific desktop environments in a stronger way.
Users need to be more careful with the license terms of some of the available CLI tools. In particular, the CDDL is not a genuine free and open source license. For more information see this article.
cdrkit is a collection of programs for CD and DVD authoring. It was initiated by the Debian project, as a fork of cdrtools. cdrkit is released under the GNU GPL Version2. Fedora ships all of cdrkit in its releases.
It includes wodim, icedax, genisoimage, growisofs and others. WODIM (an acronym for write optical disk media) was forked from the cdrecord program in cdrtools. ICEDAX (an acronym for incredible digital audio extractor) was forked from the cdda2wav program in cdrtools, while GENISOIMAGE (short for generate ISO image) was forked from the mkisofs program in cdrtools.
Fedora does not include cdrtools (under the CDDL license) in its repositories.
SoX is a CLI utility for conversion, editing, normalization, playing and recoding of audio content. SoX can support any audio format through a suitable 'libsox-fmt-base'. For example support for Ogg Vorbis is provided by libsox-fmt-ogg. It supports ALSA, LibAO, OSS and other sound architectures too.
The SoX processing chain takes the form :
Input(s) Balancing Combiner Effects Output
See this in the following examples:
# sox recital.au recital.wav
# sox recital.au -r 12000 -1 -c 1 recital.wav vol 0.7 dither
changes the audio sampling rate, sample size, down-mixes to mono, and applies the vol and dither effects.
# sox -r 8000 -u -1 -c 1 voice-memo.raw voice-memo.wav
adds a header to a raw audio file,
# sox slow.aiff fixed.aiff speed 1.027 rabbit -c0
adjusts audio speed using the most accurate rabbit algorithm,
# sox short.au long.au longer.au
concatenates two audio files
cdparanoia is an audio CD ripper. It reads audio CDs and rips the tracks to WAV files.You can select only certain tracks to rip (with the 'span' option), or rip from a given time to another or pass other options. cdparanoia retrieves audio tracks from CDDA-capable CDROM drives (settings are auto-detected). The data can be saved to a file or directed to STDO in WAV, AIFF, AIFF-C or raw format. cdparanoia adds extra-robust data verification, synchronization, error handling and scratch reconstruction capability.
Simple Usage:(adapted from the man pages)
To rip a whole audio CD into audio files:
# cdparanoia -B
Query only with exhaustive search for a drive and full reporting of 'autosense':
# cdparanoia -vsQ
Extract from track 1, time 0:3.12 to 0:10.00:
# cdparanoia "1[0:3.12]-1[0:10]"
It is the same as
Extract from the beginning of the disc to track 3:
#cdparanoia -- -3
The "--" above is to distinguish "-3" from an option flag. You need to be careful about this!
ICEDAX stands for InCrEdible Digital Audio eXtractor. It can retrieve audio tracks (CDDA) from all modern CDROM/DVDROM drives and convert them to WAV files. It can also read parts of an audio CD or multimedia CDROM (containing audio parts) directly (digitally) into desired targets (files, a pipe, or to a sound device).
OGGENC is the official ogg encoder from Xiph.org. It is included in the vorbis-tools package. oggenc can encode from FLAC, WAV or raw audio to Ogg Vorbis. Common options like target bitrate, quality, minimum and maximum bitrates and others can be passed. Example:
# oggenc -b 256 audio_file.flac.
FLAC (Free Lossless Audio Codec) is a lossless audio format with exceptional compression. The tool flac encodes and decodes FLAC files and can also convert WAV (Waveform Audio Format) to FLAC. flac takes many command line options, including those for compression level, tags, analysis, sampling rate, quality, plots and more.
# flac -d audio_file.wav
# flac -d --best audio_file.wav (severe compression)
Avidemux is useful for simple WYSIWG video editing involving cutting, filtering and encoding. But can also be used for converting audio with no overhead. The default install in Fedora supports plenty of non-patent encumbered free formats including ffmpeg, ogg-vorbis and xvid. It can be extended with a wide variety of codecs to support other formats. It is easy to perform conversion from one format to another and also edit subtitles.
It is basically a CLI program with optional Qt/GTK interfaces and therefore supports a wide set of command-line options. See the manual (#man avidemux) for details.
Custom scripts can be created for future use through its scripting engine. It is done this way (adapted from the man pages):
* Start avidemux and open a video/audio file. * Configure your own encoding settings. * Save the settings as 'project' from the 'File' menu with extension ".js". * Quit avidemux. * Open the project file in a simple editor and delete useless lines. * You need the first line "//AD" and the line "app = new AvideÃ¢ mux()" * and the encoding settings beginning with "app.video.codec(...)". * Save this script file with suffix ".js" in the user directory "~/.avidemux/custom". This custom script can be used again from the menu item "Custom".
Task automation can also be accomplished through job queueing.
Jack is one command for ripping and encoding CDs. Importantly it does NOT depend on ALSA or OSS. It performs auto checks on all of of its operations. So attempts to rectify incomplete rips is part of the default behaviour.
For installation in Fedora, install 'jack-audio-connection-kit'.
Apart from its configurability and support for different rippers and encoders, it has the following features:
- it doesn't need X - it does not depend on ALSA or OSS - it can "rip" virtual CD images like the ones created by cdrdao - when using cdparanoia, cdparanoia's status information is displayed and archived for all tracks, so you can see if something went wrong - it schedules its ripping/encoding processes depending on available space. - freedb query, submissions, file renaming and tags are supported. - it can resume work after interruption. - it can do a freedb query based on OGGs alone. - allows many audio applications to be connected to an audio device
To edit,normalize, strip WAV files before encoding:
# jack -O -D --remove-files ; gnoise *wav ; jack -g *wav ; jack
See #man jack for other possible commands.
The tools jack.plumbing, .play, .udp, .ctl, .scope, and .clock make use of the low latency audio API JACK
The basic idea of volume normalization is to 'normalize' variations in the overall sound level. You can end up with such variations while encoding live audio or by recording from old disks. 'wavnorm' and 'SOX' are useful utilities for the purpose.
One very easy way to rip a CD is direct from the file manager (Konqueror or Dolphin). We describe the procedure with respect to Konqueror.
* Insert the CD * Open a Konqueror window and go to audiocd:/ * Open either the Ogg or Mp3 folder and copy the files as usual.
Tracks can be easily copied to a portable player by this method. You can open an audio CD and player in separate windows and just drag the files across.
Codec, Bitrate, Quality and stereo settings can be found in the Control Center. One disadvantage is that you can not directly specify the encoder (other than mp3/ogg) or the command line arguments.
This neat trick is done using kioslaves.
SoundKonvertor is a frontend to various command-line audio converters. It is easy to use the GUI. But you will need to set the output directory, formats and desired quality at least. SoundKonvertor can be:
* Controlled with greater ease * Extended with plugins and backends like lame, ffmpeg, oggenc, flac, musepack, mplayer, shorten, oggdec, flake, ape, ttaenc, bonk, faad, aften, OptimFROG, lac, LPAC, wavpack, speex, timidity, vorbisgain, cdda2wav and others.
It is possible to convert between formats like ogg, mp3, m4a, mp2, wma, rm, aiff, avi, flac, flv and others. Tags (read and write), Replay Gain, CD ripping and Calculation are also supported.
KStreamRipper is a small frontend for the 'streamripper' command line utility. KStreamRipper helps you with managing/ripping your preferred streams.
Sound Juicer is an application in GNOME for rippping audio CDs into audio files on your hard disk. The default file format is Ogg Vorbis. While ripping from a commercially produced CD, Sound Juicer displays the music track names by downloading the information from the CDDB database from the Internet. The Sound Juicer Manual is available within the application under the menu entry Help > Contents.
It is the GNOME front-end to avidemux (see the CLI section above).
GNUsound (GNOME U sound editor) is a multitrack sound editor for GNOME. It can read and write many audio formats such as OGG, WAV, MP3, FLAC and more through its modular system of file format drivers and can also extract the audio from video formats like MPG, WMV and AVI through the FFmpeg file format driver. You will need to use third-party rpm-repositories for patented formats. In Fedora, it can use either ALSA or JACK for recording and playback. It interfaces with the GLADSPA plugin system to provide a wide range of high-quality audio processing plugins including filters, compressors and delay effects. The GUI is well developed and suitable for many advanced audio processing tasks.
GNUsound uses your RAM to store sound files and avoids the 'disk-based approach'. So you will need lots of RAM for smooth and fast operations. It is not suitable for light-weight systems.
See http://www.gnu.org/software/gnusound for more information.
OTHER DESKTOP ENVIRONMENTS
Most if not all of the other desktop environments do not provide any level of integration with ripping or sound conversion applications. But any of the above mentioned GUI applications can be freely installed into them with minimal overhead.
jRipper is a Java-based CD ripper and audio converter. It can encode and decode WAV, FLAC, MP3, Ogg, and AAC(M4A) formats. It is also usable as a frontend to cdda2wav, flac, oggenc, oggdec, faac, faad and lame. It can load CD track names from freedb.org or by using the cdda2wav program.
You can run jripper in Fedora without actual installation. Simply put the file jripper.jar in a directory (say /abc), open a konsole in the directory and type
java -jar jripper.jar
K3B can be used for ripping from audio CDs, VCDs and DVDs.
You can install K3b with 'packagekit' or 'yum' in case it is not installed.
- Start k3b from Menu
- From the K3b 'Settings' menu, select the menu item 'Configure k3b'
- Configure the CDDB Server (if you need it)
- Insert an audio CD/DVD into your CD/DVD drive.
- From the K3b 'Tools' menu, select the item 'Rip Audio CD'
- [Optional Step] K3b tries to fetch CDDB information for the CD from the internet. Select the best entry in case of multiple entries.
- The contents of the audio CD should now be listed in the main window. Right-click on a song (it doesn't matter which one) and select Start Ripping.
- A new window comes up with the settings of the extraction.
- Under Filetype, you can select the desired OGG/FLAC format.
- Then click on the Open file dialog icon below Target Folder to select a directory for the ripped songs (if the default directory isn't suitable).
That is it!