From Wikipedia, the free encyclopedia
CDDB, short 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 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.
CDDB was invented by Ti Kan around late 1993 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. in 1995. 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 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.
In 2000, CDDB Inc. was renamed Gracenote. Early announcements asserted that access to the CDDB service would "remain 100% free to software developers and consumers." The license was nonetheless changed, 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. Any programs using a CDDB lookup had to display a CDDB logo while performing the lookup.
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.
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 .
 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.
This information is often provided by end users. In iTunes, which uses Gracenote, users name the CD tracks and then use the "Submit Track Names" option under the "Advanced" heading in the toolbar to submit track information.
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.
 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, mod 255. 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 a single track of duration 3610 seconds.
First we calculate the XX checksum by taking the sum of the track starting times mod 255. Since CDs have a 2-second offset from the start of disc data, XX becomes "02".
Second, the total CD play duration of 3610 seconds in hex is 0e1a, so YYYY becomes "0e1a".
Finally, there is one track on this CD so ZZ becomes "01".
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).
 See also
- ^ Copeland, Michael (2004-03-01). "The Magic Behind the Music". Business 2.0. http://money.cnn.com/magazines/business2/business2_archive/2004/03/01/363577/index.htm. Retrieved 2009-05-23.
- ^ Dean, Katie (2004-07-07). "The House That Music Fans Built". Wired. http://www.wired.com/entertainment/music/news/2004/07/64033?currentPage=all. Retrieved 2009-05-23.
- ^ Kan, Ti (2004-04-21). "Change History". http://www.ibiblio.org/tkan/xmcd/changes.txt. Retrieved 2007-10-19.
- ^ "What is Gracenote?". Gracenote. http://www.gracenote.com/music/corporate/FAQs.html/faqset=what/page=0. Retrieved 2007-10-19.
- ^ Kan, Ti (2005-11-16). "Ti Kan: Software". http://www.ibiblio.org/tkan/software/. Retrieved 2007-10-19.
- ^ "Gracenote: Company Info". Gracenote. http://www.gracenote.com/music/corporate/founders.html. Retrieved 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 2008-12-16.
- ^ Gracenote (2000-07-24). "CDDB Re-Launches As Gracenote With New Products". Press release. http://www.gracenote.com/company_info/press/2000/2000072400/. Retrieved 2010-01-25.
- ^ Gracenote (1999-04-27). "CDDB, World's Largest Online CD Music Database, Debuts New Web Site". Press release. http://www.gracenote.com/company_info/press/1999/1999042700/. Retrieved 2010-01-25.
- ^ 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 2007-10-19.
- ^ "Gracenote News: Sony Corporation of America Completes Gracenote Acquisition". http://www.gracenote.com/company_info/press/060208/.
- ^ http://www.gracenote.com/company_info/FAQ/FAQs/
- ^ http://docs.info.apple.com/article.html?path=iTunesMac/8.0/en/15455.html
- ^ "Classical Music Initiative". Gracenote. http://www.gracenote.com/business_solutions/cmi/. Retrieved 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 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 2007-10-19.