Gracenote was earlier known as CDDB, or Compact Disc Data Base. It is still the same service, however, with no significant changes after Gracenote took over in July 2000.
The Gracenote service is free (as in beer) to use for end users. The company does include a rather anal retentive licensing policy. This has led to the introduction of FreeDB - which might prove to be the death of the Gracenote CDDB service.
What the Gracenote CDDB service does
Quite simply, a CD Player that uses CDDB connects to the CDDB service and shows the name of the artist, the name of the disc, and the names of the tracks. It can also store other information, such as genre and year of recording.
Most MP3 rippers take advantage of the CDDB service, so you won't have to enter the id3 tags yourself.
How it works
The CDDB Technology
CDs have no identifying marks as such. There are no serial numbers or ISBN numbers to distinguish one Compact Disc from another.
CDs do have one identifying mark, however: The CD's TOC (Table Of Contents). This exists on every CD, to allow CD players to know where a song begins and ends (this is how you can play any track on a CD, unlike with Music Cassettes or other tape-based media)
The TOC of a CD is highly likely to be unique. Let's take this as an experiment: Have a look at all your CDs. Say that you have a 1000 CDs. Now, pick one at random. Let's say that it has 18 tracks. Discard all the other CDs that have a track number other than 18. You might now have about 200 CDs left.
Then look at the track length of the first track of the CD you picked. Discard all the CDs that don't have the same track length. You now have at most 3-4 CDs left of your original 1000. If you now look at the second track, you will see that of the remaining CDs, chances are small for them having the same track lengths.
This is how the CDDB works, too. And it works well - it is conceivable that there might be CDs out there that have the same signature, but that chance is very, very small.
Getting the data
When you insert a CD and have your program look it up in the CDDB database, the TOC of your CD is sent to Gracenote, and the track names (along with the other information mentioned above) are returned.
Putting the data
When* you try to request the info for a CD that does not exist, you get a message on screen requesting you to enter the information. When you do, you enter the name of the tracks etc, and press a button that sends the info to CDDB. The data is stored, and anyone else in the world who now requests info about that CD gets your information.
*) You might very well never find a CD that has not been entered into the CDDB. I regularily find those, but that is only because I often get mix CDs from friends, and because I get lots of promo material from the newspaper I work for
The Database relies 100% on the end users' participation in the creation of the database. An incredibly smart scheme, of course, because this reduces the database maintenance considerably.
Despite how great it is, CDDB has several weaknesses. The most important one is that people can't spell. There are just so many moronic people out there, and you will quite often find that people spell your favourite band's name wrong (it's DREAM THEATER, not DREAM THEATRE!), that they spell the song names wrong, or that they will input all the information in CAPITAL LETTERS instead of normal case.
A few words about Gracenote, the company
Gracenote is based in Berkeley, California, and was founded in 1995 (then as CDDB) by two computer programmers.
In 1997, the CDDB servers had 2,700 users in total, while it today serves more than 1,000,000 users daily. CDDB has more than 28,000,000 users monthly, and is licensed to more than 1,250 developers.
At the moment, Gracenote's two projects are CDDB and CDKey.