[vorbis] Re: Total Tracks Tag?

nils nils_barth at post.harvard.edu
Mon Oct 13 13:27:34 PDT 2003



hi again-

First, note that the Vorbis Rage developers were very responsive
and decided to move to TRACKTOTAL; thus my original concern has
been addressed.

---------------------------------------------------------

Second, regarding the value of TRACKTOTAL, and the tagging
discussion (/flamewar/religious battle):

Thank you to everyone who responded, particularly Haxe's thoughtful
comments.

Also, thank you to Moz for clarifying (some perspective on) what has
been meant by "metadata".

To get some terminology straight, I understand "metadata" to mean
"data about data, in whatever form". Indeed, even a filename (and
extension) is a form of metadata. Similarly, Macs (before OS X) stored
Application and Creator metadata, I believe in a "resource fork" (a
separate stream inside a file).

As I understand it, some people (particularly Segher) are advocating
storing metadata in a separate stream within an Ogg file, rather than
as tacked on tags to a Vorbis stream.

Currently such a system/standard doesn't exist, and metadata is stored
in one of two forms:
- Vorbis tags
- an application-specific database, like iTunes

for interchange/distribution, the only current solution is vorbis tags
  (one -could- distribute an XML document containing the metadata;
   I don't know if iTunes does this -- it has an "export database"
   option, doesn't it?)

I agree that Vorbis tagging has limitations; in particular, it doesn't
deal with Album-wide metadata (except by duplicating the information
in each file/stream), nor does it deal with large data, like lyrics or
album covers.

However, as Tom Felker says, Vorbis tags fill the metadata now.

It is in -this- context that I suggested TRACKTOTAL:
we -already- store metadata in Vorbis tags,
it is very easy to add further simple metadata as tags,
it causes no harm,
and solves some problems -now- at -virtually no cost-.

In particular, I understand that TRACKTOTAL, like ALBUM name and
album covers (and CDDB DISCID etc.) should properly go in an
albumwide metadata stream, which does not exist.

Vorbis tags are pretty good; maybe not "good enough", but certainly
good enough for some purposes.

---------------------------------------------------------
To address Segher's concerns (which seem to be shared by others):

  "the perfect is the enemy of the good"

Segher, you are over-reacting.
We agree that it is suboptimal to use Vorbis tags to store metadata,
though it is a "useful intermediary step".

However, you state that it would do "more harm than good" to add
further metadata to tags, rather than developing a correct
metadata stream standard.

I do not agree with this.

The bulk of code to deal with additional tags
(economics terms: the marginal cost of supporting an additional tag)
is almost entirely in code to deal with -that piece of metadata-,
-regardless of source-. So most of the code to deal with the piece of
metadata "Total Number of Tracks on CD" or "Album Title" or "Composer
of this Track" is -independent- of whether we get it from a Vorbis tag
or a metadata stream or a local database or a remote source
(MusicBrainz? CDDB?).

The Vorbis tag specific code consists of the following line:

get_file_info_tag("foo.ogg",TRACK_TOTAL,"TRACKTOTAL");

...assuming there's a half-way sane function for reading tags.

That's it! One line!

Even if we eventually move to a metadata stream to store metadata,
all the Vorbis tag code can be stuck into a separate file/library
(which, yes, would need to be maintained -- but if written even
 slightly well, you'd only need to update the function
 which I've dubbed "get_file_info_tag" that puts Vorbis tag info
 into the program's internal data structures),
and the only lines one needs to deal with legacy tags is:

if !(get_file_info_from_metadata_stream("foo.ogg"))
  then get_file_info_from_vorbis_tags("foo.ogg")

Indeed, you could even write:

if !(get_file_info_from_metadata_stream("foo.ogg"))
  then
    get_file_info_from_vorbis_tags("foo.ogg")
    write_file_info_as_metadata_stream("foo.ogg")

to update old Vorbis files.

Summary:
Yes, supporting Vorbis tags will be a wart once we have a proper
metadata stream standard -- but it's a wart we -already- will have to
deal with (thanks to the standard TITLE, ALBUM, etc. tags), and adding
support for further tags does -not- make this significantly worse,
unless you think every unnecessary line is an indelible blot.

---------------------------------------------------------
In summary:

A proper metadata standard will be nice when it comes.
It's not here today, nor is it coming tomorrow, as far as I know:
the Xiph developers are busy with Theora, Tarkin, hardware support
for Vorbis, etc.

In the meantime, using Vorbis tags to store short, textual metadata:
- solves problems -now-
- does not hurt
- does not impose an undue backwards compatibility burden
  (as I have demonstrated above)
- and in fact allows development of program internals
  to deal with this metadata -in whatever form it may come-
  in future.

best,
  -nils
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis mailing list