Skip to content

Instantly share code, notes, and snippets.

@fourdollars
Last active October 4, 2018 00:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fourdollars/9a26da3847c733eef2ba11a122f3c924 to your computer and use it in GitHub Desktop.
Save fourdollars/9a26da3847c733eef2ba11a122f3c924 to your computer and use it in GitHub Desktop.
sudo apt install abcde cd-discid lame cdparanoia id3 id3v2 eyed3
# System defaults for abcde version 2.8.1
# 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" and/or "musicbrainz". Default
# is "musicbrainz", but both can be specified in a comma delimited list
# to be tried sequentially in the event of failure of the first
# search.
#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
# environment variable - wget will use it correctly.
#CDDBURL="http://freedb.freedb.org/~cddb/cddb.cgi"
# The CDDB protocol level.
# Right now 5 is latin1 output and 6 is UTF8 encoding.
#CDDBPROTO=6
# The CDDB protocol requires hello information, including a valid username
# and hostname. If you feel paranoid about giving away such info, edit this
# line - the format is username@hostname.
#HELLOINFO="`whoami`@`hostname`"
# This controls the email address CDDB changes are submitted to.
#CDDBSUBMIT=freedb-submit@freedb.org
# The following options control whether or not fetched CDDB entries
# are cached locally in $CDDBLOCALDIR
#CDDBCOPYLOCAL="n"
#CDDBLOCALDIR="$HOME/.cddb"
#CDDBLOCALRECURSIVE="y"
# If NOSUBMIT is set to y, then abcde will never prompt asking if you
# wish to submit your edited cddb file.
#NOSUBMIT=n
# If NOCDDBQUERY is set to y, then abcde will never even try to access
# the CDDB server; running abcde will automatically drop you into a
# blank cddb file to edit at your leisure. This is the same as the
# -n option. NOCDDBQUERY=y implies NOSUBMIT=y.
#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.
# Also, other tools like Grip store CDDB entries under $HOME/.cddb,
# 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
# output. Defaults to YEAR and GENRE, for a complete list of fields provided by
# CDDB.
# The fields are not case sensitive. Actually, "y,g" will work as fine as "Y,G"
# or "YEAR, GENRE"
#SHOWCDDBFIELDS=year,genre
# 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
# 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
# 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=lame
#OGGENCODERSYNTAX=default
#FLACENCODERSYNTAX=default
#SPEEXENCODERSYNTAX=default
#MKAENCODERSYNTAX=default
#MPCENCODERSYNTAX=default
#WVENCODERSYNTAX=default
#APENCODERSYNTAX=default
#AACENCODERSYNTAX=default
#OPUSENCODERSYNTAX=default
#MP2ENCODERSYNTAX=default
#TTAENCODERSYNTAX=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',
# '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.
# abcde supports 2 CUE modes: 'mkcue' and 'abcde.mkcue' so you can set the
# MKCUE variable accordingly. The 'abcde.mkcue' uses an internal
# implementation, without the need of an external program.
#CUEREADERSYNTAX=default
# Specify the program to convert a CUE sheet back to a CD disc ID for CDDB queries.
# Select between '/path/to/cue2discid' (provided as an example) or
# 'abcde.cue2discid', implemented internaly.
#CUE2DISCID=abcde.cue2discid
# Keep the wav files after encoding. Set it to "y" and remove "clean" from
# the list of default actions, since we purge the temp directory as default.
#KEEPWAVS=n
# Track padding: force abcde to pad tracks using 0, so every song uses a two
# digit entry. If set to "y", even a single song encoding outputs a file like
# 01.my_song.ext
PADTRACKS=y
# Define if you want abcde to be non-interactive.
# Keep in mind that there is no way to deactivate it right now in the command
# line, so setting this option makes abcde to be always non-interactive.
#INTERACTIVE=n
# Specify 'nice'ness of the encoder, the CD reader and the distmp3 proc.
# This is a relative 'nice'ness (that is, if the parent process is at a
# nice level of 12, and the ENCNICE is set to 3, then the encoder will
# run with an absolute nice value of 15. Note also, that setting these
# to be empty will result in some default niceness increase (4 in tcsh
# and 10 using the bsdutils' nice).
#ENCNICE=10
#READNICE=10
#DISTMP3NICE=10
# Paths of programs to use
# Encoders:
LAME=lame
#GOGO=gogo
#BLADEENC=bladeenc
#L3ENC=l3enc
#XINGMP3ENC=xingmp3enc
#MP3ENC=mp3enc
#VORBIZE=vorbize
#OGGENC=oggenc
#FLAC=flac
#SPEEXENC=speexenc
#MPCENC=mpcenc
#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
CDDISCID=cd-discid
#CDDBTOOL=cddb-tool
#EJECT=eject
#MD5SUM=md5sum
#DISTMP3=distmp3
#VORBISCOMMENT=vorbiscomment
#METAFLAC=metaflac
#NORMALIZE=normalize-audio
#CDSPEED=eject
#VORBISGAIN=vorbisgain
#MKCUE=mkcue
#MKTOC=cdrdao
#DIFF=diff
#WVGAIN=wvgain
#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
# accordingly. If HTTPGET is changed, the default options will be set,
# if HTTPGETOPTS is empty or not defined.
#HTTPGET=wget
# for fetch (FreeBSD): HTTPGETOPTS="-q -o -"
# for wget: HTTPGETOPTS="-q -nv -O -"
# for curl (MacOSX): HTTPGETOPTS="-f -s"
#HTTPGETOPTS="-q -O -"
# MP3:
# For the best LAME encoder options have a look at:
# <http://wiki.hydrogenaudio.org/index.php?title=LAME#Recommended_encoder_settings>
# 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='--preset extreme'
#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:
#VORBIZEOPTS=
#OGGENCOPTS=
# FLAC:
# 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', 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'
# M4A/AAC
# 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=
# 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="--non-std-genres"
# Other options:
# The variable CDPARANOIOPTS is also used by GNU's cd-paranoia,
# so use this when setting CDROMREADERSYNTX=libcdio.
CDPARANOIAOPTS="--never-skip=40"
#CDDA2WAVOPTS=
#PIRDOPTS="-p"
#CDDAFSOPTS="-f"
#CDDBTOOLOPTS=
#EJECTOPTS=
#DISTMP3OPTS=
#NORMALIZEOPTS=
#CDSPEEDOPTS="-x"
#CDSPEEDVALUE=""
#MKCUEOPTS=""
#MKTOCOPTS=""
#DIFFOPTS=""
#VORBISCOMMENTOPTS="-R"
#METAFLACOPTS="--no-utf8-convert"
# 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,replaygain,playlist,getalbumart,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
# 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
# The default action list (referenced as "default") is defined in the following
# comment:
#ACTIONS=cddb,read,encode,tag,move,clean
# CD device you want to read from
# It can be defined as a singletrack flac file, but since it might change from
# file to file it makes little sense to define it here.
#CDROM=/dev/cdrom
# If we are using the IDE bus, we need CDPARANOIACDROMBUS defined as "d"
# If we are using the ide-scsi emulation layer, we need to define a "g"
#CDPARANOIACDROMBUS="d"
# If you'd like to make a default location that overrides the current
# directory for putting mp3's, uncomment this.
OUTPUTDIR=`xdg-user-dir MUSIC`
# Or if you'd just like to put the temporary .wav files somewhere else
# you can specify that here
#WAVOUTPUTDIR=`pwd`
# 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", "mka", "spx", "vorbis", "wav", "wv", "ape"
OUTPUTTYPE="mp3"
# Output filename format - change this to reflect your inner desire to
# organize things differently than everyone else :)
# You have the following variables at your disposal:
# OUTPUT, GENRE, ALBUMFILE, ARTISTFILE, TRACKFILE, TRACKNUM and YEAR.
# Make sure to single-quote this variable. abcde will automatically create
# the directory portion of this filename.
# NOTICE: OUTPUTTYPE has been deprecated in the OUTPUTFORMAT string.
# Since multiple-output was integrated we always append the file type
# to the files. Remove it from your user defined string if you are getting
# files like ".ogg.ogg".
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
# Like OUTPUTFORMAT but for Various Artists discs.
VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
# Like OUTPUTFORMAT and VAOUTPUTFORMAT but for the ONEFILE rips.
#ONETRACKOUTPUTFORMAT=$OUTPUTFORMAT
ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
#VAONETRACKOUTPUTFORMAT=$VAOUTPUTFORMAT
VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'
# Define how many encoders to run at once. This makes for huge speedups
# on SMP systems. Defaults to 1. Equivalent to -j.
#MAXPROCS=2
# Support for systems with low disk space:
# n: Default parallelization (read entire CD in while encoding)
# y: No parallelization (rip, encode, rip, encode...)
#LOWDISK=n
# If set to y, enables batch mode normalization, which preserves relative
# volume differences between tracks of an album.
#BATCHNORM=n
# Enables nogap encoding when using the 'lame' encoder.
#NOGAP=y
# Set the playlist file location format. Uses the same variables and format
# as OUTPUTFORMAT. If the playlist is specified to be in a subdirectory, it
# will be created for you and the playlist will reference files from that
# subdirectory.
#PLAYLISTFORMAT='${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u'
# If you want to prefix every filename in a playlist with an arbitrary
# string (such as 'http://you/yourstuff/'), use this option
#PLAYLISTDATAPREFIX=''
#Like PLAYLIST{FORMAT,DATAPREFIX} but for Various Artists discs:
#VAPLAYLISTFORMAT='${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u'
#VAPLAYLISTDATAPREFIX=''
#This will give the playlist CR-LF line-endings, if set to "y".
#(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:
# 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 -e 's/^\.*//' -e 's/ /_/g' | tr -d ":><|*/\"'?[:cntrl:]"
}
#
# 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:
# By default we just transform uppercase to lowercase. Not much of a fancy
# function, with not much use, but one can disable it or just turn the first
# Uppercase.
#mungegenre ()
#{
# echo $CDGENRE | tr "[:upper:]" "[:lower:]"
#}
# 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
# your CD device.
# * 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
# Uncomment and substitute the ":" with your commands.
#pre_read ()
#{
#:
#}
# Custom post-read function
# By default it does nothing.
# You can set some things to get abcde function in better ways:
# * Store a copy of the CD TOC.
# KEEP IN MIND that executables included in post_read must be in your $PATH or
# you have to define them with full /path/to/binary
# Uncomment and substitute the ":" with your commands.
#post_read ()
#{
#:
#}
# post_encode
# By default it does nothing.
# You can set some things to get abcde function in better ways:
# * Move the resulting directory over the network
# * Compare results with a previously made run, for tests
# KEEP IN MIND that executables included in post_encode must be in your $PATH or
# you have to define them with full /path/to/binary
# Uncomment and substitute the ":" with your commands.
#post_encode ()
#{
#:
#}
# If you'd like to have abcde eject the cdrom after all the tracks have been
# read, uncomment the following line.
EJECTCD=y
# To encode on the remote machines foo, bar, baz, quux, and qiix, as well as
# on the local machine (requires distmp3 to be installed on local machine and
# distmp3host to be installed and running on all remote machines - see README)
#REMOTEHOSTS=foo,bar,baz,quux,qiix
# Set to 1,2, etc. to obtain some information about actions happening in the background
# Useful if you have a slow network or CDDB servers seem unresponsive.
EXTRAVERBOSE=2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment