Allow album art embedding for WavPack files
authorAndrew Strong <andrew.david.strong@gmail.com>
Sun, 19 Feb 2017 04:28:34 +0000 (15:28 +1100)
committerAndrew Strong <andrew.david.strong@gmail.com>
Sun, 19 Feb 2017 04:28:34 +0000 (15:28 +1100)
This requires the utility wvtag which comes with WavPack 5.1.0

FAQ
abcde
abcde.1
abcde.conf
changelog

diff --git a/FAQ b/FAQ
index 0d4478d..64f4185 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -284,7 +284,8 @@ A. If you have set INTERACTIVE=y (this is the default) then you will have
 Q. What if I want my album art embedded?
 A. As of abcde 2.8.2 it is possible to have the album art automatically 
    embedded in the mp3 container using eyeD3, embedded in the flac container
-   using metaflac and embedded in the m4a container using AtomicParsley.
+   using metaflac, embedded in the m4a container using AtomicParsley and
+   embedded in the wv container using wvtag.
    
    There are 3 different ways to accomplish this:
    
@@ -292,8 +293,9 @@ A. As of abcde 2.8.2 it is possible to have the album art automatically
      2. Use the command line '-a embedalbumart' option to add to list of actions
      3. Use 'embedalbumart' in the 'ACTIONS' list in ~/.abcde.conf
      
-   Next in line will be embedding album art in WavPack files using wvtag
-   and perhaps after that embedding in Ape files...
+   Adding newer containers for album art embedding should be fairly straightforward
+   and these will be added when the right combination of available abcde developer
+   time and abcde user interest occurs...
   
 4. FORMATS
    =======
diff --git a/abcde b/abcde
index 125033e..8167226 100755 (executable)
--- a/abcde
+++ b/abcde
@@ -3298,9 +3298,9 @@ do_embedalbumart()
        FINALDIR="$(dirname "$OUTPUTDIR/$FINDPATH")"
        cd "$FINALDIR"
 
-# Instructions for each format, feel free to add more. A good one to add in
-# next would be WavPack embedding using the the new wvtag utility shipped
-# with WavPack 5.1.0 and greater... Andrew.
+# Instructions for each format, feel free to add more. It would be nice to
+# make the backup directory selectable and perhaps also have an option for
+# the bold to simply have the image deleted. Work for another day... Andrew.
        if [ -e "$ALBUMARTFILE" ] ; then
                case  "$OUTPUT" in
                        mp3)
@@ -3308,7 +3308,6 @@ do_embedalbumart()
                                do
                                "$EYED3" --add-image "$ALBUMARTFILE":FRONT_COVER "$i"
                                done
-                               # FIXME: Make the backup process selectable... 
                                mkdir "$FINALDIR"/albumart_backup
                                mv "$ALBUMARTFILE" "$FINALDIR"/albumart_backup
                                vecho "Successfully embedded the album art into your $OUTPUT tracks" >&2
@@ -3318,7 +3317,6 @@ do_embedalbumart()
                                do 
                                "$METAFLAC" --import-picture-from="$ALBUMARTFILE" "$i"
                                done
-                               # FIXME: Make the backup process selectable... 
                                mkdir "$FINALDIR"/albumart_backup
                                mv "$ALBUMARTFILE" "$FINALDIR"/albumart_backup
                                vecho "Successfully embedded the album art into your $OUTPUT tracks" >&2
@@ -3328,7 +3326,15 @@ do_embedalbumart()
                                do
                                "$ATOMICPARSLEY" "$i" --artwork "$ALBUMARTFILE" --overWrite 
                                done
-                               # FIXME: Make the backup process selectable... 
+                               mkdir "$FINALDIR"/albumart_backup
+                               mv "$ALBUMARTFILE" "$FINALDIR"/albumart_backup
+                               vecho "Successfully embedded the album art into your $OUTPUT tracks" >&2
+                               ;;
+                       wv)
+                               for i in *.wv
+                               do
+                               "$WVTAG" --write-binary-tag "Cover Art (Front)=@"$ALBUMARTFILE"" "$i"
+                               done
                                mkdir "$FINALDIR"/albumart_backup
                                mv "$ALBUMARTFILE" "$FINALDIR"/albumart_backup
                                vecho "Successfully embedded the album art into your $OUTPUT tracks" >&2
@@ -3732,6 +3738,7 @@ VORBISCOMMENT=vorbiscomment
 METAFLAC=metaflac
 NEROAACTAG=neroAacTag
 ATOMICPARSLEY=AtomicParsley
+WVTAG=wvtag
 
 WINE=wine
 CDPARANOIA=cdparanoia
@@ -4378,6 +4385,7 @@ do
                        [ "$DOTAG" = "y" ]
                        [ "$DOREPLAYGAIN" = "y" ] && NEEDWVGAIN=y
                        [ "$WVENCODERSYNTAX" = "ffmpeg" ] && DOREPLAYGAIN=n
+                       [ "$EMBEDALBUMART" = "y" ] && NEEDWVTAG=y
                        ;;
                ape)
                        [ "$APENCODERSYNTAX" = "default" ] && APENCODERSYNTAX=mac
@@ -4830,7 +4838,7 @@ for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \
        ${NEEDWVGAIN+WVGAIN} ${NEEDAPETAG+$APETAG} \
        ${NEEDCUE2DISCID+$CUE2DISCID} ${NEEDNEROAACTAG+$NEROAACTAG} \
        ${NEEDGLYRC+$GLYRC} ${NEEDWINE+$WINE} ${NEEDATOMICPARSLEY+$ATOMICPARSLEY} \
-       ${NEEDMID3V2+$MID3V2} ${NEEDEYED3+$EYED3}
+       ${NEEDMID3V2+$MID3V2} ${NEEDEYED3+$EYED3} ${NEEDWVTAG+$WVTAG}
 do
        checkexec "$X"
 done
diff --git a/abcde.1 b/abcde.1
index 0b513ae..678024d 100644 (file)
--- a/abcde.1
+++ b/abcde.1
@@ -80,10 +80,10 @@ Enable batch mode normalization. See the BATCHNORM configuration variable.
 .B \-B
 Enable automatic embedding of album art with certain containers. As of
 abcde 2.8.2 supported containers are mp3 (using eyeD3), flac (using
-metaflac) and m4a (using AtomicParsley). This command line option also
-calls the getalbumart function. Further details of album art embedding
-using the embedalbumart function can be found in the abcde FAQ document
-packaged with abcde.
+metaflac), m4a (using AtomicParsley) and WavPack aka wv (using wvtag).
+This command line option also calls the getalbumart function. Further
+details of album art embedding using the embedalbumart function can be
+found in the abcde FAQ document packaged with abcde.
 .TP
 .B \-c [filename]
 Specifies an additional configuration file to parse. Configuration options
@@ -605,8 +605,8 @@ Will create both Ogg/Vorbis and Ogg/FLAC files.
 Will pass "\-b 192" to the Ogg/Vorbis encoder, without having to modify the
 config file
 .TP
-.B abcde \-o mp3,flac,m4a -B
-abcde will create mp3, flac and m4a files and also select suitable album art,
+.B abcde \-o mp3,flac,m4a,wv -B
+abcde will create mp3, flac, m4a and wv files and also select suitable album art,
 download and embed the album art into all 3 sets of tracks.
 .TP
 .B abcde \-W 1
@@ -681,6 +681,7 @@ ImageMagick package should be installed.
 .BR convert (1),
 .BR wavpack (1),
 .BR wvgain (1),
+.BR wvtag (1),
 .BR id3 (1),
 .BR eyeD3 (1),
 .BR wget (1),
index dadbd6a..efd536d 100644 (file)
 #MKTOC=cdrdao
 #DIFF=diff
 #WVGAIN=wvgain
+#WVTAG=wvtag
 #APETAG=apetag
 #GLYRC=glyrc
 #IDENTIFY=identify
index 8e01134..51f7d69 100644 (file)
--- a/changelog
+++ b/changelog
@@ -10,8 +10,9 @@ abcde 2.8.2
    and also in the abcde mailing list:
    https://lists.einval.com/pipermail/abcde-users/2017-January/000232.html
  * Allow for embedding of  album art downloaded by the getalbumart fuction. 
-   Currently this is available for flac (using metaflac), mp3 (using eyed3)
-    and m4a (using AtomicParsley). This can be invoked in 3 ways:
+   Currently this is available for flac (using metaflac), mp3 (using eyed3),
+    m4a (using AtomicParsley) and WavPack aka wv (using wvtag).
+    This can be invoked in 3 ways:
      
      1. Use the commandline '-B' option (this will also call getalbumart)
      2. Use the commandline '-a embedalbumart' option to add to list of actions