Christ's notes on insufficient parsing of ID3 and FLAC tags by his Creative Zen X-Fi 2

Introductory remarks

Recently, I received a gift that really delighted me: After all these years with cheap MP3 players, I became proud owner of a Creative Zen X-Fi 2, a fancy touchscreen thingy that supports not only MP3, but also FLAC, hence relieving me of all that recoding I used to do for my MP3 players, and having a nice menu structure to quickly browse through the audio files.

What was new to me now was the reliance on reasonably tagged audio files, since everything not tagged reasonably is subsumed in the categories "unknown genre" / "unknown artist" / "unknown album" which is very unhandy. For me, it is OK to re-tag files which are not yet reasonably tagged, but unfortunately, I had to learn that there are cases where they are reasonably tagged, but where the Zen X-Fi 2 is still causing trouble.

Searching the Internet, it seems that nobody else is complaining about this, which is very strange in my opinion, since I believe I cannot be the only one experiencing these difficulties. This is why I am reporting these troubles here (together with my opinion on their severity). I sent these issues to the Creative support on November 7th and am very curious when and what they are going to respond.

The firmware version of my Zen X-Fi 2 is 1.01.01. I sincerely hope that Creative will fix at least the major issues in future firmware releases.

Update 2009-11-17: The new firmware version 1.02.03 released on November 12th does not seem to contain new code for parsing file tags.

Update 2010-05-14: Firmware version 1.12.08 solves some of the issues mentioned below, namely #2b (ID3v2 UTF-8 support) and #3 (ID3v2 unsynchronisation). Issues #1 (Multi-disc albums), #2a (ID3v2 ISO-8859-1 support), #4 (ID3v2.4 support), and #5 (ID3v2.2 support) are not solved though.

Issue #1: Multi-disc albums (major)

The sorting criterion for tracks within an album seems to be the track numbers in the file tags. Fallback for missing track numbers is alphabetical ordering of the track titles.

Now albums can consist of several parts (CDs), and in this case, it is common to separately number the tracks of each disc. If an album consists e.g. of two discs with two tracks on each of them, the four tracks would be tagged as

This order (first by disc number, second by track number) is the natural sorting order. However, the Zen X-Fi 2 does not sort this way, because it does not interpret disc numbers (TPOS in ID3v2, DISCNUMBER in FLAC). Therefore, the tracks order looks something like this (depending on alphabetical order of track titles):

Issue #2: ID3v2 charset support (major)

The ID3v2 standard defines 4 different character sets that can be used to encode text strings inside tags:

  1. ISO-8859-1
  2. UTF-16
  3. UTF-16BE
  4. UTF-8

Unfortunately, the Zen X-Fi 2 is not able to parse tags encoded in ISO-8859-1 and UTF-8 correctly. The reason I consider these bugs to be so severe is that ISO-8859-1 is certainly the most commonly used character set and UTF-8 is probably also more common than the UTF-16 variants.

Issue #2a: ID3v2 ISO-8859-1 support

Text encoded using ISO-8859-1 is not displayed correctly. E.g., instead of Motörhead, the Zen X-Fi 2 displays MotXhead, where X is some Asian symbol, presumably Chinese simplified.

Issue #2b: ID3v2 UTF-8 support

With UTF-8, the situation is even worse: The Zen X-Fi 2 chooses not to parse the tag at all and to place the files into the "unknown genre" / "unknown artist" / "unknown album" categories.

Issue #3: ID3v2 unsynchronisation (minor)

MPEG audio streams start off with a "frame sync" that consists of 11 bits set to 1, starting at a byte boundary, i.e. 11111111 111xxxxx. ID3v2 defines "unsynchronisation" to prevent such frame sync to be erroneously contained in an ID3v2 tag. However, unsynchronised tags are not parsed by the Zen X-Fi 2, and instead, the files are placed into the "unknown genre" / "unknown artist" / "unknown album" categories.

Issue #4: ID3v2.4 support (minor)

The Zen X-Fi 2 does not understand TDRC (ID3v2.4), only TYER (ID3v2.3). As a result, it does not display the recording time of files tagged with ID3v2.4.

Issue #5: ID3v2.2 support (minor)

(added on 2010-03-22) The Zen X-Fi 2 does not understand TRK (ID3v2.2), only TRCK (ID3v2.3 & ID3v2.4). As a result, the file track ordering is not correct for albums tagged with ID3v2.2.