CDDB
From Wikipedia, the free encyclopedia
CDDB (which stands for Compact Disc Database) is a licensed trademark of Gracenote, Inc. It is a database for software applications to look up audio CD (compact disc) information over the Internet. This is performed by a client which calculates a (nearly) unique disc ID and then queries the database. As a result, the client is able to display the artist name, CD title, track list and some additional information.
The database is used primarily by media players and CD ripper software.
The need for CDDB is a direct consequence of the original design of the CD, which was conceived as an evolution of the gramophone record, and did not consider the audio tracks as data files to be identified and indexed. The audio CD format does not include the disc name or track names, so a supplemental database is needed to supply this information when discs are used with modern media systems. A later development called CD-Text is another solution to the same problem. CDDB also seems to be used by some software to identify the songs played on the radio and save them as MP3 tracks.
Contents |
[edit] History
CDDB was invented by Ti Kan around late 1993[1] as a local database which was delivered with his popular xmcd music player application. The application's change history first mentions the acronym CDDB in version 1.1 released on February 25, 1994. Users would submit new entries to the database via email to Kan.
The database quickly became unwieldy and Kan enlisted the help of Steve Scherf to create a network accessible version of the database operating as CDDB Inc.[2] in 1995.[3] Graham Toal supplied hosting for the CDDB server and created a banner advertising revenue model to pay for the hosting. The original software behind CDDB was released under the GNU General Public License, and many people submitted CD information thinking the service would also remain free.
The project was eventually incorporated as CDDB LLC in 1998[4] and was soon sold by Kan, Scherf, and Toal to a high tech consumer electronics manufacturer called Escient. In a 2006 interview in Wired, Scherf claimed that Escient was the only company that would guarantee the continued development of the service by its founders, as well as protect the operation in an atmosphere where numerous companies were bidding — and in one case, attempting extortion — to acquire and immediately sell the CDDB to major players like Microsoft, which wanted a CD-recognition service but wouldn't deal directly with CDDB Inc.[5]
In 2000, CDDB Inc. was renamed Gracenote.[6] Despite early announcements that access to the CDDB service would "remain 100% free to software developers and consumers",[7] the license was changed, however, and some programmers complained that the new license included certain terms that they couldn't accept: if one wanted to access CDDB, one was not allowed to access any other CDDB-like database such as freedb, and any programs using a CDDB lookup had to display a CDDB logo while performing the lookup.[8]
In March 2001, CDDB, now owned by Gracenote, banned all unlicensed applications from accessing their database. New licenses for CDDB1 (the original version of CDDB) were no longer available, since Gracenote wanted to force programmers to switch to CDDB2, a new version incompatible with CDDB1 and hence with freedb.[8]
The license change motivated many forks in the CDDB project tree, including the freedb project, which is intended to remain free software.
As of June 2, 2008, Sony Corp. of America completed acquisition (full ownership) of Gracenote, per the news note on the Gracenote website [9].
[edit] How CDDB works
CDDB was designed around the task of identifying entire CDs, not merely single tracks. The identification process involves creating a "discid", a sort of "fingerprint" of a CD created by performing calculations on the track duration information stored in the table-of-contents of the CD (see the following section for an example calculation). This discid is used with the Internet database, typically either to download track names for the whole CD or to submit track names for a newly-identified CD.
Since identification of CDs is based on the length and order of the tracks, CDDB cannot identify playlists in which the order of tracks has been changed, or compilations of tracks from different CDs. CDDB also cannot distinguish between different CDs that have the same number of tracks and the same track lengths.
For classical music, Gracenote has announced an enhanced format, the Classical Music Initiative (CMI).[10][11]
[edit] Example calculation of a CDDB1 (FreeDB) disc ID
CDDB1 identifies CDs with a 32-bit number, usually displayed as a hexadecimal number containing 8 digits: XXYYYYZZ. The first two digits (labeled XX) represent a checksum based on the starting times of each track on the CD. The next four digits (YYYY) represent the total time of the CD in seconds from the start of the first track to the end of the last track. The last two digits (ZZ) represent the number of tracks on the CD.
For example, suppose a CD contains one track. Then the ZZ digits in the disc ID will be "01".
Now suppose that the total duration of the CD is 3610 seconds (from the start of track 1 to the end of track 1 in this case). This number is decimal, and must be converted into the hexadecimal equivalent "0e1a" which form the YYYY portion of the disc ID.
Finally, the two-digit checksum needs to be calculated from the start time in seconds of each track. There is one track in this example CD, and as with most CDs, the first track starts at 2 seconds (there is a 2 second silence leader). Therefore, summing up all of the decimal digits of each track start time yields the value 2. This value is less than 255, so it does not need to be evaluated modulo 255; and therefore, the XX digits of the disc ID are "02". According to freedb.org, the example code is done modulo 255 and not 256.
So the full disc ID of the example CD is "020e1a01". Any CD which contains one track with a duration of 3610 seconds starting 2 seconds from the beginning of the CD will have this disc ID. To distinguish between different CDs which happen to have the same disc ID, the CDDB1 database is organized into multiple categories. If there is a conflict with different CD releases possessing the same CDDB1 id, they can be placed in a different category (such as classical, rock, blues, folk or misc).
Sample code for calculating CDDB1 disc IDs in various programming languages is available on the web, such as in Java.[12]
[edit] Alternatives
Alternative projects include freedb, MusicBrainz, and AMG LASSO.
[edit] See also
[edit] References
- ^ Kan, Ti (2004-04-21). "Change History". http://www.ibiblio.org/tkan/xmcd/changes.txt. Retrieved on 2007-10-19.
- ^ "What is Gracenote?". Gracenote. http://www.gracenote.com/music/corporate/FAQs.html/faqset=what/page=0. Retrieved on 2007-10-19.
- ^ Kan, Ti (2005-11-16). "Ti Kan: Software". http://www.ibiblio.org/tkan/software/. Retrieved on 2007-10-19.
- ^ "Gracenote: Company Info". Gracenote. http://www.gracenote.com/music/corporate/founders.html. Retrieved on 2007-10-19.
- ^ Van Buskirk, Eliot (2006-11-13). "Gracenote Defends Its Evolution". Wired. http://www.wired.com/entertainment/music/commentary/listeningpost/2006/11/72105?currentPage=all. Retrieved on 2008-12-16.
- ^ Gracenote (2000-07-24). CDDB Re-Launches As Gracenote With New Products. Press release. http://www.gracenote.com/music/corporate/press/article.html/date=2000/2000072400.html. Retrieved on 2007-10-19.
- ^ Gracenote (1999-04-27). CDDB, World's Largest Online CD Music Database, Debuts New Web Site. Press release. http://www.gracenote.com/music/corporate/press/article.html/date=1999/1999042700. Retrieved on 2007-10-19.
- ^ a b "Why freedb.org?". freedb. Archived from the original on 2004-10-13. http://web.archive.org/web/20041013091839/www.freedb.org/modules.php?name=Sections&sop=viewarticle&artid=2. Retrieved on 2007-10-19.
- ^ "Gracenote News: Sony Corporation of America Completes Gracenote Acquisition". http://www.gracenote.com/company_info/press/060208/.
- ^ "Classical Music Initiative". Gracenote. http://www.gracenote.com/business_solutions/cmi/. Retrieved on 2008-04-23. For the original 2007-01-08 press release, see: archive.org archive, or findarticles.com archive.
- ^ "Roll Over Beethoven: iTunes' New Standard". CBS News (Associated Press). 2007-01-09. http://www.cbsnews.com/stories/2007/01/09/ces/main2339906.shtml. Retrieved on 2008-04-23.
- ^ Sedgewick, Robert; Wayne, Kevin (2007-03-05). "CDDB.java". Princeton University Computer Science Department. http://www.cs.princeton.edu/introcs/51data/CDDB.java.html. Retrieved on 2007-10-19.