[ID3 Dev] updates to existing ID3v2 standards?

Mitchell S. Honnert mitch at honnert.com
Mon Dec 25 18:56:06 PST 2006


>I wholeheartedly agree with the idea of opening 2.4.0 up for
>revision (to produce 2.4.1).
I probably should have spelled it out more clearly -- oh, irony -- but I was
also proposing that the ID3 v2.3 be opened up for revision.  In fact, given
v2.3's ongoing popularity, it's probably more important to make some
clarifications/tweaks to that version.  Obviously many of the revisions
would apply to both v2.3 and v2.4, but for me the driving factor would be
the changes to the v2.3 spec.

 - Mitchell S. Honnert

-----Original Message-----
From: Ben Bennett [mailto:fiji at ayup.limey.net] 
Sent: Monday, December 25, 2006 9:07 PM
To: id3v2 at id3.org
Subject: Re: [ID3 Dev] updates to existing ID3v2 standards?

I wholeheartedly agree with the idea of opening 2.4.0 up for revision
(to produce 2.4.1).

Another proposal would be to LOUDLY scream that the frame length must
be a syncsafe integer, and if you claim 2.4.1 compliance then
goddamnit you had better be emmitting syncsafe ints (APPLE!).  Of
course that is not a change from 2.4.0, but it is hit or miss what
people will do.

				-ben

On Mon, Dec 25, 2006 at 08:03:51PM -0500, Mitchell S. Honnert wrote:
> [OK, this got to be a lot longer than I had intended, but I found it was
> necessary to use this much space to fully explain my request. - MSH]
> 
>  
> 
> I'd like to propose that we open up the existing ID3 specifications for
> updates in order to make clarifications or to make slight tweaks to
existing
> sections.  I understand that there are risks in changing standards
> documentation after they've been published, but based on what I've seen,
> more harm is being done by ambiguous and sometimes downright confusing ID3
> documentation than the potential harm of changing the documentation after
> the fact.  The normal process of publishing new, updated versions of a
spec
> just doesn't work with ID3.  (ID3v2.4 has been out for a long time and
> ID3v2.3 is still far more popular.)  I think we could make some relatively
> small changes that would have a large beneficial impact.   By limiting the
> updates to the two very specific cases below, I think we could adhere to
the
> principle that no update would break existing implementations.  (A
principle
> which we've already used recently when adding the accessibility frames.)
> 
>  
> 
> 1) Clarifications of an existing specification which don't change the spec
> 
> I've been working with the ID3 specs for years now (in my work on my own
ID3
> library) so I'm familiar with many of their quirks and eccentricities of
the
> documentation.  But even other supporters of the ID3 format would have to
> admit that some of the specifications can be confusing to a brand new
> reader.  Sure, there are sources outside the spec (such as the ID3.org FAQ
> and this discussion list itself), but why not just update the spec itself
to
> eliminate the confusion?  I think that with some relatively minor edits,
we
> could make the standard much more clear and user-friendly.  Of course we'd
> have to come up with a consensus on what certain specs actually meant.
But
> wouldn't it be better to do that work once rather than leave it to be done
> every time a new developer sits down to implement the standard?
> 
>  
> 
> 2) Slight alteration of an existing standard in light of de facto
standards
> used by overwhelming majority of ID3 apps/libs
> 
> Standards are nice and everything, but in the end, their success can be
> measured by their compliance.  What use is having a standard frame format
> that is all but ignored?  Wouldn't it be better to acquiesce to the real
> implementations out there than to stubbornly hold on to what has become an
> irrelevant and ignored section of the standard?  Again, I'm not saying to
> remove support for any feature; just to tweak a standard so that it would
> also comply with existing implementations.  I think we could tweak a
frame's
> specification slightly, thus updating it to support both the existing spec
> as well as a de facto standard.  I'm not saying to change the spec willy
> nilly to match existing implementations.  (Just because iTunes or WinAmp
> does something a particular way, doesn't make it the best or right way.)
> Instead we would add to the spec so that it matches implementations that
> don't necessarily conform to how the spec was written, but in hindsight
> conforms to how the spec should have been written.
> 
>  
> 
> (I'm hoping that the use of the ID3.org Wiki, with its revision history,
> will alleviate some of the hesitation to make the kinds of changes I
> suggest.)
> 
>  
> 
> Because the Genre/Content Type/TCON frame is what got me thinking about
this
> topic, I'll use it as an example.  I consider myself to be a staunch
> supporter of the ID3 format, but I have to say that the ID3 v2
> specifications for the TCON frame are just plain awful.  Why in the world
> would you add the level of complexity to the frame's format by including
the
> ID3v1 genre numbers, especially since the spec itself admits that the
> "category list would be impossible to maintain with accurate and up to
date
> categories"?  To use the example in the TCON spec, what is the point of
> having "(4)Eurodisco" (where 4 is the ID3v1 Genre number for "Disco") when
> "Eurodisco" by itself would do just fine?  
> 
>  
> 
> I don't think that the goal of the TCON frame was to create a
> subcategorization system whereby you could represent "Disco with a
> subcategory of Eurodisco".  But this is what is implied by the TCON spec.
> According to a literal reading of the TCON frame spec, custom genres are
not
> allowed, only custom refinements to the standard genres.  WinAmp allows
you
> to type in "Eurodisco" into the Genre field?  Sorry, according to the
> existing spec, you should have to select "Disco" from a finite list of
> values, then type in "Eurodisco" as a modifier so that WinAmp can store
> "(4)Eurodisco" in the TCON frame.  Why do we have a spec, that as written,
> nobody implements?  Why would we want to leave developers saying "Well,
> surely that's not what they really meant" when we can clarify what was
> really meant?
> 
>  
> 
> So, how do I think we should update the TCON frame spec?  Well, if we
> acknowledge that the vast majority of ID3v2 implementations ignore the
silly
> parenthetical ID3v1 Genre number, then I would reword the frame's spec to
> describe a simple null-delimited list of custom genre strings.  For
backward
> compatibility's sake, I would place the "(4)Eurodisco" format gobbledygook
> in an "Optional" section.  Also, the TCON spec states that multiple genres
> are supported, but without some rather subjective interpretations of the
> spec, I don't see how it's supposed to be done.  (Unless you only use the
> numeric sections as delimiters for the "refinements", the spec doesn't
make
> any sense for multiple genres.)  Personally, if we did nothing more than
> promote the use of multiple genres by tweaking the TCON spec, I'd consider
> it a great success.  Oh, and I'd also correct the spelling of "numerig".
> 
>  
> 
> The details of changes aren't so important now.  I'm sure that there would
> be much discussion by the members of this over what would be changed and
> how.  I admit that I have some strong opinions on how the TCON spec could
be
> improved, but my goal for this e-mail was to get input on whether updates
> like this would even be accepted.
> 
>  
> 
> For the record, I don't make this suggestion lightly.  I understand the
> problems associated with altering an existing specification.  But I think
> that failing to bring the spec in line with reality is actually causing
more
> harm than good.  Because the specs have remained in the original state,
> along with all of their original flaws, developers have for years been
left
> to their own subjective judgments on how best to implement
> ambiguously-worded specs.  This has, I believe, led to a fracturing of the
> standard.  We can't do much about existing implementations, especially
those
> coded into hardware devices.  But we could make it easier for anyone else
> trying to implement the standard.  I believe that the people on this list
> are the wardens of the ID3 standard.  And as the wardens, I believe that
it
> our responsibility to do what we can to minimize further fracturing, even
if
> it means retrofitting the standard to fit "noncompliant" implementations.
> In short, I think we can make compromises on the ID3 standard without
> compromising the ID3 standard.
> 
>  
> 
> Mitchell S. Honnert
> 
> www.UltraID3Lib.com
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
For additional commands, e-mail: id3v2-help at id3.org



---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
For additional commands, e-mail: id3v2-help at id3.org



More information about the ID3v2 mailing list