# -----------------$HOME/.abcde.conf----------------- #
# 
#  configuration file to convert music cds to mp3s
# 
#  dependencies not installed with apt-get install abcde
#    - eyeD3 (req)
#    - normalize-audio (optional)
#
# --------------------------------------------------- #
#
# Check for installed software
# CD Paranoia
if [ ! "$(command -v cdparanoia)" ]; then
    echo "CD Paranoia not found.  Exiting."
    exit 1
fi
# CD-DiscID
if [ ! "$(command -v cd-discid)" ]; then
    echo "CD-DiscID not found.  Exiting"
    exit 1
fi
# LAME Encoder
if [ ! "$(command -v lame)" ]; then
    echo "LAME Encoder not found.  Exiting"
    exit 1
fi
# eyeD3
if [ ! "$(command -v eyeD3)" ];then 
    echo "Eye3D not found. Exiting"
    exit 1
fi
# Normalize-audio
if [ "$(command -v normalize-audio)" ]; then
    NORMALIZERSYNTAX='default'
else
    echo "Normalize-Audio not found.  Proceeding anyway."
fi

# Specify the encoder to use for MP3. In this case
# the alternatives are gogo, bladeenc, l3enc, xingmp3enc, mp3enc.
MP3ENCODERSYNTAX=lame 
# Specify the path to the selected encoder. In most cases the encoder
# should be in your $PATH as I illustrate below, otherwise you will 
# need to specify the full path. For example: /usr/bin/lame
LAME=lame

# Specify your required encoding options here. Multiple options can
# be selected as '--preset standard --another-option' etc.
LAMEOPTS='--preset standard' 
# Output type for MP3.
OUTPUTTYPE="mp3"

# The cd ripping program to use. There are a few choices here: cdda2wav,
# dagrab, cddafs (Mac OS X only) and flac.
CDROMREADERSYNTAX=cdparanoia            
                                     
# Give the location of the ripping program and pass any extra options:
CDPARANOIA=cdparanoia  
CDPARANOIAOPTS="--never-skip=40"

# Give the location of the CD identification program:       
CDDISCID=cd-discid            
                               
# Give the base location here for the encoded music files.
OUTPUTDIR="$HOME/Music/"               
if [ -d "${OUTPUTDIR}" ]; then
    echo "creating destination ${OUTPUTDIR}"
fi

# The default actions that abcde will take.
if [ -z ${NORMALIZERSYNTAX+x} ]; then
    ACTIONS=cddb,playlist,read,encode,tag,move,clean
else
    ACTIONS=cddb,playlist,read,encode,normalize,tag,move,clean
fi
              
# Decide here how you want the tracks labelled for a standard 'single-artist',
# multi-track encode and also for a multi-track, 'various-artist' encode:
OUTPUTFORMAT='${ARTISTFILE} - ${YEAR} - ${ALBUMFILE}/${ARTISTFILE} - ${TRACKNUM} - ${TRACKFILE}'
VAOUTPUTFORMAT='${ALBUMFILE} - (${YEAR})/${TRACKNUM} - ${ARTISTFILE} - ${TRACKFILE}'

# Decide here how you want the tracks labelled for a standard 'single-artist',
# single-track encode and also for a single-track 'various-artist' encode.
# (Create a single-track encode with 'abcde -1' from the commandline.)
ONETRACKOUTPUTFORMAT='${ARTISTFILE} - ${TRACKFILE}'
VAONETRACKOUTPUTFORMAT='${ALBUMFILE}- ${TRACKFILE}'

# Create playlists for single and various-artist encodes. I would suggest
# commenting these out for single-track encoding.
PLAYLISTFORMAT='${ARTISTFILE} - ${YEAR} - ${ALBUMFILE}/${ARTISTFILE} - ${YEAR} - ${ALBUMFILE}.m3u'
VAPLAYLISTFORMAT='${ALBUMFILE}/${ALBUMFILE} - ${YEAR}.m3u'

# Put spaces in the filenames instead of the more correct underscores:
mungefilename ()
{
      echo "$@" | sed s,:,-,g | tr / _ | tr -d \'\"\?\[:cntrl:\]
}

# What extra options?
MAXPROCS=2                              # Run a few encoders simultaneously
PADTRACKS=y                             # Makes tracks 01 02 not 1 2
EXTRAVERBOSE=y                          # Useful for debugging
EJECTCD=y                               # Please eject cd when finished :-)
