FLAC tags different between programs

For version 12.4, "setting the rating for a FLAC file is now supported". When I set the rating of an FLAC on Opus, neither AIMP nor AudioShell are able to read it.

Also, it looks like the files I am testing with have metadata tags on different standards, and Opus is reading and writing using one and my other programs are reading and writing using another.

AIMP says it is reading using the Vorbis standard. When I write a rating from AIMP, Opus reads the Vorbis tags. When I write a rating from Opus, Opus starts reading tags from the other standard.

One hypothesis: somehow there is an IDv3/APE tag that resisted all the deletion attempts and is causing confusion for Opus.

You may use this 2 seconds long audio file to make tests. I am able to reproduce that misbehavior with it.

AudioTrack.zip (176.6 KB)

I can only see one set of tags in that file, in the Vorbis Comments standard. Opus and the other programs I have installed seem to agree on the tags (Mp3Tag and dbPowerAmp, although the former doesn't show rating tags at all for FLAC as far as I can tell).

IDv3/APE tags shouldn't ever be placed on FLAC files, since Vorbis Comments are the native standard for FLAC (and always has been, but there are some programs that shove IDv3 on literally any file type and assume it's OK). Having tags in two tag formats on the same will cause problems as the two sets of tags will diverge.

But it doesn't look like that has happened with the test file, as far as I can see? A quick look in a hex editor shows it has Vorbis Comments tags at the front, and nothing else there, or at the back.

Try this:

Apply a rating on Opus, look at the track number show on Opus. Here it is 2.
Apply a rating on another program (AIMP for me), look at the track number show on Opus. Here it is 3.

I had the impression that there were two tag formats in use because that file originally had the track number of 2, later it was processed by Music Brainz Picard and got a new track number of 3, but now it seems Opus somehow reads the old track number when I apply a rating with it. If not two tag formats, there is something duplicated that is being picked by Opus.

Can you upload a file that has different tags in different programs for us to look at? That'd be easier than installing lots of different apps and trying to recreate the file/settings/situation.

The track number and rating were the only ones with a difference that I noticed, really.

Now that you asked, I tried to see if other fields were affected. Changing title, artists, album, genre on Opus is okay, other programs read them. Same if other programs change them: Opus reads the new values.

This is not really a urgent issue for me, so I would rather wait and see if other users report the same problem.

In case other users have the same programs installed and want to try to reproduce the issue, these are the results I got.

Track Number

Changing track number from MusicBrainz Picard to 6 makes only Opus read 2 again; AIMP and AudioShell read 6 correctly.

Changing track number from AudioShell to 6 makes only Opus read 2 again; AIMP and MusicBrainz Picard read 6 correctly.

Changing track number from AIMP to 6 makes Opus read 6, but then, if a rating is applied from Opus, track number becomes 2 again for Opus only (while at the same time other programs display 6).

Changing track number from Opus to 6, then changing from Picard to 3 makes Opus read 3 correctly, even after applying a rating from Opus. This seems to be the way to solve the issue once for all, albeit being a roundabout way.

Rating

Rating from Opus appears on Explorer correctly, but neither on AIMP or AudioShell.

Rating from AudioShell shows on Opus and Explorer, not on AIMP.

Rating from AIMP shows correctly on all, Opus, Explorer, AudioShell.

There are musicbrainz tags in the file attached above, so something may be using the musicbrainz IDs to look up track names and other metadata in favor of the track names in the normal tags.

But I can only really speculate without some before & after example files to look at. The file above shows what I would expect it to show.

One last test: for that file I sent you, look at the track number on Explorer Properties pane and on Opus. Are they the same?

Here they are different:

Something has written both TRACK and TRACKNUMBER tags to the file, so it effectively has two different track numbers.

Some programs give one or the other priority, and some show both.

Trying with a FLAC file I ripped myself from CD, it started with TRACKNUMBER only. Changing the track number using Opus does not add any extra tag, just changes the TRACKNUMBER tag, so Opus isn't adding the extra TRACK tag at least. (I don't know what it would do in the reverse situation of TRACK and no TRACKNUMBER.)

I think that TRACK tag was written by the distributor and has survived all metadata changes until now. I looked another files from the same source and they also have the TRACK tag.

Weird that it survived all metadata edits until now. Not one of the programs I used made both equal or strip one and left the other.

It seems Opus:

  1. reads the first one it encounters;
  2. when saving any other tag, always puts TRACK before TRACKNUMBER;
  3. when saving the track number, always strips TRACK and saves on TRACKNUMBER;

I don't know who to blame. Wondering if any of the programs is at fault for not following the Vorbis standard or if the standard is at fault for not being precise.

Crazy to think that there is an standard and these things still happen.

Inspecting more closely how Opus and AIMP apply a rating tag, I saw that AIMP uses a 0-5 scale and Opus uses a 0-100 scale. They are talking past each other.

This all makes me remember of the Gulliver's Travels book.

In the discipline of computer architecture, the terms big-endian and little-endian are used to describe two possible ways of laying out bytes in memory.

The terms derive from one of the satirical conflicts in the book, in which two religious sects of Lilliputians are divided between those who crack open their soft-boiled eggs from the little end, and those who use the big end, the "Big-endians".

Some programs/libraries use 0-5 and some 0-100 for FLAC. Unfortunately there is no official standard for the FLAC rating tag so two standards have emerged.

Some tools assume if the rating is <6 then it must be in the 0-5 scale, and >=6 must be in the 0-100 scale, which may work in most cases but probably isn't completely guaranteed.