ABCDE(1) ABCDE(1)
NAME
abcde - Grab an entire CD and compress it to Ogg/Vorbis, MP3, FLAC or
Ogg/Speex format.
SYNOPSIS
abcde [options] [tracks]
DESCRIPTION
Ordinarily, the process of grabbing the data off a CD and encoding(3,n) it,
then tagging or commenting it, is very involved. abcde is designed to
automate this. It will take an entire CD and convert it into a com-
pressed audio format - Ogg/Vorbis, MPEG Audio Layer III, Free Lossless
Audio Codec (FLAC) or Ogg/Speex. With one command, it will:
* Do a CDDB query over the Internet to look(1,8,3 Search::Dict) up your CD or use a
locally stored CDDB entry
* Grab a track from your CD
* Compress it to Ogg/Vorbis, MP3, FLAC and/or Ogg/Speex format
* Comment or ID3 tag it
* Give it an intelligible filename
* Delete the intermediate WAV file(1,n) (or save it for later use)
* Repeat until finished
OPTIONS
-1 Encode the whole CD in(1,8) a single file. The resulting file(1,n) uses
the CD title for tagging.
-a [actions]
Comma-delimited list of actions to perform. Can be one or more
of: cddb, read(2,n,1 builtins), normalize, encode, tag, move(3x,7,3x curs_move), playlist, clean.
Normalize and encode imply read. Tag implies cddb, read(2,n,1 builtins), encode.
Move implies cddb, read(2,n,1 builtins), encode, tag. Playlist implies cddb. The
default is to do all actions except normalize and playlist.
-b Enable batch mode normalization. See the BATCH configuration
variable.
-c [filename]
Specifies an additional configuration file(1,n) to parse. Configura-
tion options in(1,8) this file(1,n) override those in(1,8) /etc/abcde.conf or
$HOME/.abcde.conf.
-C [discid]
Allows you to resume a session for discid when you no longer
have the CD available (abcde will automatically resume if(3,n) you
still have the CD in(1,8) the drive). You must have already finished
at least the "read(2,n,1 builtins)" action during the previous session.
-d [devicename]
CD-ROM block device that contains audio tracks to be read.
-D Capture debugging information (you'll want to redirect this -
try 'abcde -D 2>logfile')
-j [number]
Start [number] encoder processes at once. Useful for SMP sys-
tems. Overrides the MAXPROCS configuration variable. Set it to
"0" when using distmp3 to avoid local encoding(3,n) processes.
-k Keep the wav files after encoding.
-l Use the low-diskspace algorithm. See the LOWDISK configuration
variable.
-L Use a local CDDB repository. See CDDBLOCALDIR variable.
-n Do not query CDDB database. Create and use a template. Edit the
template to provide song names, artist(s), ...
-N Non interactive mode. Do not ask anything from the user. Just go
ahead.
-m Create DOS-style playlists, modifying the resulting one by
adding CRLF line endings. Some hardware players insist on having
those to work.
-o [filetype]
Select output type. Can be "ogg", "mp3", "flac" or "spx". Spec-
ify a comma-delimited list of output types to obtain all speci-
fied types. See the OUTPUTTYPE configuration variable.
-p Pads track numbers with 0s.
-r [hosts...]
Remote encode on this comma-delimited list of machines using
distmp3. See the REMOTEHOSTS configuration variable.
-S [speed]
Set the speed of the CD drive. Needs CDSPEED and CDSPEEDOPTS set(7,n,1 builtins)
properly and both the program and device must support the capa-
bility.
-v Show the version(1,3,5) and exit(3,n,1 builtins)
-V Be a bit more verbose. On slow networks the CDDB requests might
give the sensation nothins is happening.
-x Eject the CD when all tracks have been read. See the EJECTCD
configuration variable.
-h Get help information.
[tracks]
A list of tracks you want abcde to process. If this isn't speci-
fied, abcde will process the entire CD. Accepts ranges of track
numbers - "abcde 1-5 7 9" will process tracks 1, 2, 3, 4, 5, 7,
and 9.
OUTPUT
Each track is, by default, placed in(1,8) a separate file(1,n) named(5,8) after the
track in(1,8) a subdirectory named(5,8) after the artist under the current direc-
tory. Each file(1,n) is given an extension identifying its compression for-
mat, '.ogg', .mp3', '.flac', or '.spx'. This can be modified using
the OUTPUTFORMAT and VAOUTPUTFORMAT variables in(1,8) your abcde.conf.
CONFIGURATION
abcde sources two configuration files on startup - /etc/abcde.conf and
$HOME/.abcde.conf, in(1,8) that order.
The configuration variables have to be set(7,n,1 builtins) as follows:
VARIABLE=value
Except when "value" needs to be quoted or otherwise interpreted. If
other
variables within "value" are to be expanded upon reading the
configuration file(1,n), then double quotes should be used. If they
are only supposed to be expanded upon use (for example OUTPUT-
FORMAT) then single quotes must be used.
All sh escaping/quoting rules apply.
Here is a list of options abcde recognizes:
CDDBURL
Specifies a server to use for CDDB lookups.
OGGENCODERSYNTAX
Specifies the style of encoder to use for the Ogg/Vorbis
encoder. Valid options are oggenc (default for Ogg/Vorbis) and
vorbize. This affects the default location of the binary, the
variable to pick encoder command-line options from, and where
the options are given.
MP3ENCODERSYNTAX
Specifies the style of encoder to use for the MP3 encoder. Valid
options are lame (default for MP3), gogo, bladeenc,
l3enc and mp3enc. Affects the same way as explained above
for Ogg/Vorbis.
FLACENCODERSYNTAX
Specifies the style of encoder to use for the FLAC encoder. At
this point only flac is available for FLAC encoding.
SPEEXENCODERSYNTAX
Specifies the style of encoder to use for Speex encoder. At this
point only speexenc is available for Ogg/Speex encoding.
NORMALIZERSYNTAX
Specifies the style of normalizer to use. Valid options are
default and normalize' (and both run normalize), since we
only support it, ATM.
HELLOINFO
Specifies the Hello information to send(2,n) to the CDDB server. The
CDDB protocol requires you to send(2,n) a valid username and hostname
each time(1,2,n) you connect. The format of this is username@hostname.
CDDBLOCALDIR
Specifies a directory where we store a local CDDB repository.
The entries must be standard CDDB entries, with the filename
being the DISCID value. Other CD playing and ripping programs
(like Grip) store the entries under ~/.cddb and we can make use
of those entries.
CDDBCOPYLOCAL
Store local copies of the CDDB entries under the $CDDBLOCALDIR
directory.
CDDBUSELOCAL
Actually use the stored copies of the CDDB entries. Can be over-
riden using the "-L" flag (if(3,n) is CDDBUSELOCAL in(1,8) "n"). If an
entry is found, we always give the choice of retrieving a CDDB
entry from the internet.
OUTPUTDIR
Specifies the directory to place completed tracks/playlists in.
WAVOUTPUTDIR
Specifies the temporary directory to store .wav files in. Abcde
may use up to 700MB of temporary space for each session
(although it is rare to use over 100MB for a machine that can
encode music as fast as it can read(2,n,1 builtins) it).
OUTPUTFORMAT
Specifies the format for completed Ogg/Vorbis, MP3, FLAC or
Ogg/Speex filenames. Variables are included using standard
shell syntax. Allowed variables are GENRE, ALBUMFILE, ARTIST-
FILE, TRACKFILE, and TRACKNUM. Default is ${ARTIST-
FILE}/${TRACKFILE}.${OUTPUTTYPE}. Make sure to use single
quotes around this variable. TRACKNUM is automatically zero-
padded.
OUTPUTTYPE
Specifies the encoding(3,n) format to output, as well as the default
extension and encoder. Defaults to "ogg". Valid settings are
"ogg" (Ogg/Vorbis), "mp3" (MPEG-1 Audio Layer 3), "flac" (Free
Lossless Audio Codec) and "spx" (Ogg/Speex). Values like
"ogg,mp3" encode the tracks in(1,8) both Ogg/Vorbis and MP3 formats.
For each value in(1,8) OUTPUTTYPE, abcde expands a different process for
encoding(3,n), tagging and moving, so you can use the format placeholder,
OUTPUT, to create different subdirectories to hold the different types.
The variable OUTPUT will be 'ogg', 'mp3', 'flac' and/or 'spx', depend-
ing on the OUTPUTTYPE you define. For example
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}/${ALBUMFILE}/${TRACK-
NUM}._${TRACKFILE}'
VAOUTPUTFORMAT
Just like OUTPUTFORMAT but for Various Artists discs. Default is
whatever OUTPUTFORMAT is set(7,n,1 builtins) to.
PATHNAMES
The following configuration file(1,n) options specify the pathnames
of their respective utilities: LAME, GOGO, BLADEENC, L3ENC,
XINGMP3ENC, MP3ENC, VORBIZE, OGGENC, FLAC, SPEECENC, ID3, ID3V2,
CDPARANOIA, CDDA2WAV, HTTPGET, CDDISCID, CDDBTOOL, EJECT, NOR-
MALIZE, DISTMP3, VORBISCOMMENT, and CDSPEED.
COMMAND-LINE OPTIONS
If you wish to specify command-line options to any of the pro-
grams abcde uses, set(7,n,1 builtins) the following configuration file(1,n) options:
LAMEOPTS, GOGOOPTS, BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS,
MP3ENCOPTS, VORBIZEOPTS, OGGENCOPTS, FLACOPTS, SPEEXOPTS,
ID3OPTS, ID3V2OPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, HTTPGETOPTS,
CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS, NORMALIZEOPTS,
CDSPEEDOPTS, and CDSPEEDVALUE.
CDROM If set(7,n,1 builtins), it points to the CD-Rom device which has to be used for
audio extraction. Abcde tries to guess the right device, but it
may fail.
MAXPROCS
Defines how many encoders to run at once. This makes for huge
speedups on SMP systems. You should run one encoder per CPU at
once for maximum efficiency, although more doesn't hurt very
much. Set it "0" when using mp3dist to avoid getting encoding(3,n)
processes in(1,8) the local host.
LOWDISK
If set(7,n,1 builtins) to y, conserves disk space by encoding(3,n) tracks immediately
after reading them. This is substantially slower than normal
operation but requires several hundred MB less(1,3) space to complete
the encoding(3,n) of an entire CD. Use only if(3,n) your system is low on
space and cannot encode as quickly as it can read.
BATCH If set(7,n,1 builtins) to y, enables batch mode normalization, which preserves
relative volume differences between tracks of an album. Also
enables nogap encoding(3,n) when using the lame encoder.
KEEPWAVS
It defaults to no, so if(3,n) you want to keep those wavs ripped from
your CD, set(7,n,1 builtins) it to "y". You can use the "-k" switch(1,n) in(1,8) the com-
mand line. The default behaviour with KEEPWAVS set(7,n,1 builtins) is the keep
the temporary directory and the wav files even you have
requested the "clean" action.
PADTRACKS
If set(7,n,1 builtins) to "y", it adds 0's to the file(1,n) numbers to complete a
two-number holder. Usefull when encoding(3,n) tracks 1-9.
PLAYLISTFORMAT
Specifies the format for completed playlist filenames. Works
like the OUTPUTFORMAT configuration variable. Default is
${ARTISTFILE}_-_${ALBUMFILE}.m3u. Make sure to use single
quotes around this variable.
PLAYLISTDATAPREFIX
Specifies a prefix for filenames within a playlist. Useful for
http playlists, etc.
COMMENT
Specifies a comment to embed in(1,8) the ID3 or Ogg comment field of
each finished track. Can be up to 28 characters long. Supports
the same syntax as OUTPUTFORMAT. Does not currently support
ID3v2.
REMOTEHOSTS
Specifies a comma-delimited list of systems to use for remote
encoding(3,n) using distmp3. Equivalent to -r.
mungefilename
mungefilename() is an abcde shell function that can be overrid-
den via abcde.conf. It takes CDDB data as $1 and outputs the
resulting filename on stdout. It defaults to eating control
characters, apostrophes and question marks, translating spaces
and forward slashes to underscores, and translating colons to an
underscore and a hyphen.
If you modify this function, it is probably a good idea to keep
the forward slash munging (UNIX cannot store a file(1,n) with a '/'
char in(1,8) it) as well as the control character munging (NULs can't
be in(1,8) a filename either, and newlines and such in(1,8) filenames are
typically not desirable).
EJECTCD
If set(7,n,1 builtins) to "y", abcde will call eject(1) to eject the cdrom from
the drive after all tracks have been read.
BACKEND TOOLS
abcde requires the following backend tools to work:
* An Ogg/Vorbis, MP3, FLAC or Ogg/Speex encoder (oggenc, vorbize,
lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc)
* An audio CD reading utility (cdparanoia, cdda2wav, dagrab)
* cd-discid, a CDDB DiscID reading program.
* An HTTP retrieval program: wget, fetch (FreeBSD) or curl (Mac OS
X, among others).
* (for MP3s) id3 or id3v2, id3 v1 and v2 tagging programs.
* (optional) distmp3, a client/server for distributed mp3 encod-
ing.
* (optional) normalize, a WAV file(1,n) volume normalizer.
SEE ALSO
cdparanoia(1), cdda2wav(1), dagrab(1), normalize(1), oggenc(1), vor-
bize(1), flac(1), speexenc(1), id3(1), wget(1), fetch(1), cd-discid(1),
distmp3(1), distmp3host(1), curl(1)
AUTHOR
Robert Woodcock <rcw@debian.org> Jesus Climent <jesus.climent@hispal-
inux.es>
ABCDE(1)