From: Clinton Ebadi Date: Thu, 12 Dec 2013 18:52:27 +0000 (-0500) Subject: Merge remote-tracking branch 'trunk' X-Git-Url: https://git.hcoop.net/clinton/abcde.git/commitdiff_plain/e1b59b02e02ef1b397d3c09c633f83c5a83af5fb?hp=dde7052dd4500a1c4e0570db71365211ccfd7dfd Merge remote-tracking branch 'trunk' --- diff --git a/abcde b/abcde index 03dcfb0..051ad66 100755 --- a/abcde +++ b/abcde @@ -51,7 +51,7 @@ echo "-m Modify playlist to include CRLF endings, to comply with some player echo "-n No lookup. Don't query CDDB, just create and use template" echo "-N Noninteractive. Never prompt for anything" echo "-o " -echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a). Defaults to vorbis" +echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus). Defaults to vorbis" echo "-p Pad track numbers with 0's (if less than 10 tracks)" echo "-P Use UNIX pipes to read+encode without wav files" echo "-q " @@ -433,8 +433,8 @@ getcddbinfo() gettracknum() { if [ -n "$STARTTRACKNUMBER" ] ; then - # Get the trackpadding from the current track - CURRENTTRACKPADDING=$(echo -n $UTRACKNUM | wc -c) + # Get the trackpadding from the current track, also trim whitespace for MacOSX + CURRENTTRACKPADDING=$(echo -n $UTRACKNUM | wc -c | tr -d ' ') TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - $FIRSTTRACK )) else TRACKNUM=${UTRACKNUM} @@ -515,6 +515,9 @@ do_replaygain() vorbis|ogg) OUTPUT=$OGGOUTPUTCONTAINER ;; + opus) + OUTPUT=$OPUSOUTPUTCONTAINER + ;; flac) OUTPUT=$FLACOUTPUTCONTAINER ;; @@ -824,13 +827,18 @@ do_tag () eyed3) # FIXME # track numbers in mp3 come with 1/10, so we cannot # happily substitute them with $TRACKNUM + # FIXME as well! # Older versions of eyeD3 (< 0.7.0) expect + # --set-encoding and --set-text-frame so perhaps some version + # sniffing would be useful. Might also be better to simply cut + # ties with the older eyeD3... Andrew. + # eyeD3 --comment syntax is also different in < and >= 0.7.0 run_command tagtrack-$OUTPUT-$1 nice $ENCNICE $TAGGER $TAGGEROPTS \ - --comment=::"$COMMENTOUTPUT" -A "$DALBUM" \ + --comment="$COMMENTOUTPUT" -A "$DALBUM" \ -a "$TRACKARTIST" -t "$TRACKNAME" -Y "$CDYEAR" \ -G "$GENREID" -n "${TRACKNUM:-$1}" \ ${TRACKNUM:+-N "$TRACKS"} \ - ${ENCODING:+--set-encoding="$ENCODING"} \ - ${TPE2:+--set-text-frame=TPE2:"$TPE2"} \ + ${ENCODING:+--encoding="$ENCODING"} \ + ${TPE2:+--text-frame=TPE2:"$TPE2"} \ "$ABCDETEMPDIR/track$1.$OUTPUT" ;; # FIXME # Still not activated... @@ -898,6 +906,10 @@ do_tag () ;; esac ;; + opus) + run_command tagtrack-$OUTPUT-$1 true + ;; + flac) ( echo ARTIST="$TRACKARTIST" @@ -1018,6 +1030,9 @@ do_encode () vorbis|ogg) TEMPARG="PIPE_$OGGENCODERSYNTAX" ;; + opus) + TEMPARG="PIPE_$OPUSENCODERSYNTAX" + ;; flac) TEMPARG="PIPE_$FLACENCODERSYNTAX" ;; @@ -1060,6 +1075,9 @@ do_encode () vorbis|ogg) OUTPUT=$OGGOUTPUTCONTAINER ;; + opus) + OUTPUT=$OPUSOUTPUTCONTAINER + ;; flac) OUTPUT=$FLACOUTPUTCONTAINER ;; @@ -1115,6 +1133,32 @@ do_encode () ;; esac ;; + opus) + case "$2" in + %local*%) + case "$OPUSENCODERSYNTAX" in + opusenc) + + if [ "$(eval echo ${COMMENT})" != "" ]; then + case "$COMMENT" in + *=*) ;; + *) COMMENT="COMMENT=$COMMENT" ;; + esac + fi + # Tag the file at encode time, as it can't be done after encoding. + if [ "$DOTAG" = "y" ]; then + $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS --artist "$TRACKARTIST" --comment album="$DALBUM" --title "$TRACKNAME" --comment track="$1" --comment genre="$CDGENRE" --comment year="$CDYEAR" ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT" + else + $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS "$IN" "$OUT" + fi + ;; + esac + ;; + *) + $RUN_COMMAND nice $DISTMP3NICE $DISTMP3 $DISTMP3OPTS "$2" "$IN" "$OUT" >/dev/null 2>&1 + ;; + esac + ;; flac) case "$2" in %local*%) @@ -1151,7 +1195,10 @@ do_encode () ;; m4a) # Tag the file at encode time, as it can't be done after encoding. - if [ "$DOTAG" = "y" ]; then + if [ "$AACENC" = "neroAacEnc" ] ; then + DOTAG=y + $RUN_COMMAND nice $ENCNICE $AACENC $AACENCOPTS -if "$IN" -of "$OUT" + elif [ ! "$DOTAG" = "y" ]; then $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" -o "$OUT" "$IN" else @@ -1394,6 +1441,9 @@ do_move () vorbis|ogg) OUTPUT=$OGGOUTPUTCONTAINER ;; + opus) + OUTPUT=$OPUSOUTPUTCONTAINER + ;; flac) OUTPUT=$FLACOUTPUTCONTAINER ;; @@ -1475,6 +1525,9 @@ do_playlist () vorbis|ogg) OUTPUT=$OGGOUTPUTCONTAINER ;; + opus) + OUTPUT=$OPUSOUTPUTCONTAINER + ;; flac) OUTPUT=$FLACOUTPUTCONTAINER ;; @@ -1702,7 +1755,7 @@ abcde.mkcue () { shift 2 echo REM DISCID $DISCID - echo FILE \""$CUEWAVEFILE"\" WAVE + echo FILE \""$CUEWAVFILE"\" WAVE if [ $1 -ne 150 ] && [ $MODE = "PREGAP" ] ; then OFFSET=$1 @@ -2900,6 +2953,7 @@ do_cdread () # Add a variable to check if tracks are provided in command line and if not, use "0-" to rip the tracks READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;; cdda2wav | icedax) READTRACKNUMS="$FIRSTTRACK+$LASTTRACK" ;; + pird) READTRACKNUMS="$FIRSTTRACK..$LASTTRACK" ;; *) echo "abcde error: $CDROMREADERSYNTAX does not support ONETRACK mode" exit 1 ;; esac @@ -2980,6 +3034,12 @@ do_cdread () else nice $READNICE $CDROMREADER -d "$CDROM" -v $UTRACKNUM "$FILEARG" fi ;; + pird) + if [ "$REDIR" = "y" ]; then + nice $READNICE $CDROMREADER -j ${READTRACKNUMS:-$UTRACKNUM} "$CDROM" "$FILEARG" + else + nice $READNICE $CDROMREADER -j ${READTRACKNUMS:-$UTRACKNUM} "$CDROM" "$PIPERIPPER_pird" > "$FILEARG" + fi ;; cddafs) # Find the track's mounted path REALTRACKNUM=$(expr $UTRACKNUM + 0) @@ -3146,6 +3206,7 @@ ENCODERSYNTAX=default MP3ENCODERSYNTAX=default OGGENCODERSYNTAX=default +OPUSENCODERSYNTAX=default FLACENCODERSYNTAX=default SPEEXENCODERSYNTAX=default MPCENCODERSYNTAX=default @@ -3196,6 +3257,8 @@ MP3ENC=mp3enc # ogg VORBIZE=vorbize OGGENC=oggenc +#opus +OPUSENC=opusenc # flac FLAC=flac # speex @@ -3216,6 +3279,7 @@ CDPARANOIA=cdparanoia CDDA2WAV=icedax DAGRAB=dagrab CDDAFS=cp +PIRD=pird CDDISCID=cd-discid CDDBTOOL=cddb-tool MUSICBRAINZ=abcde-musicbrainz-tool @@ -3246,6 +3310,8 @@ MP3GAINOPTS="-a -k" VORBIZEOPTS= OGGENCOPTS= VORBISGAINOPTS="--album" +#opus +OPUSENCOPTS= # flac FLACOPTS= FLACGAINOPTS="--add-replay-gain" @@ -3257,7 +3323,10 @@ MPCENCOPTS= AACENCOPTS= ID3OPTS= -EYED3OPTS="--set-encoding=utf16-LE" +# FIXME # Older versions of eyeD3 (< 0.7.0) expect --set-encoding=utf16-LE +# so perhaps some version sniffing would be useful. Or perhaps it might be +# better to simply cut ties with the older eyeD3... Andrew. +EYED3OPTS="--encoding utf16" CDPARANOIAOPTS= CDDA2WAVOPTS= DAGRABOPTS= @@ -3282,10 +3351,10 @@ ACTIONS=cddb,read,encode,tag,move,clean # This option is basically for Debian package dependencies: # List of preferred outputs - by default, run with whatever we have in the path -DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:toolame,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac +DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:toolame,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac:opus # List of preferred cdromreaders - by default, run whichever we have in the path -DEFAULT_CDROMREADERS="cdparanoia icedax cdda2wav" +DEFAULT_CDROMREADERS="cdparanoia icedax cdda2wav pird" # List of quality levels associated with the encoders: DEFAULT_QUALITY_XLO="oggenc:-q -1,lame:-q 9,speex:--quality 1,m4a:" @@ -3308,6 +3377,8 @@ elif [ X$(uname) = "XDarwin" ] ; then # We should have diskutil in OSX, but let's be sure... NEEDDISKUTIL=y CDROMREADERSYNTAX=cddafs + # We won't find the eject program in OSX, and doing checkexec will fail further below... + unset EJECT elif [ X$(uname) = "XOpenBSD" ] ; then HTTPGET=wget MD5SUM=md5 @@ -3510,6 +3581,7 @@ if [ "$ONETRACK" = "y" ]; then flac) ;; cdparanoia) ;; cdda2wav | icedax) ;; + pird) ;; *) log error "$CDROMREADERSYNTAX does not support ONETRACK mode" exit 1 ;; esac @@ -3704,6 +3776,10 @@ case "$CDROMREADERSYNTAX" in CDROMREADER="$DAGRAB" CDROMREADEROPTS="$DAGRABOPTS" ;; + pird) + CDROMREADER="$PIRD" + CDROMREADEROPTS="$PIRDOPTS" + ;; cddafs) CDROMREADER="$CDDAFS" CDROMREADEROPTS="$CDDAFSOPTS" @@ -3727,6 +3803,7 @@ if echo "$OUTPUTTYPE" | grep ":" > /dev/null 2>&1 ; then for OUTPUT in "$(echo "$OUTPUTTYPE" | tr \ \|| tr , \ | tr \| \ )"; do case "$OUTPUT" in vorbis:*|ogg:*) OGGENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;; + opus:*) OPUSENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;; mp3:*) MP3ENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;; flac:*) FLACENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;; spx:*) SPEEXENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;; @@ -3754,6 +3831,10 @@ do [ "$DOREPLAYGAIN" = "y" ] && NEEDVORBISGAIN=y OGGOUTPUTCONTAINER=ogg ;; + opus) + [ "$OPUSENCODERSYNTAX" = "default" ] && OPUSENCODERSYNTAX=opusenc + OPUSOUTPUTCONTAINER=opus + ;; mp3) [ "$MP3ENCODERSYNTAX" = "default" ] && MP3ENCODERSYNTAX=lame [ "$DOTAG" = "y" ] && NEEDTAGGER=y @@ -3830,6 +3911,12 @@ case "$OGGENCODERSYNTAX" in OGGENCODER="$OGGENC" ;; esac +case "$OPUSENCODERSYNTAX" in + opusenc) + OPUSENCODEROPTS="${OPUSENCODEROPTSCLI:-$OPUSENCOPTS}" + OPUSENCODER="$OPUSENC" + ;; +esac case "$FLACENCODERSYNTAX" in flac) FLACENCODEROPTS="${FLACENCODEROPTSCLI:-$FLACOPTS}" @@ -3943,6 +4030,7 @@ fi if [ X"$CDSPEEDVALUE" != "X" ] && [ "$DOREAD" = "y" ]; then case "$CDROMREADERSYNTAX" in cdparanoia|debug) CDROMREADEROPTS="$CDPARANOIAOPTS -S $CDSPEEDVALUE" ;; + pird) CDROMREADEROPTS="$PIRDOPTS -s $CDSPEEDVALUE" ;; ### FIXME ### translate "cue2discid" from python to bash flac) NEEDMETAFLAC=y ; NEEDCUE2DISCID=y ; CDSPEEDVALUE="" ;; *) NEEDCDSPEED=y ;; @@ -3956,12 +4044,14 @@ fi PIPERIPPER_cdparanoia="-" PIPERIPPER_debug="-" PIPERIPPER_flac="-c " +PIPERIPPER_pird="-" # Encoders with USEPIPE support # FIXME # Include here all the encoders we can figure out support pipes PIPE_lame="-" PIPE_bladeenc="-" PIPE_oggenc="-" +PIPE_opusenc="-" PIPE_flac="-" # Figure out if we can use pipes with the ripper/encoder combination @@ -3973,6 +4063,8 @@ if [ "$USEPIPES" = "y" ]; then PIPEENCODERSVARCHECK="PIPE_$MP3ENCODERSYNTAX" ;; vorbis|ogg) PIPEENCODERSVARCHECK="PIPE_$OGGENCODERSYNTAX" ;; + opus) + PIPEENCODERSVARCHECK="PIPE_$OPUSENCODERSYNTAX" ;; flac) PIPEENCODERSVARCHECK="PIPE_$FLACENCODERSYNTAX" ;; spx) @@ -4000,7 +4092,7 @@ fi # Make sure a buncha things exist for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \ - $OGGENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \ + $OGGENCODER $OPUSENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \ $AACENCODER $CDDBTOOL \ ${NEEDATOMICPARSLEY+$ATOMICPARSLEY} \ ${NEEDHTTPGET+$HTTPGET} ${NEEDDISTMP3+$DISTMP3} \ @@ -4105,6 +4197,7 @@ fi if [ X"$CDSPEEDVALUE" != "X" ]; then case "$CDROMREADERSYNTAX" in cdparanoia|debug) ;; + pird) ;; flac) ;; *) do_cdspeed ;; esac @@ -4218,7 +4311,7 @@ post_read # We are now finished with the cdrom - it can be safely ejected. Note that # abcde will not have completed yet. -if [ "$EJECTCD" = "y" ] && [ -x $(which $EJECT) ]; then +if [ "$EJECTCD" = "y" ]; then # We check if the disk we are processing is actually the disk inside the # CD tray. If not, we do not eject the CD, since it might be so that the # user ejected it manually. @@ -4235,7 +4328,7 @@ if [ "$EJECTCD" = "y" ] && [ -x $(which $EJECT) ]; then $eject $EJECTOPTS $cd elif [ X"$(uname)" = X"Darwin" ] ; then diskutil eject ${CDROM#/dev/} 0 - else + elif [ -x $(which $EJECT) ]; then $EJECT $EJECTOPTS "$CDROM" fi #fi diff --git a/abcde.1 b/abcde.1 index c51c4c1..522254b 100644 --- a/abcde.1 +++ b/abcde.1 @@ -10,7 +10,7 @@ tagging or commenting it, is very involved. .BR abcde is designed to automate this. It will take an entire CD and convert it into a compressed audio format - Ogg/Vorbis, MPEG Audio Layer III, Free Lossless -Audio Codec (FLAC), Ogg/Speex, MPP/MP+(Musepack) and/or M4A (AAC) format(s). +Audio Codec (FLAC), Ogg/Speex, MPP/MP+(Musepack), M4A (AAC) or Opus format(s). With one command, it will: .TP .B * @@ -23,7 +23,7 @@ Grab an audio track (or all the audio CD tracks) from your CD Normalize the volume of the individual file (or the album as a single unit) .TP .B * -Compress to Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack) and/or M4A format(s), all in one CD read +Compress to Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack), M4A and/or Opus format(s), all in one CD read .TP .B * Comment or ID3/ID3v2 tag @@ -136,8 +136,8 @@ Non interactive mode. Do not ask anything from the user. Just go ahead. .TP .B \-o [filetype][:filetypeoptions] Select output type. Can be "vorbis" (or "ogg"), "mp3", "flac", "spx", "mpc", -"m4a" or "wav". Specify a comma-delimited list of output types to obtain all -specified types. See the OUTPUTTYPE configuration variable. One can pass +"m4a", "wav" or "opus". Specify a comma-delimited list of output types to obtain +all specified types. See the OUTPUTTYPE configuration variable. One can pass options to the encoder for a specific filetype on the command line separating them with a colon. The options must be escaped with double-quotes. .TP @@ -214,11 +214,11 @@ A list of tracks you want \fBabcde\fR to process. If this isn't specified, \fBab 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. .SH OUTPUT -Each track is, by default, placed in a separate file named after the track -in a subdirectory named after the artist under the current directory. -This can be modified using the OUTPUTFORMAT and VAOUTPUTFORMAT -variables in your \fIabcde.conf\fR. Each file is given an extension identifying -its compression format, 'vorbis' for '.ogg', '.mp3', '.flac', '.spx', '.mpc', '.aac' or '.wav'. +Each track is, by default, placed in a separate file named after the track in a +subdirectory named after the artist under the current directory. This can be +modified using the OUTPUTFORMAT and VAOUTPUTFORMAT variables in your +\fIabcde.conf\fR. Each file is given an extension identifying its compression +format, 'vorbis' for '.ogg', '.mp3', '.flac', '.spx', '.mpc', '.aac', '.wav' or '.opus'. .SH CONFIGURATION \fBabcde\fR sources two configuration files on startup - \fI/etc/abcde.conf\fR and \fI$HOME/.abcde.conf\fR, in that order. @@ -318,8 +318,12 @@ Specifies the style of encoder to use for MPP/MP+ (Musepack) encoder. At this point we only have \'mpcenc\' available, from musepack.net. .TP .B AACENCODERSYNTAX -Specifies the style of encoder to use for M4A (AAC) encoder. At this point we -only support \'faac\', so \'default\' points to it. +Specifies the style of encoder to use for M4A (AAC) encoder. We support \'faac\' +as \'default\' but support is there for neroAacEnc as well. +.TP +.B OPUSENCODERSYNTAX +Specifies the style of encoder to use for the Opus encoder. At this point only +\'opusenc\' is available for Opus encoding. .TP .B NORMALIZERSYNTAX Specifies the style of normalizer to use. Valid options are \'default\' @@ -357,8 +361,8 @@ with \fBdistmp3\fR (DISTMP3NICE). .B PATHNAMES The following configuration file options specify the pathnames of their respective utilities: LAME, TOOLAME, GOGO, BLADEENC, L3ENC, XINGMP3ENC, MP3ENC, -VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, AACEND, ID3, EYED3, EYED3, METAFLAC, -CDPARANOIA, CDDA2WAV, CDDAFS, CDDISCID, CDDBTOOL, EJECT, MD5SUM, DISTMP3, +VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, AACENC, OPUSENC, ID3, EYED3, METAFLAC, +CDPARANOIA, CDDA2WAV, PIRD, CDDAFS, CDDISCID, CDDBTOOL, EJECT, MD5SUM, DISTMP3, VORBISCOMMENT, NORMALIZE, CDSPEED, MP3GAIN, VORBISGAIN, MPPGAIN, MKCUE, MKTOC, CUE2DISCID (see option "\-X"), DIFF and HTTPGET. .TP @@ -366,10 +370,10 @@ CUE2DISCID (see option "\-X"), DIFF and HTTPGET. If you wish to specify command-line options to any of the programs \fBabcde\fR uses, set the following configuration file options: LAMEOPTS, TOOLAMEOPTS, GOGOOPTS, BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS, OGGENCOPTS, -FLACOPTS, SPEEXENCOPTS, MPCENCOPTS, AACENCOPTS, ID3OPTS, EYED3OPTS, MP3GAINOPTS, -CDPARANOIAOPTS, CDDA2WAVOPTS, CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS, -NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS, VORBISCOMMMENTOPTS, METAFLACOPTS, -DIFFOPTS, FLACGAINOPTS, VORBISGAINOPTS and HTTPGETOPTS. +FLACOPTS, SPEEXENCOPTS, MPCENCOPTS, AACENCOPTS, OPUSENCOPTS, ID3OPTS, EYED3OPTS, +MP3GAINOPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, PIRDOPTS, CDDAFSOPTS, CDDBTOOLOPTS, +EJECTOPTS, DISTMP3OPTS, NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS, VORBISCOMMMENTOPTS, +METAFLACOPTS, DIFFOPTS, FLACGAINOPTS, VORBISGAINOPTS and HTTPGETOPTS. .TP .B CDSPEEDVALUE Set the value of the CDROM speed. The default is to read the disc as fast as @@ -400,9 +404,9 @@ over 100MB for a machine that can encode music as fast as it can read it). Specifies the encoding format to output, as well as the default extension and encoder. Defaults to "vorbis". Valid settings are "vorbis" (or "ogg") (Ogg/Vorbis), "mp3" (MPEG-1 Audio Layer III), "flac" (Free Lossless Audio -Codec), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack)), "m4a" (for M4A (AAC)) or -"wav" (Microsoft Waveform). Values like "vorbis,mp3" encode the tracks in both -Ogg/Vorbis and MP3 formats. For example +Codec), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack)), "m4a" (for M4A (AAC)), +"wav" (Microsoft Waveform) or "opus" (Opus Interactive Audio Codec). Values +like "vorbis,mp3" encode the tracks in both Ogg/Vorbis and MP3 formats. For example .br OUTPUTTYPE=vorbis,flac .br @@ -551,10 +555,10 @@ Will extract the files contained in singletrack using the embedded cuesheet. \fBabcde\fR requires the following backend tools to work: .TP .B * -An Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack) or M4A encoder (oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mpcenc, faac) +An Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack), M4A encoder or Opus encoder (oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mpcenc, faac, neroAacEnc, opusenc). .TP .B * -An audio CD reading utility (cdparanoia, icedax, cdda2wav, dagrab) +An audio CD reading utility (cdparanoia, icedax, cdda2wav, pird, dagrab) .TP .B * cd-discid, a CDDB DiscID reading program. @@ -583,6 +587,7 @@ information about the CD. .BR cdparanoia (1), .BR icedax (1), .BR cdda2wav (1), +.BR pird (1), .BR dagrab (1), .BR normalize-audio (1), .BR oggenc (1), diff --git a/abcde.conf b/abcde.conf index afeba9e..63ee328 100644 --- a/abcde.conf +++ b/abcde.conf @@ -60,7 +60,9 @@ # flac - the only supported for FLACENCODERSYNTAX at the moment # speexenc - the only encoder for SPEEXENCODERSYNTAX # mpcenc - encoder for MPCENCODERSYNTAX -# default is a valid option for oggenc, lame, flac, speexenc and mpcenc. +# 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. @@ -70,13 +72,14 @@ #SPEEXENCODERSYNTAX=default #MPCENCODERSYNTAX=default #AACENCODERSYNTAX=default +#OPUSENCODERSYNTAX=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', 'cddafs' (Mac OS X only) and 'flac'. +# 'icedax', 'cdda2wav', 'dagrab', 'pird', 'cddafs' (Mac OS X only) and 'flac'. #CDROMREADERSYNTAX=cdparanoia # CUE reader syntax for the CUE reader program to use. @@ -128,11 +131,13 @@ #SPEEXENC=speexenc #MPCENC=mpcenc #AACENC=faac +#OPUSENC=opusenc #ID3=id3 #EYED3=eyeD3 #CDPARANOIA=cdparanoia #CDDA2WAV=icedax +#PIRD=pird #CDDAFS=cp #CDDISCID=cd-discid #CDDBTOOL=cddb-tool @@ -160,7 +165,11 @@ #HTTPGETOPTS="-q -O -" # MP3: -#LAMEOPTS= +# For the best LAME encoder options have a look at: +# +# The suggested '-V 0' below 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= #GOGOOPTS= #BLADEENCOPTS= @@ -185,12 +194,25 @@ #MPCENCOPTS= # M4A/AAC -#AACENCOPTS= +#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' + +# OPUS +# For the encoder options look at: opusenc -h. +#OPUSENCOPTS='--bitrate 128' #ID3OPTS= #EYED3OPTS="--set-encoding=utf16-LE" #CDPARANOIAOPTS= #CDDA2WAVOPTS= +#PIRDOPTS="-p" #CDDAFSOPTS="-f" #CDDBTOOLOPTS= #EJECTOPTS= @@ -236,14 +258,16 @@ # you can specify that here #WAVOUTPUTDIR=`pwd` -# OUTPUTTYPE can be either "ogg", "mp3", "flac" or "spx", or a combination -# of them separated with ",": "ogg,mp3". +# 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" #OUTPUTTYPE=ogg # 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, and TRACKNUM. +# 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. diff --git a/changelog b/changelog index 01ad987..8ab1584 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,12 @@ abcde 2.5.5 UNRELEASED patch. Closes: #687038 in Debian * Switch from Musepack SV7 to SV8. Thanks to Andrew Strong for the patch. + * Allow aac encoding with neroAacEnc. Thanks to atheren for the patch. + Closes issue 8. + * Allow opus encoding with opusenc. Thanks to Tomasz Golinski for the + patch. Closes issue 70. + * Fix typo: s/CUEWAVEFILE/CUEWAVFILE/ so that abcde.mkcue should now + produce working cue files. Closes issue 78. -- Steve McIntyre <93sam@debian.org> Tue, 27 Nov 2012 17:34:55 +0000 diff --git a/debian/control b/debian/control index d166810..21d713f 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Vcs-Svn: http://abcde.googlecode.com/svn/trunk/ Package: abcde Architecture: all -Depends: ${misc:Depends}, cd-discid, wget, cdparanoia | icedax, vorbis-tools (>= 1.0beta4-1) | lame | flac | bladeenc | speex | musepack-tools +Depends: ${misc:Depends}, cd-discid, wget, cdparanoia | icedax, vorbis-tools (>= 1.0beta4-1) | lame | flac | bladeenc | speex | musepack-tools | opus-tools Recommends: vorbis-tools, libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, mailx Suggests: eject, distmp3, id3 (>= 0.12), id3v2, eyed3, normalize-audio, vorbisgain, mkcue, mp3gain, atomicparsley Description: A Better CD Encoder diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 0000000..73723eb --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1,3 @@ +abcde source: description-synopsis-starts-with-article +# The description is an expansion of the package name, which just +# happens to begin with an "article"