Discussion:
An addition for the Compliance Issues list.
Dale Preston
2007-02-10 02:05:37 UTC
Permalink
I have a couple additions for the compliance issues list.



Windows Media Player 10 creates improper ID3V2.3 TYER frames. They are 5
bytes long though the standard specifically states they are always 4 bytes
long. The leading byte is a zero value.



Windows Media Player 11 leads with a zero value byte but also appends a zero
value byte, giving a length of 6 bytes for the ID3V2.3 TYER frame.



I can provide samples if necessary.





Dale
Dale Preston
2007-02-10 03:23:01 UTC
Permalink
If I understand the published specification, the TYER frame is not a
terminated string which would start with an encoding byte but is, instead, a
numeric string. The spec states specifically "always four characters long".
Is this not correct?


Dale



-----Original Message-----
From: Jud White [mailto:***@cdtag.com]
Sent: Friday, February 09, 2007 8:45 PM
To: ***@id3.org
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.

Dale,

It's the text encoding byte, and the terminator is optional, at least to
the point where the spec says ignore anything that comes after a
terminator in a text field.
They must be preparing for the Y10K bug.
-Brian
Post by Dale Preston
I have a couple additions for the compliance issues list.
Windows Media Player 10 creates improper ID3V2.3 TYER frames. They
are 5 bytes long though the standard specifically states they are
always 4 bytes long. The leading byte is a zero value.
Windows Media Player 11 leads with a zero value byte but also appends
a zero value byte, giving a length of 6 bytes for the ID3V2.3 TYER
frame.
I can provide samples if necessary.
Dale
---------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-***@id3.org
For additional commands, e-mail: id3v2-***@id3.org
Dale Preston
2007-02-10 03:51:09 UTC
Permalink
TYER
The 'Year' frame is a numeric string with a year of the recording. This
frames is always four characters long (until the year 10000).


I guess that's the reason there's a list like this. Reasonable men disagree
on the interpretation of the specification as written. :)

Dale


-----Original Message-----
From: Jud White [mailto:***@cdtag.com]
Sent: Friday, February 09, 2007 9:45 PM
To: ***@id3.org
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.

4.2. Text information frames

The text information frames are the most important frames, containing
information like artist, album and more. There may only be one text
information frame of its kind in an tag. If the textstring is
followed by a termination ($00 (00)) all the following information
should be ignored and not be displayed. All text frame identifiers
begin with "T". Only text frame identifiers begin with "T", with the
exception of the "TXXX" frame. All the text information frames have
the following format:

<Header for 'Text information frame', ID: "T000" - "TZZZ",
excluding "TXXX" described in 4.2.2.>
Text encoding $xx
Information <text string according to encoding>

Hope this helps.
Post by Dale Preston
If I understand the published specification, the TYER frame is not a
terminated string which would start with an encoding byte but is, instead, a
numeric string. The spec states specifically "always four characters long".
Is this not correct?
Dale
-----Original Message-----
Sent: Friday, February 09, 2007 8:45 PM
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.
Dale,
It's the text encoding byte, and the terminator is optional, at least to
the point where the spec says ignore anything that comes after a
terminator in a text field.
They must be preparing for the Y10K bug.
-Brian
Post by Dale Preston
I have a couple additions for the compliance issues list.
Windows Media Player 10 creates improper ID3V2.3 TYER frames. They
are 5 bytes long though the standard specifically states they are
always 4 bytes long. The leading byte is a zero value.
Windows Media Player 11 leads with a zero value byte but also appends
a zero value byte, giving a length of 6 bytes for the ID3V2.3 TYER
frame.
I can provide samples if necessary.
Dale
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-***@id3.org
For additional commands, e-mail: id3v2-***@id3.org
Dale Preston
2007-02-10 03:55:05 UTC
Permalink
Whoops. My mistake here. I apologize.

Four characters is not the same as four bytes.

Back to the drawing board. Thanks for clearing it up.

Dale

-----Original Message-----
From: Dale Preston [mailto:***@msn.com]
Sent: Friday, February 09, 2007 9:51 PM
To: ***@id3.org
Subject: RE: [ID3 Dev] An addition for the Compliance Issues list.

TYER
The 'Year' frame is a numeric string with a year of the recording. This
frames is always four characters long (until the year 10000).


I guess that's the reason there's a list like this. Reasonable men disagree
on the interpretation of the specification as written. :)

Dale


-----Original Message-----
From: Jud White [mailto:***@cdtag.com]
Sent: Friday, February 09, 2007 9:45 PM
To: ***@id3.org
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.

4.2. Text information frames

The text information frames are the most important frames, containing
information like artist, album and more. There may only be one text
information frame of its kind in an tag. If the textstring is
followed by a termination ($00 (00)) all the following information
should be ignored and not be displayed. All text frame identifiers
begin with "T". Only text frame identifiers begin with "T", with the
exception of the "TXXX" frame. All the text information frames have
the following format:

<Header for 'Text information frame', ID: "T000" - "TZZZ",
excluding "TXXX" described in 4.2.2.>
Text encoding $xx
Information <text string according to encoding>

Hope this helps.
Post by Dale Preston
If I understand the published specification, the TYER frame is not a
terminated string which would start with an encoding byte but is, instead, a
numeric string. The spec states specifically "always four characters long".
Is this not correct?
Dale
-----Original Message-----
Sent: Friday, February 09, 2007 8:45 PM
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.
Dale,
It's the text encoding byte, and the terminator is optional, at least to
the point where the spec says ignore anything that comes after a
terminator in a text field.
They must be preparing for the Y10K bug.
-Brian
Post by Dale Preston
I have a couple additions for the compliance issues list.
Windows Media Player 10 creates improper ID3V2.3 TYER frames. They
are 5 bytes long though the standard specifically states they are
always 4 bytes long. The leading byte is a zero value.
Windows Media Player 11 leads with a zero value byte but also appends
a zero value byte, giving a length of 6 bytes for the ID3V2.3 TYER
frame.
I can provide samples if necessary.
Dale
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-***@id3.org
For additional commands, e-mail: id3v2-***@id3.org



---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-***@id3.org
For additional commands, e-mail: id3v2-***@id3.org
Dale Preston
2007-02-10 04:12:49 UTC
Permalink
Yeah, as Jud said, as well. That was hard to accept; I've been doing it
wrong for 2 years.

Dale


-----Original Message-----
From: Mark Smith [mailto:***@gmail.com] On Behalf Of Mark Smith
Sent: Friday, February 09, 2007 8:54 PM
To: ***@id3.org
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.

The spec also says, with regard to all the text frames excluding TXXX:

4.2 <Header for 'Text information frame', ID: "T000" - "TZZZ",
excluding "TXXX" described in 4.2.2.>
Text encoding $xx
Information <text string according to encoding>

And it doesn't specifically exclude the TYER frame. Nor does it
exclude the TYER frame from being a null-terminated string. The data
itself is still just 4 chars, so it seems kind of open to
interpretation. iTunes 7 does the same (nulls front and back), for
what it's worth.

On the other hand, maybe MS and Apple are thinking really, really
long-term, and are leaving space in there for the year 10000 and beyond.

Mark
Post by Dale Preston
I have a couple additions for the compliance issues list.
Windows Media Player 10 creates improper ID3V2.3 TYER frames. They
are 5 bytes long though the standard specifically states they are
always 4 bytes long. The leading byte is a zero value.
Windows Media Player 11 leads with a zero value byte but also
appends a zero value byte, giving a length of 6 bytes for the
ID3V2.3 TYER frame.
I can provide samples if necessary.
Dale
---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-***@id3.org
For additional commands, e-mail: id3v2-***@id3.org
Dale Preston
2007-02-10 23:53:30 UTC
Permalink
Well, I'm glad you got some benefit out of it. :) It turns out my own
implementation was correct. I just had a serious case of H.U.A. last night.

Dale

-----Original Message-----
From: Mark Smith [mailto:***@gmail.com] On Behalf Of Mark Smith
Sent: Saturday, February 10, 2007 4:30 AM
To: ***@id3.org
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.

Well, thanks for bringing it up. I'm just in the process of writing
a tagging library for a high-level scripting language called
Revolution (formerly metaCard), and it's good to test my
understanding of the specs when questions arise and discussion
happens....


Best,

Mark
Post by Dale Preston
Yeah, as Jud said, as well. That was hard to accept; I've been doing it
wrong for 2 years.
Dale
-----Original Message-----
Sent: Friday, February 09, 2007 8:54 PM
Subject: Re: [ID3 Dev] An addition for the Compliance Issues list.
4.2 <Header for 'Text information frame', ID: "T000" - "TZZZ",
excluding "TXXX" described in 4.2.2.>
Text encoding $xx
Information <text string according to encoding>
And it doesn't specifically exclude the TYER frame. Nor does it
exclude the TYER frame from being a null-terminated string. The data
itself is still just 4 chars, so it seems kind of open to
interpretation. iTunes 7 does the same (nulls front and back), for
what it's worth.
On the other hand, maybe MS and Apple are thinking really, really
long-term, and are leaving space in there for the year 10000 and beyond.
Mark
Post by Dale Preston
I have a couple additions for the compliance issues list.
Windows Media Player 10 creates improper ID3V2.3 TYER frames. They
are 5 bytes long though the standard specifically states they are
always 4 bytes long. The leading byte is a zero value.
Windows Media Player 11 leads with a zero value byte but also
appends a zero value byte, giving a length of 6 bytes for the
ID3V2.3 TYER frame.
I can provide samples if necessary.
Dale
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-***@id3.org
For additional commands, e-mail: id3v2-***@id3.org

Loading...