I’m using xml files to inform a batch process to convert wav files to AAC encoded m4a with external metadata.
I have set the variables. I have instructed WL to map the xml metadata fields to to the variables and I have set the ID3 tags in the batch process to use the variables.
Here’s the real catch, some work and some don’t even though the process is the same for all of them. I get a title and genre but no album title or artist. I need help as this is essential for a workflow. Happy to share any xml or config files but any, ‘did you check…’ kind of things to. I’ve done this before and whilst it took me a while to understand and set up the process, i did it for 17000 files. The point of difference is the output format is different this time. Previously MP3, now m4a (AAC).
When you say some work, some others don’t, can you be more explicit? For example, a given file never works, or is it random? Did you try to run the batch processor with a single thread, instead of multiple?
Some fields from the xml make it to the intended tag in the resulting m4a file but not all.
For example, I’ve set up variable for all of the fields in the xml below and mapped those variables in the metadata settings of the batch job.
INAM=Title and is successfully written to the m4a
IGNR=Genre and is successfully written to the m4a
however,
IPRD=Album but is not successfully written the m4a
IART=Artists but is not successfully written the m4a
None of the remaining tags are written though I’ve used the exact same process for each of them and I’ve gone over it a number of times.
<?xml version="1.0"?>
<data>
<FileName>\\filprd11\digit_work\Digital Collections\_PrepForIngestion\9580856\data\PRESERVATION_MASTER\Leighton_Probert_interview_20170616.wav</FileName>
<OutputPath>W:\Digital Collections\_PrepForIngestion\Audio_Derivative_WF\Derivative_Output\1009501\Leighton_Probert_interview_20170616.m4a</OutputPath>
<USID>1009501-01</USID>
<IARL>State Library of New South Wales</IARL>
<IART>Darmody, Louise</IART>
<ICMS>Probert, Leighton</ICMS>
<ICMT>Recorded in the sound studio of One Flight Up Studios Precinct 75, St Peters, Sydney on 16 June 2017.</ICMT>
<ICOP>Copyright restrictions may apply. For details contact the State Library of New South Wales.</ICOP>
<ICRD>16/06/2017</ICRD>
<IGNR>Interview</IGNR>
<INAM>Item 01: Leighton Probert interviewed by Louise Darmody, 16 June 2017</INAM>
<IPRD>Louise Darmody interviews with people in New South Wales regarding disability, 1 June 2017-15 August 2017</IPRD>
<ISRC>AuSN</ISRC>
</data>
Here’s some screen grabs of other stages, setting user variables, mapping them to XML descriptors and applying them to the metadata in the batch process.
About your 3rd picture: all the tags that don’t have the suffix (i) are not compatible with m4a. The (i) stands for iTunes. All fields are compatible with id3v2, fully supported by mp3, but not mp4.
Could that explain your problem?
If not, please also save your custom variables as a preset, and send it too. Thanks.
FYI: I tried removing mapping from all non-itunes fields with the pretty much the same result:
TIT2: Title = Success
TALB: Album = Fail
TCOM: Composer = Fail
TCON: Genre = Success
TPE1: Lead Performer = Fail
TIT1: Content Description = Fail
TENC: Encode by = Success (though value entered into mapping directly, not from xml)
I have analysed your case. I found a bug in WaveLab, but also an immediate solution for you.
First you need to understand the underlying issue.
In this dialog (this is a WaveLab 9.5 style, but you will recognize it anyway)
2017-12-17_13-01-40.png
you can see:
“Collection <-> IPRD”
But what you cannot see, is
“Album <-> IPRD”
This last item is something you have entered in the past, but which is not visible in the dialog, because there is currently no user variable called “Album”.
When the batch processing happens, WaveLab finds two entries for IPRD, and unfortunately, it might retain the one you don’t use (“Album” here, instead of “Collection”).
In that case, the proper metadata connection is not found and you don’t get the result you expect, with some missing fields.
I will fix this on the WaveLab side for 9.5.20 (for WaveLab to ignore the user variables that are not active).
But you have a solution today, which is to redo (from nothing), the XML Audio Description. In that way, some old user variable won’t “pollute” it and the batch process should work as you expect.