AAC encoding with fhgaacenc and wine
authorAndrew Strong <andrew.david.strong@gmail.com>
Fri, 10 Jul 2015 02:21:42 +0000 (12:21 +1000)
committerAndrew Strong <andrew.david.strong@gmail.com>
Fri, 10 Jul 2015 02:21:42 +0000 (12:21 +1000)
Tagging is with AtomicParsley, welcome back into abcde :).

FAQ
abcde
abcde.1
abcde.conf
changelog

diff --git a/FAQ b/FAQ
index 86f3778..0e94414 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -427,12 +427,12 @@ A. You can run USEPIPES in either of two ways:
 Q. Do all rippers and encoders work with USEPIPES?
 A. No :). Keep in mind that every ripper and encoder differs from in each
    other in the way they interact with pipes and not all rippers and encoders
-   will use or understand the '-o' and '-' options. Currently (May 2015) the
+   will use or understand the '-o' and '-' options. Currently (July 2015) the
    following rippers and encoders work:
 
    Rippers:  cdparanoia, debug, libcdio, cdda2wav, flac, pird.
    Encoders: mp3enc, lame, bladeenc, oggenc, opusenc, flac, speexenc,
-             mpcenc, wavpack, faac, neroAacEnc, fdkaac, qaac.
+             mpcenc, wavpack, faac, neroAacEnc, fdkaac, qaac, fhgaacenc.
 
 Q. Can I add a ripper or encoder which is not supported?
 A. Sure! If you plan to use a ripper or encoder which is not supported you
diff --git a/abcde b/abcde
index 6b4dc5e..6532ace 100755 (executable)
--- a/abcde
+++ b/abcde
@@ -993,6 +993,13 @@ do_tag ()
                                qaac)
                                        run_command tagtrack-$OUTPUT-$1 true   
                                        ;;
+                               fhgaacenc)
+                                       # Tag post encode with AtomicParsley. Note that previous problems with seg fault when using
+                                       # 'overWrite' cannot be reproduced with newer versions: https://bitbucket.org/wez/atomicparsley
+                                       run_command tagtrack-$OUTPUT-$1 nice $ENCNICE "$ATOMICPARSLEY" "$ABCDETEMPDIR/track$1.m4a" \
+                                       --artist="$TRACKARTIST" --album="$DALBUM" --title="$TRACKNAME" --tracknum=${TRACKNUM:-$1} \
+                                       --year="$CDYEAR" --genre="$CDGENRE" --comment="$COMMENT" $ATOMICPARSLEYOPTS --overWrite
+                                       ;;
                        esac
                        ;;
                wav)
@@ -1264,6 +1271,9 @@ do_encode ()
                                                        $RUN_COMMAND nice $EFFECTIVE_NICE $WINE $AACENCODER $AACENCODEROPTS -o "$OUT" "$IN"
                                                fi
                                                ;;
+                                       fhgaacenc)
+                                               $RUN_COMMAND nice $EFFECTIVE_NICE $WINE $AACENCODER $AACENCODEROPTS "$IN" "$OUT"
+                                               ;;
                                        esac
                                ;;
                        wav)
@@ -3446,6 +3456,7 @@ FDKAAC=fdkaac
 # as it is a Windows application being run through Wine. More
 # detailed notes in the sample abcde.conf file in the abcde tarball.
 QAAC=qaac
+FHGAACENC=fhgaacenc
 
 ID3=id3
 ID3V2=id3v2
@@ -3453,6 +3464,7 @@ EYED3=eyeD3
 VORBISCOMMENT=vorbiscomment
 METAFLAC=metaflac
 NEROAACTAG=neroAacTag
+ATOMICPARSLEY=AtomicParsley
 
 WINE=wine
 CDPARANOIA=cdparanoia
@@ -3525,9 +3537,11 @@ NEROACENCOPTS=
 # we set bitrate here.
 FDKAACENCOPTS='--bitrate 192k'
 QAACENCOPTS=
+FHGAACENCOPTS=
 
 ID3OPTS=
 EYED3OPTS=""
+ATOMICPARSLEYOPTS=
 CDPARANOIAOPTS=
 PIRDOPTS=
 CDDA2WAVOPTS=
@@ -4096,6 +4110,7 @@ do
                        [ "$DOTAG" = "y" ] && CHECKFAACBUILD=y
                        [ "$AACENCODERSYNTAX" = "neroAacEnc" ] && NEEDNEROAACTAG=y
                        [ "$AACENCODERSYNTAX" = "qaac" ] && NEEDWINE=y
+                       [ "$AACENCODERSYNTAX" = "fhgaacenc" ] && NEEDWINE=y && NEEDATOMICPARSLEY=y
                        ;;
                wav)
                        if [ "$KEEPWAVS" = "y" ]; then
@@ -4238,6 +4253,15 @@ case "$AACENCODERSYNTAX" in
                        AACENCODER="$QAAC"
                fi
                ;;
+       fhgaacenc)
+               if [ -z "$FHGAACENCOPTS" ] && [ -n "$AACENCOPTS" ]; then
+                       AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
+                       AACENCODER="$FHGAACENC"
+               else
+                       AACENCODEROPTS="${AACENCODEROPTSCLI:-$FHGAACENCOPTS}"
+                       AACENCODER="$FHGAACENC"
+               fi
+               ;;
 esac
 
 # and which tagger
@@ -4379,6 +4403,7 @@ PIPE_mpcenc="-"
 PIPE_wavpack="-"
 PIPE_faac="-"
 PIPE_qaac="-"
+PIPE_fhgaacenc="-"
 # Both neroAacEnc and fdkaac seem to manage without the addition of
 # the 'ignorelength' option in PIPE_$AACENCODERSYNTAX when piping
 # in this manner.                                           Andrew.
@@ -4437,7 +4462,7 @@ for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \
        ${NEEDMPCGAIN+$MPCGAIN} ${NEEDCUEREADER+$CUEREADER} \
        ${NEEDWVGAIN+WVGAIN} ${NEEDAPETAG+$APETAG} \
        ${NEEDCUE2DISCID+$CUE2DISCID} ${NEEDNEROAACTAG+$NEROAACTAG} \
-       ${NEEDGLYRC+$GLYRC} ${NEEDWINE+$WINE}
+       ${NEEDGLYRC+$GLYRC} ${NEEDWINE+$WINE} ${NEEDATOMICPARSLEY+$ATOMICPARSLEY}
 do
        checkexec "$X"
 done
diff --git a/abcde.1 b/abcde.1
index 8ce75a2..953ddad 100644 (file)
--- a/abcde.1
+++ b/abcde.1
@@ -329,9 +329,9 @@ point we only have \'mpcenc\' available, from musepack.net.
 .TP
 .B AACENCODERSYNTAX
 Specifies the style of encoder to use for M4A (AAC) encoder. We support \'faac\'
-as \'default\' as well as higher quality audio with neroAacEnc, fdkaac and qaac.
+as \'default\' as well as higher quality audio with neroAacEnc, fdkaac, qaac and fhgaacenc.
 If qaac or the Open Source refalac are used it is also possible to generate Apple
-Lossless Audio Codec (alac) files. Note that qaac and refalac are Windows applications
+Lossless Audio Codec (alac) files. Note that qaac, refalac and fhgaacenc are Windows applications
 which require Wine to be installed.
 .TP
 .B WVENCODERSYNTAX
@@ -386,7 +386,7 @@ VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, WVENC, APENC, OPUSENC, ID3, EYED3,
 METAFLAC, CDPARANOIA, CD_PARANOIA, CDDA2WAV, PIRD, CDDAFS, CDDISCID, CDDBTOOL, 
 EJECT, MD5SUM, DISTMP3, VORBISCOMMENT, NORMALIZE, CDSPEED, MP3GAIN, VORBISGAIN, 
 MPCGAIN, MKCUE, MKTOC, CUE2DISCID (see option "\-X"), DIFF, HTTPGET, GLYRC,
-IDENTIFY, DISPLAYCMD, CONVERT, QAAC and WINE.
+IDENTIFY, DISPLAYCMD, CONVERT, QAAC, WINE, FHGAACENC and ATOMICPARSLEY.
 .TP
 .B COMMAND-LINE OPTIONS
 If you wish to specify command-line options to any of the programs \fBabcde\fR uses,
@@ -396,7 +396,8 @@ OGGENCOPTS, FLACOPTS, SPEEXENCOPTS, MPCENCOPTS, FAACENCOPTS, NEROAACENCOPTS, FDK
 OPUSENCOPTS, ID3OPTS, EYED3OPTS, MP3GAINOPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, PIRDOPTS, 
 CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS, NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS, 
 VORBISCOMMMENTOPTS, METAFLACOPTS, DIFFOPTS, FLACGAINOPTS, VORBISGAINOPTS, HTTPGETOPTS,
-GLYRCOPTS, IDENTIFYOPTS, CONVERTOPTS, DISPLAYCMDOPTS and QAACENCOPTS.
+GLYRCOPTS, IDENTIFYOPTS, CONVERTOPTS, DISPLAYCMDOPTS, QAACENCOPTS, FHGAACENCOPTS and
+ATOMICPARSLEYOPTS.
 .TP
 .B CDSPEEDVALUE
 Set the value of the CDROM speed. The default is to read the disc as fast as
index a3e0ade..8c76f08 100644 (file)
@@ -64,7 +64,7 @@
 # mpcenc - encoder for MPCENCODERSYNTAX
 # wavpack - encoder for WVENCODERSYNTAX
 # mac - for APENCODERSYNTAX
-# faac, neroAacEnc, fdkaac, qaac - for AACENCODERSYNTAX
+# faac, neroAacEnc, fdkaac, qaac, fhgaacenc - for AACENCODERSYNTAX
 # opusenc - for OPUSENCODERSYNTAX
 # default is a valid option for oggenc, lame, flac, speexenc, mpcenc, wavpack, faac and opus.
 # Currently this affects the default location of the binary, the variable
 #FDKAAC=fdkaac
 #OPUSENC=opusenc
 
-# The path for qaac can be problematic as abcde cannot cope
-# with the 'standard' Wine location with spaces:
-#  "$HOME/.wine/drive_c/Program\ Files/qaac/qaac.exe" Try instead:
-#  "$HOME/.wine/drive_c/qaac/qaac.exe"
-# If you wish to generate alac files using refalac (packaged with qaac)
-# a small and ugly hack can be used by simply altering the path to:
-#   "$HOME/.wine/drive_c/qaac/refalac.exe"
-# Installation instructions for qaac and refalac here:
+# 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/qaac.html
+#    http://www.andrews-corner.org/fhgaacenc.html
+# (Hint: Use QAAC=refalac to use the Open Source alac encoder...)
 #QAAC=qaac
+#FHGAACENC=fhgaacenc
 
 # Taggers, rippers, replaygain etc:
 #ID3=id3
 #APENCOPTS='-c4000'
 
 # M4A/AAC
+# There are now 5 AAC encoders available to abcde :).
 # Note that the old AACENCOPTS has been rendered obsolete by
 # the following options, new to abcde 2.7:
 #  1. faac: see 'faac --long-help' and consider
 #     '--profile 2 --bitrate-mode 5 --afterburner 1'
 #     for a good quality encode. 
 #FDKAACENCOPTS='--bitrate 192k'
-#  4. qaac: simply run 'qaac' to see all options and
+#  4. 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=
+#  5. fhgaacenc: simply run 'wine fhgaacenc.exe' to see all options.
+#     consider using '--vbr 4' for a decent quality encode.
+#FHGAACENCOPTS=
 
 # OPUS
 # For the encoder options look at: 'opusenc -h'
 #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:
index 7f90d27..b5cc78c 100644 (file)
--- a/changelog
+++ b/changelog
@@ -1,5 +1,8 @@
 abcde 2.7.1
 
+  * AAC encoding with fhgaacenc via Wine. Tagging is provided
+    by AtomicParsley which has been added back to abcde :). This
+    allows encoding with HE-AAC v2, unavailable with qaac.
   * Support added for AAC encoding with qaac via Wine. This
     also allows for Apple Lossless Audio Coding (alac) when
     using: