Fix (again!) dealing with CDs with no release events
[abcde.git] / abcde.conf
index 63ee328..5c8e740 100644 (file)
@@ -1,12 +1,16 @@
-# System defaults for abcde version 2.2.x
+# System defaults for abcde version 2.8.2
 # Nothing in this file is uncommented by default.
-# 
+#
 # If you wish to override these system-wide settings, create your own
 # .abcde.conf file in your home directory.
 
 # CDDB options
-# Choose whether you want to use CDDB or Musicbrainz. Default is CDDB
-#CDDBMETHOD=cddb
+
+# Choose whether you want to use "cddb", "musicbrainz" and/or
+# "cdtext". Default is "musicbrainz", but all can be specified in a
+# comma delimited list to be tried sequentially. All the results will
+# be displayed ready for user choice.
+#CDDBMETHOD=musicbrainz
 
 # If you wish to use a different CDDB server, edit this line.
 # If you just wanted to use a proxy server, just set your http_proxy
@@ -29,7 +33,7 @@
 # are cached locally in $CDDBLOCALDIR
 #CDDBCOPYLOCAL="n"
 #CDDBLOCALDIR="$HOME/.cddb"
-#CDDBLOCALRECURSIVE="n"
+#CDDBLOCALRECURSIVE="y"
 
 # If NOSUBMIT is set to y, then abcde will never prompt asking if you
 # wish to submit your edited cddb file.
 #NOCDDBQUERY=n
 
 # Select here if you want to use the locally stored CDDB entries.
-# This is useful if you do a lot of editing to those CDDB entries. 
+# This is useful if you do a lot of editing to those CDDB entries.
 # Also, other tools like Grip store CDDB entries under $HOME/.cddb,
-# so they can be reused when ripping CDs.
+# so they can be reused when ripping CDs. (If this is set to "y" make
+# sure that CDDBLOCALRECURSIVE is also set to "y".)
 #CDDBUSELOCAL="n"
 
 # List, separated with a comma, the fields we want the parsing function to
 # or "YEAR, GENRE"
 #SHOWCDDBFIELDS=year,genre
 
-# Specify the style of encoder to use here - 
+# Specify the style of encoder to use here -
 # oggenc, vorbize - for OGGENCODERSYNTAX
 # lame, gogo, bladeenc, l3enc, xingmp3enc, mp3enc - for MP3ENCODERSYNTAX
 # flac - the only supported for FLACENCODERSYNTAX at the moment
 # speexenc - the only encoder for SPEEXENCODERSYNTAX
 # mpcenc - encoder for MPCENCODERSYNTAX
-# faac, neroAacEnc - for AACENCODER
-# opusenc - for OPUSENCODER
-# default is a valid option for oggenc, lame, flac, speexenc, mpcenc, faac and opus.
-# Currently this affects the default location of the binary, the variable
-# to pick encoder command-line options from, and where the options are
-# given.
+# wavpack, ffmpeg - encoder for WVENCODERSYNTAX
+# mac - for APENCODERSYNTAX
+# fdkaac, ffmpeg, neroAacEnc, faac, qaac, fhgaacenc - for AACENCODERSYNTAX
+# opusenc - for OPUSENCODERSYNTAX
+# twolame, ffmpeg - for MP2ENCODERSYNTAX
+# tta, ttaenc - for TTAENCODERSYNTAX
+# ffmpeg - for AIFFENCODERSYNTAX
+# default is a valid option for oggenc, lame, flac, speexenc, mpcenc, wavpack,
+# fdkaac, opus, twolame and tta. Currently this affects the default location of the
+# binary, the variable to pick encoder command-line options from, and where
+# the options are given.
 #MP3ENCODERSYNTAX=default
 #OGGENCODERSYNTAX=default
 #FLACENCODERSYNTAX=default
 #SPEEXENCODERSYNTAX=default
+#MKAENCODERSYNTAX=default
 #MPCENCODERSYNTAX=default
+#WVENCODERSYNTAX=default
+#APENCODERSYNTAX=default
 #AACENCODERSYNTAX=default
 #OPUSENCODERSYNTAX=default
+#MP2ENCODERSYNTAX=default
+#TTAENCODERSYNTAX=default
+#AIFFENCODERSYNTAX=default
 
 # Specify the syntax of the normalize binary here - so far only 'normalize'
 # is supported.
 #NORMALIZERSYNTAX=default
 
 # CD reader program to use - currently recognized options are 'cdparanoia',
-# 'icedax', 'cdda2wav', 'dagrab', 'pird', 'cddafs' (Mac OS X only) and 'flac'.
+# 'libcdio' (cd-paranoia),'icedax', 'cdda2wav', 'dagrab', 'pird',
+# 'cddafs' (Mac OS X only) and 'flac'.
 #CDROMREADERSYNTAX=cdparanoia
 
 # CUE reader syntax for the CUE reader program to use.
 #DISTMP3NICE=10
 
 # Paths of programs to use
+
+# Encoders:
 #LAME=lame
-#TOOLAME=toolame
 #GOGO=gogo
 #BLADEENC=bladeenc
 #L3ENC=l3enc
 #FLAC=flac
 #SPEEXENC=speexenc
 #MPCENC=mpcenc
-#AACENC=faac
+#WVENC=wavpack
+#APENC=mac
+#FAAC=faac
+#NEROAACENC=neroAacEnc
+#FDKAAC=fdkaac
 #OPUSENC=opusenc
-
+#TWOLAME=twolame
+# Note that if you use avconv rather than FFmpeg give the
+# path to avconv here (e.g. FFMPEG=/usr/bin/avconv):
+# FFMPEG=ffmpeg
+#TTA=tta
+#TTAENC=ttaenc
+
+# The path for qaac, refalac and fhgaacenc  can be problematic as abcde
+# cannot cope with the 'standard' Wine location with spaces. For example:
+# "$HOME/.wine/drive_c/Program\ Files/qaac/qaac.exe" is problematic. Try instead:
+# "$HOME/.wine/drive_c/qaac/qaac.exe"
+# Installation instructions for qaac, refalac and fhgaacenc here:
+#    http://www.andrews-corner.org/linux/qaac.html
+#    http://www.andrews-corner.org/linux/fhgaacenc.html
+# (Hint: Use QAAC=refalac to use the Open Source alac encoder...)
+#QAAC=qaac
+#FHGAACENC=fhgaacenc
+
+# Taggers, rippers, replaygain etc:
 #ID3=id3
+#ID3V2=id3v2
+#MID3V2=mid3v2
 #EYED3=eyeD3
 #CDPARANOIA=cdparanoia
+#CD_PARANOIA=cd-paranoia
 #CDDA2WAV=icedax
 #PIRD=pird
 #CDDAFS=cp
 #MKCUE=mkcue
 #MKTOC=cdrdao
 #DIFF=diff
+#WVGAIN=wvgain
+#WVTAG=wvtag
+#APETAG=apetag
+#GLYRC=glyrc
+#IDENTIFY=identify
+#CONVERT=convert
+#DISPLAYCMD=display
+#WINE=wine
 
 # Options to call programs with:
 
-# If HTTPGET is modified, the HTTPGETOPTS options should also be defined 
+# If HTTPGET is modified, the HTTPGETOPTS options should also be defined
 # accordingly. If HTTPGET is changed, the default options will be set,
 # if HTTPGETOPTS is empty or not defined.
 #HTTPGET=wget
 # MP3:
 # For the best LAME encoder options have a look at:
 # <http://wiki.hydrogenaudio.org/index.php?title=LAME#Recommended_encoder_settings>
-# The suggested '-V 0' below gives Variable Bitrate Rate (VBR) recording
+# A good option is '-V 0' which gives Variable Bitrate Rate (VBR) recording
 # with a target bitrate of ~245 Kbps and a bitrate range of 220...260 Kbps.
-#LAMEOPTS='-V 0'
-#TOOLAMEOPTS=
+#LAMEOPTS=
 #GOGOOPTS=
+# Bladeenc still works with abcde in 2015, and the last release of bladeenc
+# was in 2001! Settings that will produce a great encode are: '-br 192' 
 #BLADEENCOPTS=
+# L3enc still works with abcde in 2015, pretty amazing when you realise 
+# that the last release of l3enc was in 1997! Settings that will produce 
+# a great encode are: '-br 256000 -hq -crc'
 #L3ENCOPTS=
 #XINGMP3ENCOPTS=
+# And mp3enc also still works with abcde in 2015 with the last release
+# of mp3enc in 1998! Settings that will produce a great encode, albeit
+# a slow one, are: '-v -br 256000 -qual 9 -no-is -bw 16500'
 #MP3ENCOPTS=
 
 # Ogg:
 #OGGENCOPTS=
 
 # FLAC:
-#FLACOPTS="-f"
-
+# The flac option is a workaround for an error where flac fails
+# to encode with error 'floating point exception'. This is flac 
+# error in get_console_width(), corrected in flac 1.3.1
+#FLACOPTS="--silent"
+# Options passed to MetaFlac for ReplayGain tags:
+#FLACGAINOPTS="--add-replay-gain"
 # Speex:
 #SPEEXENCOPTS=
 
 # MPP/MP+ (Musepack):
-# For the encoder options look at: mpcenc --longhelp. Set them like this:
-# MPCENCOPTS='--xtreme' if you wish to set more options then:
-# MPCENCOPTS='--xtreme --skip 20 --fade 10'
+# For the encoder options look at 'mpcenc --longhelp', consider
+# setting '--extreme' for a good quality encode.
 #MPCENCOPTS=
 
+# WavPack:
+# Look at 'wavpack --help' for detailed options, consider using '-hx3' 
+# for a good quality encode
+#WAVENCOPTS=
+# For Wavpack replay gain we set both the default of 'track gain' 
+# as well as this option for 'album gain'. Better media players
+# such as vlc can select either or neither.    
+#WVGAINOPTS='-a'
+
+# Monkey's Audio (ape)
+# Without this set mac chokes unfortunately. Choices
+# are from 1000 to 5000.
+#APENCOPTS='-c4000'
+
+#AIFF
+# These options needed by FFmpeg for tagging and selection of id3v2 version:
+#  1. '-write_id3v2 1' allows id3v2 tagging while '-write_id3v2 0' disables tagging
+#  2. '-id3v2_version 4' gives version id3v2.4 while '3' gives id3v2.3 
+#AIFFENCOPTS="-write_id3v2 1 -id3v2_version 4"
+
 # M4A/AAC
-#For faac encoding try the following options (see also: faac --help):
-#AACENC=faac
-#AACENCOPTS='-q 250 -w -s'
-#OUTPUTTYPE="m4a"
-# For neroAacEnc encoding try the following options (see also neroAacEnc -help):
-#AACENC=neroAacEnc
-#AACENCOPTS='-q 0.65'
-#OUTPUTTYPE="m4a"
-#ATOMICPARSLEY='AtomicParsley'
+# There are now 6 AAC encoders available to abcde, the default being
+# fdkaacenc. Note that the old AACENCOPTS has been rendered obsolete by
+# the following options, new to abcde 2.7:
+#  1. fdkaac: see 'fdkaac --help' and consider using 
+#     '--profile 2 --bitrate-mode 5 --afterburner 1'
+#     for a good quality encode. 
+#FDKAACENCOPTS='--bitrate 192k'
+#  2. FFmpeg: Use the following to use the FFmpeg native encoder, adding
+#     -strict -2 if you have an older FFmpeg:
+#     FFMPEGENCOPTS="-c:a aac -b:a 192k"
+#  3. neroAacEnc: see 'neroAacEnc -help' and
+#     consider using '-q 0.65' for a good quality encode.
+#NEROAACENCOPTS=
+#  4. faac: see 'faac --long-help' and consider
+#     using '-q 250' for a good quality encode.
+#FAACENCOPTS=
+#  5. qaac: simply run 'wine qaac.exe' to see all options and
+#     consider using '--tvbr 100' for a good quality
+#     encode or '--alac' for Apple Lossless Audio Codec
+#QAACENCOPTS=
+#  6. fhgaacenc: simply run 'wine fhgaacenc.exe' to see all options.
+#     consider using '--vbr 4' for a decent quality encode.
+#FHGAACENCOPTS=
+
+# True Audio
+# This is a lossless format so no options of any note available:
+#TTAENCOPTS=
 
 # OPUS
-# For the encoder options look at: opusenc -h.
-#OPUSENCOPTS='--bitrate 128'
-
+# For the encoder options look at: 'opusenc -h'
+#OPUSENCOPTS=
+
+# MP2
+# Currently uses either twolame or ffmpeg, for twolame options look at:
+# 'twolame --help',a highly recommended setting is "--bitrate 320".
+#TWOLAMENCOPTS=
+
+# FFmpeg or avconv can be used for several audio codecs, as well as being
+# the default encoder for the Matroska container mka::
+# 1. Encoding to WavPack (FFmpeg only: avconv does not have a native encoder).
+#    Consider setting the following with a compression_level between 0-8:
+#    FFMPEGENCOPTS="-c:a wavpack -compression_level 6"
+# 2. Encoding to ALAC (both FFmpeg and avconv have a native encoder).
+#    Consider using the following for either FFmpeg and avconv:
+#    FFMPEGENCOPTS="-c:a alac"
+# 3. Encoding to mp2
+#    Consider using the following for either FFmpeg and avconv:
+#    FFMPEGENCOPTS="-c:a mp2 -b:a 320k"
+#FFMPEGENCOPTS=
+
+# mp3 tagging:
+# There are three ways to tag MP3 files:
+#   1. id3v1 (with id3)
+#   2. id3v2.3 (with id3v2)
+#   3. id3v2.4 (with eyeD3) This is the default
+# Use ID3TAGV to select one of the older formats:
+#ID3TAGV=id3v2.4
 #ID3OPTS=
+#ID3V2OPTS=
 #EYED3OPTS="--set-encoding=utf16-LE"
+
+# Other options:
+# The variable CDPARANOIOPTS is also used by GNU's cd-paranoia,
+# so use this when setting CDROMREADERSYNTX=libcdio.
 #CDPARANOIAOPTS=
 #CDDA2WAVOPTS=
 #PIRDOPTS="-p"
+# Options for the CD ripper dagrab can be seen by running 'dagrab -h'.
+# A good option to experiment with is the 'sectors per request' setting
+# which by default is '-n 8'.
+#DAGRABOPTS=
 #CDDAFSOPTS="-f"
 #CDDBTOOLOPTS=
 #EJECTOPTS=
 #DIFFOPTS=""
 #VORBISCOMMENTOPTS="-R"
 #METAFLACOPTS="--no-utf8-convert"
-#DIFFOPTS=""
+# Bear in mind that the AtomicParsley option '--overWrite' is already
+# used in abcde...
+#ATOMICPARSLEYOPTS=
 
 # Actions to take
 # Comma-separated list of one or more of the following:
-#  cddb,cue,read,normalize,encode,tag,move,playlist,clean,default
+#  cddb,cue,read,normalize,encode,tag,move,replaygain,playlist,getalbumart,embedalbumart,clean,default
 #   encode implies read
 #   normalize implies read
 #   tag implies cddb,read,encode
 #   move implies cddb,read,encode,tag
+#   replaygain implies cddb,read,encode,tag,move
 #   playlist implies cddb
+#   embedalbumart implies getalbumart
 # An action can be added to the "default" action by specifying it along with
 # "default", without having to repeat the default ones:
 #  ACTIONS=default,playlist
 
 # OUTPUTTYPE can be any of a number of formats, either a single format
 # (e.g. "ogg") or a combination of them separated with ","
-# (e.g. "flac,mp3"). Currently recognised and supported are: 
-# "flac", "m4a", "mp3, "mpc", "ogg", "opus", "spx", "vorbis", "wav"
+# (e.g. "flac,mp3"). Currently recognised and supported are:
+# "flac", "m4a", "mp3, "mpc", "ogg", "opus", "mka", "spx", "vorbis", "wav", "wv", "ape", "aiff"
 #OUTPUTTYPE=ogg
 
 # Output filename format - change this to reflect your inner desire to
 #LOWDISK=n
 
 # If set to y, enables batch mode normalization, which preserves relative
-# volume differences between tracks of an album. 
+# volume differences between tracks of an album.
 #BATCHNORM=n
 
 # Enables nogap encoding when using the 'lame' encoder.
 #(some hardware players insist on CR-LF line-endings)
 #DOSPLAYLIST=n
 
+# album art download options (see glyrc's help for details with more detailed 
+# examples here: https://github.com/sahib/glyr/wiki/Commandline-arguments).
+# For example use '--formats jpg;jpeg' to only search for JPEG images
+# These options: '--from <provider>' and '--lang <langcode>' might also be useful
+#GLYRCOPTS=
+#ALBUMARTFILE="cover.jpg"
+#ALBUMARTTYPE="JPEG"
+
+# Options for ImageMagick commands used by album art processing when available
+# For example: CONVERTOPTS="-colorspace RGB -resize 600x600>"
+# to make the image RGB and fit inside 600x600 while keeping the aspect ratio
+#IDENTIFYOPTS=
+#CONVERTOPTS=
+#DISPLAYCMDOPTS="-resize 512x512 -title abcde_album_art"
+# By default convert is only called when the image type is different from
+# ALBUMARTTYPE, use ALBUMARTALWAYSCONVERT="y" to always call convert
+#ALBUMARTALWAYSCONVERT="n"
+
 # Custom filename munging:
-# By default, abcde will do the following to CDDB data to get a useful
-# filename:
-# * Translate colons to a space and a dash for Windows compatibility
-# * Eat control characters, single quotes, and question marks
-# * Translate spaces and forward slashes to underscores
-# To change that, redefine the mungefilename function.
-# mungefilename receives the CDDB data (artist, track, title, whatever)
-# as $1 and outputs it on stdout.
+# By default, abcde will do the following to CDDB data to get a useful filename:
+# 1. Delete any dots preceding the title (first sed command)
+# 2. Replace all spaces with an underscore (second sed command). Simply remove
+#   this if you prefer spaces.
+# 3. Delete a grab bag of characters which variously Windows and Linux do not permit 
+#   (tr command). Remove any of these from the list if you wish to actually use them.
+#   
 #mungefilename ()
 #{
-#      echo "$@" | sed s,:,\ -,g | tr \ / __ | tr -d \'\"\?\[:cntrl:\]
+#      echo "$@" | sed -e 's/^\.*//' -e 's/ /_/g' | tr -d ":><|*/\"'?[:cntrl:]"
+#}
+#
+# More examples for custom filename munging:
+#
+# VARIANT 1: (works anywhere style)
+#
+# Translate everything to lowercase
+# replace ALL chars that may cause trouble for Linux, Windows and DOS
+# with '_' (underscore); remove double underscores; remove leading and
+# trailing underscores; recode to flat ASCII
+#
+#mungefilename ()
+#{
+#      echo "$@" | tr [A-Z] [a-z] | \
+#                      sed "s/[- ,.:\'\/!@#\?\$%\^&()]/_/g" | \
+#                      sed 's/_[_]*/_/g' | \
+#                      sed 's/^_*//' | \
+#                      sed 's/_*$//' | \
+#                      recode -f iso8859-1..flat
+#}
+#
+# VARIANT 2: (legible style)
+#
+# Accept all chars, EXCEPT '/' (obvious) or ":" (because eyeD3 cannot
+# cope with ":" in pathnames): replace them with " " (space).
+# Additionally, replace contiguous spaces with one space; strip
+# leading spaces; strip trailing spaces and recode to flat filenames.
+#
+# mungefilename ()
+# {
+#      echo "$@" |     sed "s/[:\/]/ /g" | \
+#                      sed 's/ [ ]*/ /g' | \
+#                      sed 's/^ *//' | \
+#                      sed 's/ *$//' | \
+#                      recode -f iso8859-1..flat
+# }
+
+
+#
+# Custom filename munging specific to track names:
+# By default this function will call the mungefilename function.
+#mungetrackname ()
+#{
+#      mungefilename $@
+#}
+#
+# Custom filename munging specific to artist names:
+# By default this function will call the mungefilename function.
+#mungeartistname ()
+#{
+#      mungefilename $@
+#}
+#
+# Custom filename munging specific to album names:
+# By default this function will call the mungefilename function.
+#mungealbumname ()
+#{
+#      mungefilename $@
 #}
 
 # Custom genre munging:
 # Custom pre-read function
 # By default it does nothing.
 # You can set some things to get abcde function in better ways:
-# * Close the CD tray using eject -t (if available in eject and supported by 
+# * Close the CD tray using eject -t (if available in eject and supported by
 #   your CD device.
-# * Set the CD speed. You can also use the built-in options, but you can also 
+# * Set the CD speed. You can also use the built-in options, but you can also
 #   set it here. In Debian, eject -x and cdset -x do the job.
 # KEEP IN MIND that executables included in pre_read must be in your $PATH or
 # you have to define them with full /path/to/binary