After a while using the really nice Linux CD ripper abcde I realized that WavPack really needed a metadata utility (like metaflac). The command-line program is fine for adding tags during encoding, but sometimes you just need to add or edit them afterwards (in abcde's case that's cuesheets and album art). This has actually been possible for a while using the transcode function, and I've used that many times with small lossless files, but it becomes a little silly with large files (especially if encoded with x6) or in scripts!
There was also a discussion about Sony's DSF files because they have ID3 tags at the end. WavPack stores these as “wrapper” so that they can be restored verbatim, but there was no way to access the tags themselves stored that way. So I added an option to this new tagging utility to import these ID3 tags (including cover art) into APEv2 tags. If this turns out to be usable, I'll bring it into the command-line encoder too (although I'm not sure about it being the default behavior).
Here's the help display:
Usage:
WVTAG [-options] file[.wv]
Wildcard characters (*,?) may be included in the filename. All options
and operations specified are applied to each file in this order:
clean, import, delete, write, extract, list.
Options:
--allow-huge-tags allow tag data up to 16 MB (embedding > 1 MB is not
recommended for portable devices and may not work
with some programs including WavPack pre-4.70)
-c extract cuesheet only to stdout
(note: equivalent to -x "cuesheet")
-cc extract cuesheet file (.cue)
(note: equivalent to -xx "cuesheet=%a.cue")
--clean or --clear clean all items from tag (done first)
-d "Field" delete specified metadata item (text or binary)
-h or --help this help display
--import-id3 import ID3v2 tags from the trailer of DSF files only
-l or --list list tags (done last)
--no-utf8-convert assume tag values read from files are already UTF-8,
don't attempt to convert from local encoding
--pause pause before exiting (if console window disappears)
-q quiet (keep console output to a minimum)
-v or --version write the version to stdout
-w "Field=" delete specified metadata item (text or binary)
-w "Field=Value" write specified text metadata to APEv2 tag
-w "Field=@file.ext" write specified text metadata from file to APEv2
tag, normally used for embedded cuesheets and logs
(field names "Cuesheet" and "Log")
--write-binary-tag "Field=@file.ext"
write the specified binary metadata file to APEv2
tag, normally used for cover art with the specified
field name "Cover Art (Front)"
-x "Field" extract specified tag field only to stdout
-xx "Field[=file]" extract specified tag field to file, optional
filename spec can include these replacement codes:
%a = source filename
%t = tag field name
(note: comes from data for binary tags)
%e = extension from binary tag source file
(or 'txt' for text tag)
-y yes to overwrite warning (use with caution!)
Any feedback is appreciated...enjoy!
edit: link deleted