Merge remote-tracking branch 'trunk'
authorClinton Ebadi <clinton@unknownlamer.org>
Thu, 12 Dec 2013 18:52:27 +0000 (13:52 -0500)
committerClinton Ebadi <clinton@unknownlamer.org>
Thu, 12 Dec 2013 18:52:27 +0000 (13:52 -0500)
abcde
abcde.1
abcde.conf
changelog
debian/control
debian/source/lintian-overrides [new file with mode: 0644]

diff --git a/abcde b/abcde
index 03dcfb0..051ad66 100755 (executable)
--- 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 <type1[,type2]...>"
-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 <level>"
@@ -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 (file)
--- 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),
index afeba9e..63ee328 100644 (file)
@@ -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.
 #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.
 #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
 #HTTPGETOPTS="-q -O -"
 
 # MP3:
-#LAMEOPTS=
+# 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
+# with a target bitrate of ~245 Kbps and a bitrate range of 220...260 Kbps.
+#LAMEOPTS='-V 0'
 #TOOLAMEOPTS=
 #GOGOOPTS=
 #BLADEENCOPTS=
 #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=
 # 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.
index 01ad987..8ab1584 100644 (file)
--- 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
 
index d166810..21d713f 100644 (file)
@@ -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 (file)
index 0000000..73723eb
--- /dev/null
@@ -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"