| ID3 tag | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID3タグは音楽・音声データの管理情報をMP3ファイル内に書き込むための仕組みです。この機能を使ってMP3ファイルにはアーティスト名、作成年、音楽ジャンルなどの情報が書き込まれています。
Windows XPでID3タグの情報を見るには、エクスプローラの画面でMP3形式のファイルを選択し、右クリックメニューの「プロパティ」で「概要」タブを開き、「詳細設定」ボタンを押します。記録されているID3タグ情報が表示されます。 または、MP3ファイルを含んだフォルダの「表示」メニューから「詳細」を選択しても、ID3タグの情報の一覧ができます。この表示にしておいて、「名前」、「サイズ」、「種類」など項目を示す部分で右クリックすると、表示中の情報以外の項目も選択できるようになります。必要な項目にチェックを付けてください。 便利なID3タグですが、元からMP3ファイルの規格に含まれていたものではなく、1996年に公開された、「Studio3」(作:Eric Kemp氏)というMP3ソフトから採用された仕組みです。 しかし、当初のままでは音楽情報が十分に表現できないため、その後、NPOのID3協会が中心となり、拡張規格としてID3 v2が提案されています。現在の最新版はID3 v2.4です。 困ったことに、バージョンが違うと情報収録の仕組みも違うため、ソフトによっては十分に対応できないこともあります。
ID3バージョン 1 は、MP3 ファイルの終わりに全 128 バイトのデータを使って、30 文字のテキストフィールドで「アルバム」、「アーティスト」、「タイトル」などの単純なフィールドを含みます。 ID3バージョン 2 は、可変長フィールドが利用できるように全面改定されました。ID3 バージョン 2 は、より長いテキスト情報とその他の情報(何でファイルをエンコードしたか、Web サイト、写真、歌詞など)を含みます。
■ ID3v2 フレームの定義
●4.1.一意的なファイル識別子このフレームは、その内容に関連したさらなる情報を含むデータベースの中で、そのファイルを一意的に識別するためのものである。「http://www.id3.org/dummy/ufid.html」という文字列をテスト用に使うことが出来る。このフレームは、そのようなことを行わないソフトウエアが削除してしまっても安全である。「所有者識別子」は空欄にすることはできない(終了を表すヌル文字以外に一字以上必要)。「所有者識別子」の後には実際の識別子が続く。識別子は最大64文字になっている。一つのタグ中に複数の「UFID」フレームを持たせることは可能だが、すべてのフレームは同じ「所有者識別子」を持っていなければならない。
●4.2.テキスト情報フレームテキスト情報フレームとは、アーティスト名やアルバム名といった情報を格納している、もっとも重要なフレーム群である。一つのタグ中には、同じ種類のテキスト情報フレームを複数含めることはできない。もし文字列情報中に終端文字($00 (00))が含まれていた場合は、それ以後の情報はすべて破棄され、表示されることはない。テキスト情報フレームのフレームIDはすべて「T」で始まっている。「」をのぞけば、テキスト情報フレーム以外のフレームが「T」で始まることはない。テキスト情報フレームはすべて以下のフォーマットになっている。
●4.2.1.テキスト情報フレーム - 詳細
TALB
「アルバム/映画/ショーのタイトル」フレームは、そのオーディオファイルの音源となった録音のタイトルを意味する。
TBPM
「BPM」フレームには曲の主要部分での一分間の拍数が格納される。BPMは整数値で、数字文字列として格納される。
TCOM
「作曲者」フレームは作曲者の名前を意味する。複数の作曲者がいる場合には「/(スラッシュ)」で区切る。
TCON
「内容のタイプ」、これはID3v1ではジャンル(Genre)と呼ばれていたもので、1バイトの数値で格納されていたが、ID3v2では数字文字列で格納するようになった。このフレームにはID3v1.1で定義されたジャンルを一つ、または複数格納することができるし、カテゴリリストを正確に更新していくことが不可能であるため、独自のジャンルを定義することも可能である。
ID3v1のジャンルコードへの参照を行う場合は、1バイト目に「(」を置き、続いてジャンルコードを置き、最後に「)」を置く。参照の後にさらに追加情報をつけることもできる。たとえば、「(21)」や「(4)ユーロディスコ」といったようにである。「(51)(39)」といったように、複数の参照値を同じフレームに含めることもできる。もし、追加情報が「(」で始まってしまう場合は、「((」で置き換えることができる。「((どのジャンルにも分類できない)」や「(55)((だと思います...)」という感じである。以下に示す「(RX)」などのタイプはID3v2で新たに定義されたもので、数値で表される既存のジャンルと同じように扱うことができる。
TCOP
「著作権情報」フレームは年と1文字の空白文字で始まる(これで5文字になる)。これはオリジナルの音源の著作権保有者(オーディオファイルの、ではない)を示す。このフレームが存在していないということは、著作権情報が公開されていないか、削除されたことを意味する。その音源がパブリックドメインであることを示すわけではない。このフィールドが表示される場合には、必ずその前に「Copyright (C) 」という文字列をつけなくてはいけない。「(c)」は実際にはCを丸で囲った文字1文字で表示される。
TDAT
「日付」フレームはDDMM(日2桁+月2桁)の数字文字列で格納され、録音の日付を意味する。このフィールドは常に長さが4文字である。
TDLY
「プレイリスト遅延時間」フレームはプレイリスト中のすべての曲の間にある無音時間をミリ秒単位で定義している。プレーヤーは「ETCO」フレームがもしあれば、それを用いて曲の始めと終わりの無音部分を「プレイリスト遅延時間」に合うようにスキップするべきである。この時間は数字文字列で表現される。
TENC
「エンコードした人」フレームには、そのオーディオファイルをエンコードした個人もしくは組織の名前を入れる。オーディオファイルの著作権がエンコードした人にある場合、このフレームには著作権情報が含まれるかもしれない。
TEXT
「作詞家/文書作成者」フレームは録音中の歌詞や文書の作成者の名前を格納するためのものである。複数いる場合は「/(スラッシュ)」で区切る。
TFLT
「ファイルタイプ」フレームはこのタグの付けられたオーディオの形式を示している。以下の形式と詳細事項が定義されている。
しかし、上記以外の形式が使われている可能性もあるだろう。その場合は既に定義されているのと同様に「TMED」中で指定することが出来る。しかし、その中で括弧を使うことは出来ない。もしタグ中にこのフレームがなかった場合は、そのファイルのオーディオタイプは「MPG」であるとみなされる。
TIME
「時間」フレームはHHMM(時間2桁分2桁)の数字文字列形式で、レコーディングに要した時間を表す。このフレームは常に4文字長である。
TIT1
「内容の属するグループの説明」フレームはそのサウンドが大きな音楽・サウンドのカテゴリに属している場合に使用する。例えば、クラシック音楽はしばしば異なる音楽のセクションに分類される(例えば、「ピアノコンチェルト」「天候-ハリケーン」)。
TIT2
「タイトル/曲名/内容の説明」フレームはそのファイルの中身の実際の名前である(たとえば「アダージョ」「ハリケーン・ドナ」)。
TIT3
「サブタイトル/説明の追加情報」フレームはタイトルに直接付随する情報(「Op. 16」や「Wembleyでのライブパフォーマンス」など)を格納するものである。
TKEY
「初めの調」を表すこのフレームは、音楽が始まったときの、最初のキー(調)を格納しておく。このフレームは最大3文字の文字列として表現される。基本となる調は「A」「B」「C」「D」「E」「F」「G」で表現され、半音は「b」と「#」で表現する。マイナーの場合は「m」を付ける。たとえば「Cbm」といった具合である。その曲が無調だったばあいは、ただ「o」と入れればよい。
TLAN
「言語」フレームにはオーディオ中で話されている文章、もしくは歌われている歌詞の言語を格納している。言語の種類はISO-639-2で定義された3文字の文字列であらわされる。文章中で2つ以上の言語が使われている場合は、言語コードは言語の出現順に並べて記述される。
TLEN
「長さ」フレームには、オーディオファイルの長さがミリ秒単位で格納されている。数字文字列が使われる。
TMED
「メディアタイプ」は、オーディオファイルの音源がどんなメディアであったかを意味する。このフレームは文字列か、以下のリストで示される定義済みのメディアタイプへの参照が入っている。定義済みのメディアタイプへの参照の場合は、「(」と「)」で囲まれており、そのあとに文字列の追加情報がつくこともある。たとえば「(MC) 4チャンネル」といった具合である。もし追加情報を「(」で始めたい場合は、代わりに「TCON」フレームと同様に「((」を使う。定義済みの追加情報はメディアタイプのすぐあとに付ける。たとえば「(CD/A)」や「(VID/PAL/VHS)」といった具合である。
TOAL
「オリジナルのアルバム/映画/ショーのタイトル」フレームはオリジナルの録音(もしくは音源)のタイトルを格納することを目的とする。このフレームは、例えばファイルに入っている音楽が既にリリースされた曲のカバーだった場合などに利用する。
TOFN
「オリジナルファイル名」フレームはそのファイルに、(現在付けられているファイル名よりも)もっと適した名前が有る場合に格納しておく。メディアによってはファイル名に使える長さが制限されており、必要な長さの名前を付けられないことがあるからだ。格納するファイル名では大文字と小文字は区別され、接尾子(拡張子)も含まれる。
TOLY
「オリジナルの作詞家/文書作成者」フレームはオリジナル録音の文書作成者を格納することを目的としている。このフレームは、例えばファイルに入っている音楽が既にリリースされた曲のカバーだった場合などに利用する。文書作成者が複数いる場合は、「/」で区切る。
TOPE
「オリジナルアーティスト/演奏者」フレームはオリジナル録音の演奏者を格納することを目的としている。このフレームは、例えばファイルに入っている音楽が既にリリースされた曲のカバーだった場合などに利用する。演奏者が複数いる場合は、「/」で区切る。
TORY
「オリジナルのリリース年」フレームはオリジナル録音のリリース年を格納することを目的としている。このフレームは、例えばファイルに入っている音楽が既にリリースされた曲のカバーだった場合などに利用する。このフレームのフォーマットは「TYER」と同じである。
TOWN
「ファイルの所有者/ライセンシー」フレームにはファイルとその中身の所有者もしくはライセンシーの名前を格納する。
TPE1
「主なアーティスト/主な演奏者/ソリスト/演奏グループ」は主なアーティストを格納するのに用いる。複数いる場合は「/」で区切る。
TPE2
「バンド/オーケストラ/伴奏」フレームはレコーディングを行った演奏者の追加情報を格納する。
TPE3
「指揮者」フレームは指揮者の名前を格納しておく。
TPE4
「翻訳者, リミックス, その他の修正」フレームは、リミックスや既存の何かを翻訳した人々などの追加情報を記録する。
TPOS
「セット中の位置」フレームにはオーディオがセット中のどこに位置するものなのかを意味する数字文字列が格納される。このフレームは「TALB」フレームに格納されている音源が複数のメディアに分割されている場合に使用する。たとえば、2枚組CDなどがこれにあたる。値はセット中の位置とセットの総数を示す数字文字列を「/」で区切って格納する。たとえば「1/2」といった具合である。
TPUB
「出版社」フレームは出版社やレーベルの名前を格納するものである。
TRCK 「トラックの番号/セット中の位置」フレームは、そのオーディオファイルがオリジナルの録音中で何番目になっているかを示す数字文字列である。このフレームは「/」で区切られたあとにその録音の総トラック数を格納する。たとえば「4/9」といった具合である。
TRDA
「録音日付」フレームは「TYER」「TDAT」「TIMEフレームを補完する目的で使用される。たとえば、「6月 4日−7日、12日」は「TYER」フレームと同時に使うと良い。
TRSN
「インターネットラジオ局の名前」フレームはそのオーディオがストリーミングされたインターネットラジオ局の名前を格納する。
TRSO
「インターネットラジオ局の所有者」フレームはそのオーディオがストリーミングされたインターネットラジオ局の所有者名を格納する。
TSIZ
「サイズ」フレームはオーディオファイルの長さ(ID3v2タグをのぞいた長さ)をバイト数で、数字文字列で格納する。
TSRC
「ISRC」フレームは国際標準レコーディングコード(ISRC)(12文字)を格納するためのものである。
TSSE
「エンコードに使用したソフトウエア/ハードウエアとセッティング」フレームはそのファイルのエンコード時に使用したエンコーダとその設定を格納する。プログラムが実行されたコンピュータの名前ではない。
TYER
「年」フレームはレコーディングされた年を数字文字列で格納する。このフレームは常に4文字である(10000年までの話である)。
●4.2.2.ユーザー定義文字情報フレーム
このフレームはその他の「T」フレームと同様、オーディオファイルに関する文字列を格納するために用いられる。このフレームの中身は、ヌル文字で終わる文字列として格納される文字列の説明と、実際の文字列で構成されている。一つのタグに複数の「TXXX」フレームを持つことが可能だが、同じ文字列の説明を持つフレームを2つ以上作ることは出来ない。
●4.3.URL リンクフレームこのフレームでは、ツアー情報、価格情報や通常のニュースなどの時によって変化する情報を掲載したWeb Pageに関する情報をタグに追加したい場合に使用する。 URL リンクフレームは特にフレーム毎の説明に記述がない場合は、一つのタグ中に、一種類につき、一つずつしか入れることが出来ない。もし文字列情報中に終端文字($00 (00))が含まれていた場合は、それ以後の情報はすべて破棄され、表示されることはない。URL リンクフレームのフレームIDはすべて「W」で始まっている。URL リンクフレーム以外のフレームが「W」で始まることはない。URL リンクフレームはすべて以下のフォーマットになっている。
●4.3.1.URL リンクフレーム- 詳細
WCOM
「商業上の情報」フレームはそのアルバムがどこで買えるか、といった情報を知ることの出来るWebページのURLを格納している。一つのタグの中には、異なったURLを格納した2個以上の「WCOM」フレームが存在することもあり得る。
WCOP
「著作権/法的情報」フレームは、そのファイルの使用条件や所有権に関する情報が掲載されているWebページのURLを格納している。
WOAF
「オーディオファイルの公式Webページ」フレームは、その名の意味する通りのURLを格納するフレームである。
WOAR
「アーティスト/演奏者の公式Webページ」はアーティストの公式WebページのURLを格納する。もし一人以上の演奏者がいた場合には、一つのタグの中に複数の「WOAR」フレームが存在することもあり得る。ただし、同じURLを持つ「WOAR」フレームが2つ以上あってはならない。
WOAS
「音源の公式Webページ」は例えば映画のWebページなど、オーディオファイルの音源の公式WebページのURLを格納する。
WORS
「インターネットラジオ局の公式ホームページ」はインターネットラジオ局のホームページのURLを格納する。
WPAY
「支払い」フレームは、そのファイルの支払いを取り扱うWebページのURLを格納する。
WPUB
「出版社の公式Webページ」は出版社の公式WebページのURLを格納する。
●4.3.2.ユーザー定義URLリンクフレームこのフレームは他の「W」で始まるフレームと同じように、そのオーディオファイルに関するURLリンクを格納するためのものである。このフレームは文字列によるそのURLの説明があり、ヌル文字列が来たあとに、実際のURLが続く。URLの文字コードは常にISO-8859-1でなければならない。一つのタグ中に複数の「WXXX」タグがあってもかまわないが、同一の「説明」を持つフレームが複数あってはならない。
●4.4.協力者一覧音楽家や技術者など、オーディオファイルには数多くの人が貢献している可能性があるので、「テキスト情報フレーム」だけではそのすべての人を格納するのに不十分である。「協力者一覧」フレームはそれらの人々の名前と、その人たちがどういう関わり方をしたかを格納するためのフレームである。このフレームは単純なフレームで、関わり方と関わった人々、という組み合わせを複数格納したフレームである。一つのタグに複数の「IPLS」タグがあってはならない。
●4.5.音楽CD識別子このフレームはそのファイルの曲がCDを音源とする場合に、CDDBの様なデータベースで、どのCDかを識別するために使用する。このフレームはCDの内容一覧(TOC:Table Of Contents)のバイナリダンプで構成されている。これは、4バイトのヘッダで始まり、8バイトの「CD中のトラック」がトラック数だけ続き、そして8バイトの「リードアウト領域」で終わる構成になっていて、最大は804バイトである。それぞれのCDのトラックの始まりの位置は4バイトのCDフレームの絶対アドレスで指定される(時間ではない)。このフレームを含めるためには、たとえCD中に1トラックしかないとしても、有効な「TRCK」フレームがタグ中に必要である。一つのタグに「MCDI」フレームが複数存在してはいけない。
●4.6.イベントタイムコードこのフレームは楽曲のキーイベントの同期を実現するためのものである。ヘッダは以下のようになっている。
タイムスタンプフォーマットは以下の通りである。 $01 絶対時間、32ビットサイズ、単位はMPEGフレーム 絶対時間とは、すべてのタイムスタンプがファイルの開始からの時間であらわされることを意味する。 ヘッダの後には、キーイベントが以下のようなフォーマットで列挙される。
曲の始まりの位置を指定するときや、一つ前のイベントの直後にイベントがある場合は、「タイムスタンプ」のゼロをセットする。すべてのイベントは、時系列にソートされている必要がある。イベントのタイプは以下の通りである。
「イントロ開始」のような何かを開始するイベントは必ず終了しなくてはならないわけではない。「未定義の同期($E0-EF)」はユーザーイベントに使用するものである。スクリーンセーバーの立ち上げ、ステージ上の爆発のセットといった何かを音楽と同期させたい場合があるだろう。 一つのタグの中に、「ETCO」フレームは一つしか含めることができない。 ●4.7.MPEG ロケーションルックアップテーブルMPEG オーディオファイル内での移動の精度とパフォーマンスを向上させるために、ファイル内の位置とタイムコードとフレーム[訳注:MPEGフレーム]を対応させておくことは非常に有効である。このID3v2フレームはソフトウエアがファイル内での位置を計算するために使用できるリファレンスを保持する。フレームヘッダの次に格納されているのは、各リファレンス毎にどれだけのフレーム数を増加させるかを決定する「フレームカウンタ」である。もし、この値が2だったのであれば、最初のリファレンスは第2フレームの、2番目のリファレンスは第4フレームの、3番目のリファレンスは第6フレームの、タイムコードをそれぞれ意味する。同様に、「リファレンス間のバイト数」と「リファレンス間のミリ秒数」はバイト数とミリ秒数をそれぞれ格納している。 各リファレンスはそれぞれビット数をあらわしている、2つの部分で構成されている。一つ目は「バイト数のずれをあらわすビット」で、これは「リファレンス間のバイト数」と実際の値とのずれをあらわす値である。二つ目は「ミリ秒のずれをあらわすビット」で、これは「リファレンス間のミリ秒数」と実際の値とのずれをあらわす値である。すべてのリファレンスのでのそれらのビット数の和(「バイト数のずれをあらわすビット」+「ミリ秒のずれをあらわすビット」)は四の倍数でなければならない。一つのタグの中に、「MLLT」フレームは一つしか含めることができない。
それぞれのリファレンスは、以下のようなデータを格納している
●4.8.同期テンポコード楽曲中の部分部分におけるテンポを正確に描写するために、このフレームを用いることが出来る。ヘッダの次に、タイムスタンプとしてどのようなフォーマットを用いるかを示すための1バイトのデータを格納する。その後に、一つ以上のテンポコードが続く。すべてのテンポコードは、テンポ部分と時間部分の2つから構成されている。テンポは1バイトか2バイトのBPMで表される。もし、1バイト目が$FFだった場合は、2バイトで構成されているという意味になる。テンポは2-510BPMの間の値をとることが出来る。$00と$01は予約済みである。$00はビートが存在していないことを意味する。これは、音楽ではないということと同じ意味ではない。$01はビートのない状態に続いて、一度だけビートが打たれたことを意味する。 テンポを表すデータの次には、タイムスタンプが続く。楽曲中でテンポが変化するたびに、テンポの変化をプレーヤーに知らせるためである。すべてのテンポデータは時系列に並べられている必要がある。タイムスタンプはテンポが変化した最初のビートが打たれた瞬間の時間を格納する。一つのタグの中に、「SYTC」フレームは一つしか含めることができない。
タイムスタンプフォーマットは以下の通り。 $01 絶対時間、32ビットサイズ、単位はMPEGフレーム 絶対時間とは、すべてのタイムスタンプがファイルの開始からの時間であらわされることを意味する。 ●4.9.非同期の歌詞/文章のコピーこのフレームは、その歌の歌詞、もしくはその他の音声を文章に書き写したものを格納する。ヘッダは文字コードと内容に関する情報を格納する。フレームボディには実際のテキストを格納する。「内容に関する情報」とは、最後がヌル文字で終わっている文字列である。もし何の情報もなければ「内容に関する情報」は $00 (00)のみを格納することになる。タグ中には複数の「非同期の歌詞/文章のコピー」フレームを含めることが出来るが、同じ言語、同じ「内容に関する情報」を持ったフレームが複数あってはならない。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||