Post Reply 
(windows) command line m4a tagger?
21-11-2017, 22:44
Post: #9
RE: (windows) command line m4a tagger?
(21-11-2017 16:20)simoncn Wrote:  I have found something in the iTunes Metadata Format Specification document that implies that the Atomic Parsley encoding is valid.

Code:
The value of the metadata item is currently expressed only as immediate in-line data, in a data atom
'data'. All data atoms start with two common fields: a type indicator, and a locale indicator. Each
of these fields is four bytes long. There may be multiple value entries; see below for the required
ordering.

aligned(8) class MetaItemAtom extends Atom(meaning) {
    if (meaning='----') {
        MeaningAtom extended_meaning;
        NameAtom the_name; // optional
    }
    DataAtom the_value; // 1 or more of these
}

aligned(8) class DataAtom extends Atom('data') {
    type_indicator the_type;
    unsigned int(32) the_locale = 0; // reserved to be 0
    unsigned int(8) value[]; // to fill the atom
}

I think it is clear from this that it is OK to have multiple 'data' atoms representing multiple values.

It shouldn't be difficult for me to update MinimServer to accept this format. Please upload a test file containing multiple 'data' atoms for the same 'mean' atom to my FTP server so that I can test the new code. I will PM you the server details.

Thanks for looking at that. It is interesting. I'll prepare a sample file. I don't know how useful it will be if no available taggers do this.

So far, I've only found that mp3tag will actually create multi valued tags that MinimServer supports. And presumably Paul's tagging library. the documentation for the mutagen library suggests that it might support multi value tags. The source code comments in https://github.com/quodlibet/mutagen/blo..._init__.py suggest the same understanding, and also comments:

# don't write atoms back if we have added a new one with
# the same name, this excludes freeform which can have
# multiple atoms with the same key (most parsers seem to be able
# to handle that)

Although when I tried to use Ex Falso (the tagger from quodlibet which supplies the mutagen library) it refused to create multiple values claiming that the m4a format doesn't allow this!

Other taggers that I've tried seem to either not support multiple values (for m4a files), or think that they are to be represented by a single value with a delimiter character. e.g. Windows 10 Explorer which uses forward slash as the separator, or the .Net library taglib-sharp that uses a semicolon.

So far, I've only looked at the freeform tags, the iTunes "standard" tags can also be duplicated by mp3tag, so I'm wondering how those are implemented by mp3tag. I wonder if anyone else has looked at the mutagen python library. I might try, but I've no experience of python.

If all available programs make multiple atoms, then it may be better to do nothing. I don't know for sure, but I have the impression that mp3tag is likely the most popular tagger with working multi value support. Perhaps Paul knows more about this, as he must have to rewrite broken tags.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: (windows) command line m4a tagger? - skeptic Mike - 21-11-2017 22:44

Forum Jump:


User(s) browsing this thread: 2 Guest(s)