Giter Site home page Giter Site logo

Comments (11)

OxygenCobalt avatar OxygenCobalt commented on June 11, 2024 1

Got the time to read your investigation. Very in depth, good job. I am under the impression though from my #558 implementation that Auxio should be correctly interpreting ARTISTS using the vorbis convention of duplicate tags. So that means:

  • Auxio is not correctly accumulating text-based metadata, which is super weird.
  • ExoPlayer is not parsing the multi-value tags correctly.

I still won't have the time to fully confirm until later though.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on June 11, 2024 1

Did the fix. It was pretty simple, actually. I'm fine with supporting multiple multi value conventions anyway @KraXen72.

from auxio.

KraXen72 avatar KraXen72 commented on June 11, 2024

not adding a ----:com.apple.iTunes:ARTISTS tag alltogether to the file solves the issue, but it's not what i'd want to do, or what picard does. Ideally, i wouldn't have to rely on separators for multi-artists and just use ARTISTS tag.
i added it in the first place because it's mentioned in the wiki that it has precedence over the normal frames.

from auxio.

KraXen72 avatar KraXen72 commented on June 11, 2024

another ponentially related issue is that this song seemingly has all the tags correct (the ----:com.apple.iTunes:ARTISTS is abstent), but it shows Mori Calliope for both artists with multi value separator / enabled.
TAKU INOUE_Mori Calliope - Yona Yona Journey.zip

i should've picked a different format than m4a, but then again, youtube already has most stuff in AAC, and only some in OPUS, and i want to avoid a lossy => lossy (AAC => OPUS) transcode if possible.

from auxio.

chocmake avatar chocmake commented on June 11, 2024

i should've picked a different format than m4a

fwiw I use M4A with Auxio for multiple track artists without issue (since this issue was fixed), however I'm using generic track artist tags rather than iTunes-specific ones and also using Mp3Tag[1] for the tagging.

Perhaps iTunes-specific tags aren't being parsed by Auxio/ExoPlayer?

[1] Windows-only with excellent batch scripting, though for Linux I know many who use it under WINE and I've used it myself under macOS (though now there's a native, albeit non-feature-complete Mac version).

from auxio.

OxygenCobalt avatar OxygenCobalt commented on June 11, 2024

Hey, I'll go about reproducing this later. Busy right now.

from auxio.

KraXen72 avatar KraXen72 commented on June 11, 2024

okay, thanks! good luck with whatever you're busy with!

from auxio.

KraXen72 avatar KraXen72 commented on June 11, 2024

Okay, so i did further investigation.
I found out, that the only multi-value M4A tag implementation that is 1) not separator based 2) supported by auxio i could find is the one by mp3tag. This is an issue for several reasons:

  • Musicbrainz Picard, beets and most other python based taggers (which deal with m4a anyway) use the python Mutagen library, which tags it differently. (Beets uses mediafile which is a mutagen wrapper. eyed3 only writes id3 and tinytag only reads tags).
  • Mp3tag is only available on windows, and most of the actual tag manipulation is abstracted away - it doesen't even tell you the real m4a atom names.

Most tools like kid3 or audio-tag-analyzer don't see any difference between a Mutagen-tagged or mp3tag tagged file (kid3 doesen't even see the multi value artist tags iirc).

Here are the sample files:
m4a samples.zip
The only thing i did in the -fixed file is open the file in mp3tag, delete the last character off the artist field (which shows there as EDEN\\Leah Kelly), add it back and save the file.

I tried looking at the files in the hex editor - i found that the tags were slighly different data-wise, and in a different order, however, I do not know enough about the m4a tagging spec/lack thereof and also my hex editor was pretty basic (wxhex), so it's ascii representation of the hex data wasn't great - I could not easily figure out what could be the bug in mutagens tagging that i could patch so it would work.
Therefore i would like to request that auxio supports both mutli-value tag implementations, since many taggers are using mutagen anyway.
I've tried some other music players (oto music, although not that objective since it does some splitting by itself) and QuickLook (windows) (hardly a proper music player but it parses the multi-artist tags properly)

As for the ----:com.apple.iTunes:ARTISTS, it turns out auxio prioritizes it over the (c)ART field and only ever reads the last instance of it. However, this wouldn't really need to be fixed if native multi-value tags would be fixed.

The current workaround is to just write EDEN/Leah Kelly into the (c)ART as a string and use the / separator in auxio. However, i'd really like to avoid this - both because it can possibly break on some artists, and that i'd like to use the official "spec" (if there even is any) implementation of multi-value artist tags.
feel free to add the bug label to this issue.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on June 11, 2024

I think I know the issue with the original mp3tag file @KraXen72: It packs several data blocks into a single atom to represent multiple values. I thought M4A multi-tags were several atoms with the same identifier. ExoPlayer probably not support this right now.

Mp3tag uses the format I support, several atoms with the same identifier.

So yeah, this is another multi-tag format I need to support. Will get to that.

from auxio.

KraXen72 avatar KraXen72 commented on June 11, 2024

okay, thanks a lot!

i use this tagging library: https://github.com/beetbox/mediafile
which under the hood uses mutagen.

if you feel like the other tagging startegy is the correct one, if you want to, could you point me to where i could modify either of the libraries to tag songs correctly? i wouldn't mind using a fork of the library in my tagging script

however, if it's easier/better to implement support for both strategies, go ahead with that

from auxio.

KraXen72 avatar KraXen72 commented on June 11, 2024

alright, thanks!

from auxio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.