Q. Who created abcde? Who develops it nowadays?
A. It was originally created by Robert Woodcook. He decided to give up
maintaining it at some point in 2002 and Jesus Climent took over. In 2012,
- Colin Tuckley and Steve McIntyre joined in to help. Contact
- jesus.climent@hispalinux.es, colint@debian.org or 93sam@debian.org if you
- have a problem or a suggestion.
+ Colin Tuckley and Steve McIntyre joined in to help. Currently Steve maintains
+ abcde along with Andrew Strong. Contact either with comments or suggestions
+ at the following email addresses:
+ Steve McIntyre <93sam@@debian.org>
+ Andrew Strong <andrew.david.strong@gmail.com>
1. INSTALLATION
Read the README files for a complete list of requirements.
Q. I have a problem, and I reported some time ago. Have you solved it already?
-A. Maybe. Try downloading the trunk of the development from
- http://abcde.googlecode.com/svn/trunk/
+A. Maybe. Try downloading the master branch of the development from
+ http://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git
Q. When are you going to release a new version?
A. When it is ready. I keep on having new ideas and adding them to the trunk
Q. I don't like CDDB/FreeDB. How can I use Musicbrainz instead?
A. Set CDDBMETHOD=musicbrainz and try it!
-3. FORMATS
+
+4. abcde and Album Art
+ ===================
+
+Q. Can abcde download album art?
+A. As of abcde 2.7 it is possible to download a suitable cover
+ image from within abcde that can be used by applications such
+ as Audacious and vlc to illustrate playback with an album cover.
+ Many hardware playback devices such as iPODs will also use this
+ image during playback and show it on the device's display.
+
+Q. How does album art downloading work?
+A. The details are contained in abcde within a new function called
+ 'getalbumart' which can be called either from the commandline or
+ from within an ~/.abcde.conf file. The technique works in 3 possible
+ ways:
+
+ 1. If CDDBMETHOD is musicbrainz the album art is downloaded from
+ coverartarchive by MBID (MusicBrainz Identifier)
+ 2. If 1 fails, download is tried from amazon by ASIN (Amazon
+ Standard Identification Number)
+ 3. If if 1 and 2 fail or CDDBMETHOD is cddb the album art will
+ be downloaded using glyrc by artist + album title
+
+ You will need to install your distro's package of glyr, a music
+ related metadata search engine, and it is strongly advised that
+ you use 'musicbrainz' for your cddb lookups. To access the more
+ advanced features of getalbumart it is also strongly advised that
+ you install the ImageMagick package of your distro. getalbumart
+ will work without ImageMagick but functionality will be reduced.
+
+Q. What settings and options should I select?
+A. If you want to operate abcde from the commandline only you will
+ get reasonable results with something like either of the following:
+
+ abcde -o mp3:-V2 -a default,getalbumart
+ abcde -o mp3:-V2 -G
+
+ But to experience all of the options of getalbumart you should also
+ consider setting the following in your ~/.abcde.conf file:
+
+ #----------------------------------------------------------------#
+ CDDBMETHOD=musicbrainz # Use MusicBrainz for CDDB
+ ACTIONS=default,getalbumart # Select the album art action + default
+
+ # Give the path to the metadata search application glyrc. Add any
+ # glyrc options:
+ GLYRC=glyrc
+ GLYRCOPTS=
+
+ # Give the path to ImageMagick's 'identify' which is used to give a
+ # commandline summary of the album art and also assist in any conversions.
+ # Add any 'identify' options:
+ IDENTIFY=identify
+ IDENTIFYOPTS=
+
+ # Give the path to ImageMagick's 'display' which will show the album art.
+ # The options below are the abcde default, feel free to add your own:
+ DISPLAYCMD=display
+ DISPLAYCMDOPTS="-resize 512x512 -title abcde_album_art"
+
+ # Give the path to ImageMagick's 'convert' which is used to convert album
+ # art to the format specified in ALBUMARTTYPE. Add any 'convert' options:
+ CONVERT=convert
+ CONVERTOPTS=
+ # If you want to run CONVERTOPTS on all files (including those specified
+ # in ALBUMARTTYPE) set the following to "y":
+ ALBUMARTALWAYSCONVERT="n"
+
+ # By default the filename will be cover.jpg and the file format will
+ # be jpeg. 'convert' will automagically change other formats to jpeg:
+ ALBUMARTFILE="cover.jpg"
+ ALBUMARTTYPE="JPEG"
+ #----------------------------------------------------------------#
+
+ There are more hints concerning commandline options in the sample
+ abcde.conf file included with your abcde package. Good news is that
+ the existing defaults will work well without any extra adjustments :).
+
+Q. Can I manually select album art?
+A. If you have set INTERACTIVE=y (this is the default) then you will have
+ the opportunity to manually select the album art of your choice either
+ from online by typing in a URL or by typing in the path to a local file.
+
+Q. What if I want my album art embedded?
+A. The philosophy of getalbumart at the moment is to simply place the album
+ art in the same location as the encoded files. Perhaps this will change
+ one day. In the meantime you can use abcde's post_encode function in
+ your ~/.abcde.conf file to embed the album art. Here is an example for
+ mp3 embedding using eyeD3:
+
+ #----------------------------------------------------------------#
+ post_encode ()
+ {
+ ARTISTFILE="$(mungefilename "$TRACKARTIST")"
+ ALBUMFILE="$(mungefilename "$DALBUM")"
+
+ if [ "$VARIOUSARTISTS" = "y" ] ; then
+ FINDPATH="$(eval echo "$VAOUTPUTFORMAT")"
+ else
+ FINDPATH="$(eval echo "$OUTPUTFORMAT")"
+ fi
+
+ FINALDIR="$(dirname "$OUTPUTDIR/$FINDPATH")"
+ cd "$FINALDIR"
+
+ if [ "$OUTPUTTYPE" = "mp3" ] && [ "$TAGGER" = "$EYED3" ] ; then
+ vecho "Preparing to embed the album art..." >&2
+ else
+ vecho "Not embedding album art, you need mp3 output and eyeD3 tagging..." >&2
+ return 1
+ fi
+
+ if [ -e "cover.jpg" ] ; then
+ for i in *.mp3
+ do
+ eyeD3 --add-image cover.jpg:FRONT_COVER "$i"
+ done
+ mkdir backup && mv cover.jpg backup
+ vecho "Your files have had the album art embedded..." >&2
+ else
+ vecho "No album art found so no image embedded..." >&2
+ fi
+ }
+ #----------------------------------------------------------------#
+
+ Variations of the 'for' loop in this example should work for other encoding
+ types. For example with flac:
+
+ #--------------------
+ for i in *.flac
+ do
+ metaflac --import-picture-from=cover.jpg "$i"
+ done
+ #--------------------
+
+ With other appropriate adjustments to the $OUTPUTTYPE and $TAGGER checks of
+ course...
+
+
+4. FORMATS
=======
Q. What formats can I encode my music to?
Q. Huh! Why is MPPENCODER (with MPP) and .mpc the extension?
A. Dunno. You must ask the guys who created and defined the format. The
standard is MPEGplus (MPP/MP+) but the files use .mpc extension.
-
-
-4. MISC PROBLEMS
- ==== ========
+
+Q. Why do I get .aac files instead of .m4a files when I encode with faac?
+A. Faac uses mp4v2 to create aac files in an m4a or mp4 container. Some
+ Linux distros have disabled this mp4v2 support due to a licensing issue
+ and this leave faac only capable of generating mpeg-2/ADTS streams.
+ These streams should correctly have the .aac file extension and some
+ players (such as Audacious) will not even play mpeg-2/ADTS streams when
+ they are placed in an .m4a container.
+ As of version 2.7 abcde tests the version of faac being used for mp4v2
+ support and then appropriately places the audio either in .m4a or .aac.
+ Note that tagging is not possible with mpeg-2/ADTS streams in .aac.
+
+Q. How do I encode to Apple Lossless Audio Codec (alac)?
+A. As of abcde 2.7.1 there are 3 ways to encode to alac: using qaac, refalac
+ or FFmpeg. To use qaac or refalac follow the installation directions here:
+
+ http://www.andrews-corner.org/qaac.html#installation
+
+ and then set your ~/.abcde.conf file as follows:
+
+ AACENCODERSYNTAX=qaac
+ QAAC="$HOME/.wine/drive_c/qaac/qaac.exe"
+ # Or use the Open Source alac encoder with this small hack:
+ # QAAC="$HOME/.wine/drive_c/qaac/refalac.exe"
+ QAACENCOPTS="--alac --threading --verbose"
+ OUTPUTTYPE="m4a"
+
+ To use FFmpeg (or avconv) set your ~/.abcde.conf file as follows:
+
+ AACENCODERSYNTAX=ffmpeg
+ FFMPEG=ffmpeg
+ # Or give the path to avconv instead:
+ # FFMPEG=avconv
+ FFMPEGENCOPTS="-c:a alac"
+ OUTPUTTYPE="m4a"
+
+ And then sit back and enjoy the music :)
+
+Q. Will FFmpeg be used with abcde for any other audio formats?
+A. The plan is to use FFmpeg (or avconv) when FFmpeg has a good quality native
+ encoder available. For example FFmpeg has a low quality native native encoder
+ for Vorbis and AAC which will not be used but a great reverse engineered alac
+ encoder that has been used in abcde. FFmpeg also has a good WavPack encoder
+ that has been added in abcde 2.7.1 which can be added into your ~/.abcde.conf
+ file as follows:
+
+ # WVENCODERSYNTAX=wavpack
+ WVENCODERSYNTAX=ffmpeg
+ # Appropriate PATH:
+ WAVPACK=wavpack
+ FFMPEG=ffmpeg
+ # Appropriate options:
+ FFMPEGENCOPTS="-c:a wavpack -compression_level 6"
+ WAVPACKENCOPTS="-hx3"
+ # Correct output type:
+ OUTPUTTYPE="wv"
+
+ You can see in this example how easy it is to switch from one WavPack encoder to
+ another by changing the comment mark '#' on the WVENCODERSYNTAX line. For mp2
+ encoding with FFmpeg try the following:
+
+ # MP2ENCODERSYNTAX=twolame
+ MP2ENCODERSYNTAX=ffmpeg
+ # Appropriate PATH:
+ TWOLAME=twolame
+ FFMPEG=ffmpeg
+ FFMPEGENCOPTS='-c:a mp2 -b:a 320k'
+ TWOLAMENCOPTS='--bitrate 320'
+ # Correct output type:
+ OUTPUTTYPE="mp2"
+
+ So currently FFmpeg supports: alac, wavpack and mp2. FFmpeg native aac support will
+ be added when it comes out of 'experimental'. FFmpeg is also used as the default
+ encoder for the Matroska or mka container. A typical example, using the FFmpeg
+ native ac3 encoder, is:
+
+ MKAENCODERSYNTAX=ffmpeg
+ FFMPEG=ffmpeg
+ FFMPEGENCOPTS="-c:a ac3 -b:a 448k"
+ OUTPUTTYPE="mka"
+
+ Other suitable codecs for this usage are Vorbis, MP2, MP3, LC-AAC, HE-AAC, WMAv1,
+ WMAv2, eAC3 and Opus. There is much more to come in the future for abcde and FFmpeg!
+
+
+5. USEPIPES
+ ========
+
+Q. What is/are 'USEPIPES'??
+A. This is a slightly different method of ripping and encoding with abcde
+ utilising Unix pipes. Using this method a program sends as output what
+ another programs expects as input without writing the information to the
+ hard disk. For it to work with abcde, a ripper must send the data of the
+ CD tracks which are ripped to the 'standard output', while sending other
+ information and error messages to 'standard error' so that the encoder
+ does not get confused. The encoder program needs to be able to encode the
+ information send to it by reading from the standard input (which is what
+ the ripper sends to the standard output).
+ Usually Unix/Linux programs deal with the standard input/output by using
+ the special file name '-', as in the following example:
+
+ cdripper -o - | audioencoder -i - -o file.ext
+
+ The 'cdripper' program uses the flag '-o' to identify the file it will
+ output the data to. For the 'audioencoder' program to be able to read
+ the output through a Unix pipe (the '|' symbol), the output needs to be
+ sent to the standard output using the '-' special filename. Once the
+ output has been piped to 'audioencoder' we use the same special filename
+ to read the information as input with the '-i' flag and output it to
+ 'file.ext' with the '-o' flag.
+
+Q. How do I use USEPIPES with abcde?
+A. You can run USEPIPES in either of two ways:
+
+ 1. Add 'USEPIPES=y' to your ~/.abcde.conf file
+ 2. Use the commandline option 'abcde -P'
+
+Q. Do all rippers and encoders work with USEPIPES?
+A. No :). Keep in mind that every ripper and encoder differs from in each
+ other in the way they interact with pipes and not all rippers and encoders
+ will use or understand the '-o' and '-' options. Currently (August 2015) the
+ following rippers and encoders work:
+
+ Rippers: cdparanoia, debug, libcdio, cdda2wav, flac, pird.
+ Encoders: mp3enc, lame, bladeenc, oggenc, opusenc, flac, speexenc,
+ mpcenc, wavpack, faac, neroAacEnc, fdkaac, qaac, fhgaacenc,
+ ffmpeg, tta, ttaenc.
+
+Q. Can I add a ripper or encoder which is not supported?
+A. Sure! If you plan to use a ripper or encoder which is not supported you
+ need to know how to use the ripper/encoder. For example, cdparanoia just
+ uses '-' as the output filename and works. The program used to decode
+ FLAC files (yes, abcde supports 'ripping' from a FLAC file :) uses '-c'.
+ To add support for a ripper called 'cdripper' which uses the '-' special
+ flag for outputting to the standard output, you need to open the config
+ file (either /etc/abcde.conf or ~/.abcde.conf) and add the line:
+
+ PIPERIPPER_cdripper="-"
+
+ For an encoder called 'audioencoder' which uses '--stdin' to read the pipe
+ input, you need to add:
+
+ PIPE_audioencoder="--stdin"
+
+ Of course, you should try your configuration and report it to the abcde
+ developers so that it can be included in future versions of abcde. If
+ you are familiar with POSIX shell programing, please open "abcde" and
+ take a look at the lines below the one marked with "###USEPIPESSUPPORT###",
+ the required syntax is reasonably clear.
+
+6. MISC PROBLEMS
+ =============
Q. What happened with normalize?
A. Normalize has changed its name under Debian, which is the GNU/Linux
--
Jesus Climent <jesus.climent@hispalinux.es>
+Andrew Strong <andrew.david.strong@gmail.com>