CDDB (Compact Disc Databaseの略)は、ソフトウェアアプリケーションがインターネット経由でオーディオCD(コンパクトディスク)情報を検索するためのデータベースです。これは、クライアントが(ほぼ)一意のディスクIDを計算し、データベースにクエリを実行することによって行われます。その結果、クライアントはアーティスト名、CDタイトル、トラックリスト、およびその他の追加情報を表示できます。CDDBはGracenote , Inc.のライセンス商標です。 [ 1 ] [ 2 ]
このデータベースは主にメディアプレーヤーやCDリッピングソフトウェアで使用されます。メディアプレーヤーやCDリッピングソフトでCDが認識されない場合でも、iTunesやMusicMatch Jukeboxなどのメディアプレーヤーでユーザーが曲名やアーティスト名などを入力すれば、データベースに追加できます。
CDDBの必要性は、CDの当初の設計に直接起因するものです。CDは蓄音機レコードの進化形として構想されたため、オーディオトラックを識別すべきデータファイルとはみなしておらず、ましてやインデックス化することも想定していませんでした。オーディオCDフォーマットにはディスク(アルバム)名もトラック名も含まれていないため、現代のメディアシステムでCDを使用する際には、補足的なデータベースが必要となります。後に開発されたCD-Textは、同じ問題に対する別の解決策です。
CDDBは、 1993年後半頃にTi Kanによって考案された[ 3 ]ローカルデータベースで、彼の人気音楽プレーヤーアプリケーションxmcdに付属していた。アプリケーションの変更履歴には、1994年2月25日にリリースされたバージョン1.1で初めてCDDBという略語が記載されている。ユーザーは電子メールでKanに新しいエントリをデータベースに送信する。
データベースはすぐに扱いにくくなり、カンはスティーブ・シェルフの協力を得て、1995年にCDDB Inc. [ 4 ]として運営されるネットワークアクセス可能なバージョンのデータベースを作成した。 [ 5 ]グラハム・トールはCDDBサーバーのホスティングを提供し、ホスティング費用を賄うためにバナー広告収入モデルを作成した。CDDBの元となるソフトウェアはGNU General Public Licenseの下でリリースされ、多くの人がサービスも無料のままだと考えてCD情報を提供した。
このプロジェクトは最終的に1998年にCDDB LLCとして法人化され[ 6 ]、すぐにカン、シェルフ、トールによってハイテク家電メーカーのエシエントに売却された。2006年のWired誌のインタビューで、シェルフは、エシエントは創設者によるサービスの継続的な開発を保証し、多数の企業がCDDBを買収してマイクロソフトなどの大手企業に即座に売却しようと入札し、あるケースでは恐喝を試みていた状況下で事業を保護してくれる唯一の企業だったと述べた。マイクロソフトはCD認識サービスを望んでいたが、CDDB Inc.と直接取引することはなかった[ 7 ]。
2000 年、CDDB Inc. はGracenoteに社名変更されました。[ 8 ] 1999 年の発表では、CDDB サービスへのアクセスは「ソフトウェア開発者と消費者に 100% 無料のまま」であると主張されていました。[ 9 ]それにもかかわらず、Gracenote は独自のライセンスに切り替えたため、無償の貢献者の作業を搾取しているという批判が起こり、CDDB の最後の無料ライセンス版をベースにしたFreedbが 2001 年にリリースされるきっかけとなりました。 [ 10 ] [ 11 ] [ 12 ] 2001 年 3 月、Gracenote は、ライセンスのないアプリケーション (Freedb など) がデータベースにアクセスすることを禁止しました。Gracenote はプログラマーに CDDB1 と互換性のない新バージョン CDDB2 に切り替えるよう強制したかったため、CDDB1 (CDDB のオリジナルバージョン) の新しいライセンスは入手できなくなりました。[ 12 ] Freedb はすぐに Gracenote よりも人気が高まりましたが、[ 10 ] 2006 年までに「停滞」していると言われ、当時 Gracenote のチーフ アーキテクトであった Scherf はこれを「CDDB の成長に必要な集中力と献身はコミュニティの取り組みでは得られなかった」という証拠と捉えました。[ 11 ]
2008年6月、ソニー・コーポレーション・オブ・アメリカはGracenoteの買収(完全所有)を完了したと、Gracenoteのウェブサイトのニュース記事に記載されています。[ 13 ]その後、2014年にトリビューン・メディア・サービス(TMS)がソニーからGracenoteを買収しましたが、[ 14 ] 2016年12月にニールセンに転売しました。[ 15 ]
CDDBは、単に個々のトラックを識別するだけでなく、CD全体を識別することを目的として設計されています。識別プロセスでは、「discid」と呼ばれるCDの「指紋」を作成します。これは、CDの目次に格納されているトラックの長さ情報に基づいて計算を行うことで作成されます(計算例については次のセクションを参照)。このdiscidは、インターネットデータベースで使用され、通常はCD全体のトラック名をダウンロードしたり、新たに識別されたCDのトラック名を送信したりするために用いられます。
この情報は多くの場合、エンドユーザーによって提供されます。[ 16 ] Gracenoteを使用するiTunesでは、ユーザーがCDトラックに名前を付け、ツールバーの「詳細」見出しの下にある「トラック名を送信」オプションを使用してトラック情報を送信します。[ 17 ]
CDの識別はトラックの長さと順序に基づいて行われるため、CDDBはトラックの順序が変更されたプレイリストや、異なるCDのトラックをまとめたコンピレーションを識別することはできません。また、CDDBはトラック数とトラックの長さが同じ異なるCDを区別することもできません。
CDDB1は、CDを32ビットの数値で識別します。この数値は通常、8桁の16進数(XXYYYYZZ)で表示されます。最初の2桁(XX)は、CD上の各トラックの開始時刻を255で割った値に基づくチェックサムを表します。次の4桁(YYYY)は、最初のトラックの開始から最後のトラックの終了までのCDの合計時間を秒単位で表します。最後の2桁(ZZ)は、CDに収録されているトラック数を表します。
例えば、CDに3610秒の長さのトラックが1つだけ収録されているとします。
まず、XXのチェックサムは、トラックの開始時間を255で割った余りを合計することによって計算されます。CDはディスクデータの開始位置から2秒のオフセットがあるため、XXは「02」になります。
第二に、CDの総再生時間3610秒を16進数で表すと0e1aとなるため、YYYYは「0e1a」になります。
最後に、このCDには1曲しか収録されていないので、ZZは「01」となります。
例の CD の完全なディスク ID は「020e1a01」です。CD の開始から 2 秒後から始まる 3610 秒のトラックが 1 つ収録されている CD には、このディスク ID が付与されます。同じディスク ID を持つ複数の CD を区別するために、CDDB1 データベースは複数のカテゴリに分類されています。同じ CDDB1 ID を持つ複数の CD リリースが競合する場合、それらは別のカテゴリ (クラシック、ロック、ブルース、フォーク、その他など) に分類されます。
CDDB1 ディスク ID を計算するためのサンプルコードは、 Javaなどさまざまなプログラミング言語で Web 上で入手可能です。[ 18 ]
CDDBは当初、典型的なアーティスト/アルバム/曲の構造を持つポップ/ロック音楽に特化していました。そのデータベースは、作曲家の名前を保存する標準的な方法が元々なかった構造上の問題から、クラシック音楽のCDに関する適切な情報が不足していることがよくあります。 [ 19 ] [ 20 ]
2007年、Gracenoteは、すべての追加情報を3つのフィールド構造に配置する拡張フォーマットであるクラシック音楽イニシアチブ(CMI)を発表しました。クラシック曲のタイトルには、例えば「ヴィヴァルディ:四季作品8/1 春 ― 第1楽章 アレグロ」のように作曲家が含まれるようになりました。アーティストフィールドには、アンサンブル、指揮者、場合によってはソリストに関するすべての情報が含まれます。例えば、「ジョセフ・シルバースタイン、小澤征爾、ボストン交響楽団」のようにです。