20-11-2017, 19:16
I'm trying to devise a suitable scheme for tagging m4a files. Some of the very useful facilities that MinimServer offers depend on multiple tags, e.g. for performer or artist. As far as I can tell these are expected to be in the format that mp3tag chooses.
In the past, I've used AtomicParsley as a command line tagger, but its developers take the view that multiple tags are disallowed except in the "reverse DNS" format, and even then the com.apple.iTunes "domain" (which is where custom tags are created by mp3tag) is specifically excluded from multiple values. It's clear that there's little agreement about m4a tagging, so I shouldn't be surprised.
I did try hacking the AtomicParsley executable so that the exclusion didn't occur. This leaves AtomicParsley clear that I've created multiple tags, but it does this by putting the different data atoms under the same atom path. mp3tag creates a complete atom path hierarchy for each value, which seems to be what MinimServer expects. So each sees only one of the separate performer tags. Confusingly mp3tag reads through to the last one whereas MinimServer only reads the first one. (At least I think that's what happens.)
I know that my negligible C++ programming skills mean that I won't be fixing AtomicParsley, so I need another tool. The lack of agreement about the (finer) points of the standard confirms me in the view that I should prepare the tagging information in a simple text file and script the application to the m4a files. If I do this, I would be able to abandon m4a files and transcode everything to flac and then retag everything with a suitable script to drive a flac tagging program. This is a last resort, which I'd like to avoid
So, does anybody have any suggestions as to a suitable program?
In the past, I've used AtomicParsley as a command line tagger, but its developers take the view that multiple tags are disallowed except in the "reverse DNS" format, and even then the com.apple.iTunes "domain" (which is where custom tags are created by mp3tag) is specifically excluded from multiple values. It's clear that there's little agreement about m4a tagging, so I shouldn't be surprised.
I did try hacking the AtomicParsley executable so that the exclusion didn't occur. This leaves AtomicParsley clear that I've created multiple tags, but it does this by putting the different data atoms under the same atom path. mp3tag creates a complete atom path hierarchy for each value, which seems to be what MinimServer expects. So each sees only one of the separate performer tags. Confusingly mp3tag reads through to the last one whereas MinimServer only reads the first one. (At least I think that's what happens.)
I know that my negligible C++ programming skills mean that I won't be fixing AtomicParsley, so I need another tool. The lack of agreement about the (finer) points of the standard confirms me in the view that I should prepare the tagging information in a simple text file and script the application to the m4a files. If I do this, I would be able to abandon m4a files and transcode everything to flac and then retag everything with a suitable script to drive a flac tagging program. This is a last resort, which I'd like to avoid
So, does anybody have any suggestions as to a suitable program?