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.20 AENC
オーディオの暗号化
4.15 APIC
付属する画像
4.11 COMM
コメント
4.25 COMR
コマーシャルフレーム
4.26 ENCR
暗号化の手法の登録
4.13 EQUA
均一化
4.6 ETCO
イベントタイムコード
4.16 GEOB
パッケージ化された一般的なオブジェクト
4.27 GRID
グループ識別子の登録
4.4 IPLS
協力者
4.21 LINK
リンク情報
4.5 MCDI
音楽CD識別子
4.7 MLLT
MPEG ロケーションルックアップテーブル
4.24 OWNE
所有権フレーム
4.28 PRIV
プライベートフレームプライベートフレーム
4.17 PCNT
演奏回数
4.18 POPM
人気メーター
4.22 POSS
同期位置フレーム
4.19 RBUF
おすすバッファサイズ
4.12 RVAD
相対的ボリューム調整
4.14 RVRB
リバーブ
4.10 SYLT
同期 歌詞/文書
4.8 SYTC
同期 テンポコード
4.2.1 TALB
アルバム/映画/ショーのタイトル
4.2.1 TBPM
BPM (beats per minute:一分間の拍数)
4.2.1 TCOM
作曲者
4.2.1 TCON
内容のタイプ
4.2.1 TCOP
著作権情報
4.2.1 TDAT
日付
4.2.1 TDLY
プレイリスト遅延時間
4.2.1 TENC
エンコードした人
4.2.1 TEXT
作詞家/文書作成者
4.2.1 TFLT
ファイルタイプ
4.2.1 TIME
時間
4.2.1 TIT1
内容の属するグループの説明
4.2.1 TIT2
タイトル/曲名/内容の説明
4.2.1 TIT3
サブタイトル/説明の追加情報
4.2.1 TKEY
初めの調
4.2.1 TLAN
言語
4.2.1 TLEN
長さ
4.2.1 TMED
メディアタイプ
4.2.1 TOAL
オリジナルのアルバム/映画/ショーのタイトル
4.2.1 TOFN
オリジナルファイル名
4.2.1 TOLY
オリジナルの作詞家/文書作成者
4.2.1 TOPE
オリジナルアーティスト/演奏者
4.2.1 TORY
オリジナルのリリース年
4.2.1 TOWN
ファイルの所有者/ライセンシー
4.2.1 TPE1
主な演奏者/ソリスト
4.2.1 TPE2
バンド/オーケストラ/伴奏
4.2.1 TPE3
指揮者/演奏者詳細情報
4.2.1 TPE4
翻訳者, リミックス, その他の修正
4.2.1 TPOS
セット中の位置
4.2.1 TPUB
出版社
4.2.1 TRCK
トラックの番号/セット中の位置
4.2.1 TRDA
録音日付
4.2.1 TRSN
インターネットラジオ局の名前
4.2.1 TRSO
インターネットラジオ局の所有者
4.2.1 TSIZ
サイズ
4.2.1 TSRC
ISRC (international standard recording code:国際標準レコーディングコード)
4.2.1 TSSE
エンコードに使用したソフトウエア/ハードウエアとセッティング
4.2.1 TYER
4.2.2 TXXX
ユーザー定義文字情報フレーム
4.1 UFID
一意的なファイル識別子
4.23 USER
使用条件
4.9 USLT
非同期 歌詞/文書のコピー
4.3.1 WCOM
商業上の情報
4.3.1 WCOP
著作権/法的情報
4.3.1 WOAF
オーディオファイルの公式Webページ
4.3.1 WOAR
アーティスト/演奏者の公式Webページ
4.3.1 WOAS
音源の公式Webページ
4.3.1 WORS
インターネットラジオ局の公式ホームページ
4.3.1 WPAY
支払い
4.3.1 WPUB
出版社の公式Webページ
4.3.2 WXXX
ユーザー定義URLリンクフレーム

 

●4.1.一意的なファイル識別子

 このフレームは、その内容に関連したさらなる情報を含むデータベースの中で、そのファイルを一意的に識別するためのものである。「http://www.id3.org/dummy/ufid.html」という文字列をテスト用に使うことが出来る。このフレームは、そのようなことを行わないソフトウエアが削除してしまっても安全である。「所有者識別子」は空欄にすることはできない(終了を表すヌル文字以外に一字以上必要)。「所有者識別子」の後には実際の識別子が続く。識別子は最大64文字になっている。一つのタグ中に複数の「UFID」フレームを持たせることは可能だが、すべてのフレームは同じ「所有者識別子」を持っていなければならない。

<「一意的なファイル識別子」のヘッダ、 ID: "UFID">
所有者識別子
<文字列> $00
識別子
<最大64バイトのバイナリデータ>

 

●4.2.テキスト情報フレーム

 テキスト情報フレームとは、アーティスト名やアルバム名といった情報を格納している、もっとも重要なフレーム群である。一つのタグ中には、同じ種類のテキスト情報フレームを複数含めることはできない。もし文字列情報中に終端文字($00 (00))が含まれていた場合は、それ以後の情報はすべて破棄され、表示されることはない。テキスト情報フレームのフレームIDはすべて「T」で始まっている。「」をのぞけば、テキスト情報フレーム以外のフレームが「T」で始まることはない。テキスト情報フレームはすべて以下のフォーマットになっている。

<「テキスト情報フレーム」のヘッダ、ID: "T000" - "TZZZ", ただしセクション4.2.2で解説されている"TXXX"を除く>
文字コード
$xx
情報
<エンコード指定文字列>

 

●4.2.1.テキスト情報フレーム - 詳細

 

TALB
 「アルバム/映画/ショーのタイトル」フレームは、そのオーディオファイルの音源となった録音のタイトルを意味する。

 

TBPM
 「BPM」フレームには曲の主要部分での一分間の拍数が格納される。BPMは整数値で、数字文字列として格納される。

 

TCOM
 「作曲者」フレームは作曲者の名前を意味する。複数の作曲者がいる場合には「/(スラッシュ)」で区切る。

 

TCON
 「内容のタイプ」、これはID3v1ではジャンル(Genre)と呼ばれていたもので、1バイトの数値で格納されていたが、ID3v2では数字文字列で格納するようになった。このフレームにはID3v1.1で定義されたジャンルを一つ、または複数格納することができるし、カテゴリリストを正確に更新していくことが不可能であるため、独自のジャンルを定義することも可能である。

 ID3v1のジャンルコードへの参照を行う場合は、1バイト目に「(」を置き、続いてジャンルコードを置き、最後に「)」を置く。参照の後にさらに追加情報をつけることもできる。たとえば、「(21)」や「(4)ユーロディスコ」といったようにである。「(51)(39)」といったように、複数の参照値を同じフレームに含めることもできる。もし、追加情報が「(」で始まってしまう場合は、「((」で置き換えることができる。「((どのジャンルにも分類できない)」や「(55)((だと思います...)」という感じである。以下に示す「(RX)」などのタイプはID3v2で新たに定義されたもので、数値で表される既存のジャンルと同じように扱うことができる。

RX
リミックス
CR
カバー

 

TCOP
 「著作権情報」フレームは年と1文字の空白文字で始まる(これで5文字になる)。これはオリジナルの音源の著作権保有者(オーディオファイルの、ではない)を示す。このフレームが存在していないということは、著作権情報が公開されていないか、削除されたことを意味する。その音源がパブリックドメインであることを示すわけではない。このフィールドが表示される場合には、必ずその前に「Copyright (C) 」という文字列をつけなくてはいけない。「(c)」は実際にはCを丸で囲った文字1文字で表示される。

 

TDAT
 「日付」フレームはDDMM(日2桁+月2桁)の数字文字列で格納され、録音の日付を意味する。このフィールドは常に長さが4文字である。

 

TDLY
 「プレイリスト遅延時間」フレームはプレイリスト中のすべての曲の間にある無音時間をミリ秒単位で定義している。プレーヤーは「ETCO」フレームがもしあれば、それを用いて曲の始めと終わりの無音部分を「プレイリスト遅延時間」に合うようにスキップするべきである。この時間は数字文字列で表現される。

 

TENC
 「エンコードした人」フレームには、そのオーディオファイルをエンコードした個人もしくは組織の名前を入れる。オーディオファイルの著作権がエンコードした人にある場合、このフレームには著作権情報が含まれるかもしれない。

 

TEXT
 「作詞家/文書作成者」フレームは録音中の歌詞や文書の作成者の名前を格納するためのものである。複数いる場合は「/(スラッシュ)」で区切る。

 

TFLT
 「ファイルタイプ」フレームはこのタグの付けられたオーディオの形式を示している。以下の形式と詳細事項が定義されている。

MPG  
MPEG オーディオ
/1
MPEG 1/2 レイヤーI
/2
MPEG 1/2 レイヤーII
/3
MPEG 1/2 レイヤーIII
/2.5
MPEG 2.5
 /AAC
Advanced audio compression
VQF
Transform-domain Weighted Interleave Vector Quantization
PCM
Pulse Code Modulated audio

 しかし、上記以外の形式が使われている可能性もあるだろう。その場合は既に定義されているのと同様に「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)」といった具合である。

DIG  
その他のデジタルメディア
/A
 
アナログに変換されている
ANA
その他のアナログメディア
/WAC
ワックスシリンダ
/8CA
 
ワックスシリンダ
CD
CD
/A
アナログに変換されている
/DD
DDD
/AD
ADD
/AA
 
AAD
LD
レーザーディスク
/A
 
アナログに変換されている
TT
ターンテーブルレコード
/33
33.33 rpm
/45
45 rpm
/71
71.29 rpm
/76
76.59 rpm
/78
78.26 rpm
/80
 
80 rpm
MD
ミニディスク
/A
 
アナログに変換されている
DAT
DAT
/A
アナログに変換されている
/1
スタンダード, 48 kHz/16 ビット, リニア
/2
モード 2, 32 kHz/16 ビット, リニア
/3
モード 3, 32 kHz/12 ビット, ノンリニア, 低スピード
/4
モード 4, 32 kHz/12 ビット, 4チャンネル
/5
モード 5, 44.1 kHz/16 ビット, リニア
/6
 
モード 6, 44.1 kHz/16 ビット, 'ワイドトラック' 再生
DCC
DCC
/A
 
アナログに変換されている
DVD
DVD
/A
 
アナログに変換されている
TV
テレビ
/PAL
PAL
/NTSC
NTSC
 /SECAM
 
SECAM
VID
ビデオ
/PAL
PAL
/NTSC
NTSC
/SECAM
SECAM
/VHS
VHS
/SVHS
S-VHS
/BETA
 
ベータマックス
RAD
ラジオ
/FM
FM
/AM
AM
/LW
LW
/MW
 
MW
TEL
電話
/I
 
ISDN
MC
MC (普通のカセットテープ)
/4
4.75 cm/s (両面カセットテープの通常のスピード))
/9
9.5 cm/s
/I
Type I カセット(ferric/ノーマル)
/II
Type II カセット(クロム)
/III
Type III カセット(ferric chrome)
/IV
 
Type IV カセット(メタル)
REE
リール
/9
9.5 cm/s
/19
19 cm/s
/38
38 cm/s
/76
76 cm/s
/I
Type I カセット(ferric/ノーマル)
/II
Type II カセット(クロム)
/III
Type III カセット(ferric chrome)
/IV
 
Type IV カセット(メタル)

 

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つ以上作ることは出来ない。

<Header for 'User defined text information frame', ID: "TXXX">
文字コード
$xx
説明
<エンコード指定文字列> $00 (00)
<エンコード指定文字列>

 

●4.3.URL リンクフレーム

 このフレームでは、ツアー情報、価格情報や通常のニュースなどの時によって変化する情報を掲載したWeb Pageに関する情報をタグに追加したい場合に使用する。 URL リンクフレームは特にフレーム毎の説明に記述がない場合は、一つのタグ中に、一種類につき、一つずつしか入れることが出来ない。もし文字列情報中に終端文字($00 (00))が含まれていた場合は、それ以後の情報はすべて破棄され、表示されることはない。URL リンクフレームのフレームIDはすべて「W」で始まっている。URL リンクフレーム以外のフレームが「W」で始まることはない。URL リンクフレームはすべて以下のフォーマットになっている。

<Header for 'URL link frame', ID: "W000" - "WZZZ", excluding "WXXX" described in 4.3.2.>
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」タグがあってもかまわないが、同一の「説明」を持つフレームが複数あってはならない。

<「ユーザー定義URLリンクフレーム」のヘッダ、ID: "WXXX">
文字コード
$xx
説明
<エンコード指定文字列> $00 (00)
URL
<文字列>

 

●4.4.協力者一覧

 音楽家や技術者など、オーディオファイルには数多くの人が貢献している可能性があるので、「テキスト情報フレーム」だけではそのすべての人を格納するのに不十分である。「協力者一覧」フレームはそれらの人々の名前と、その人たちがどういう関わり方をしたかを格納するためのフレームである。このフレームは単純なフレームで、関わり方と関わった人々、という組み合わせを複数格納したフレームである。一つのタグに複数の「IPLS」タグがあってはならない。

<「協力者一覧」のヘッダ、ID: "IPLS">
文字コード
$xx
協力者一覧
<エンコード指定文字列>

 

●4.5.音楽CD識別子

 このフレームはそのファイルの曲がCDを音源とする場合に、CDDBの様なデータベースで、どのCDかを識別するために使用する。このフレームはCDの内容一覧(TOC:Table Of Contents)のバイナリダンプで構成されている。これは、4バイトのヘッダで始まり、8バイトの「CD中のトラック」がトラック数だけ続き、そして8バイトの「リードアウト領域」で終わる構成になっていて、最大は804バイトである。それぞれのCDのトラックの始まりの位置は4バイトのCDフレームの絶対アドレスで指定される(時間ではない)。このフレームを含めるためには、たとえCD中に1トラックしかないとしても、有効な「TRCK」フレームがタグ中に必要である。一つのタグに「MCDI」フレームが複数存在してはいけない。

<「音楽CD識別子」のヘッダ、ID: "MCDI">
CD TOC
<バイナリデータ>

 

●4.6.イベントタイムコード

 このフレームは楽曲のキーイベントの同期を実現するためのものである。ヘッダは以下のようになっている。

<「イベントタイムコード」のヘッダ、ID: "ETCO">
タイムスタンプフォーマット
$xx

 タイムスタンプフォーマットは以下の通りである。

 $01 絶対時間、32ビットサイズ、単位はMPEGフレーム
 $02 絶対時間、32ビットサイズ、単位はミリ秒

 絶対時間とは、すべてのタイムスタンプがファイルの開始からの時間であらわされることを意味する。

 ヘッダの後には、キーイベントが以下のようなフォーマットで列挙される。

イベントのタイプ
$xx
タイムスタンプ
$xx (xx ...)

 曲の始まりの位置を指定するときや、一つ前のイベントの直後にイベントがある場合は、「タイムスタンプ」のゼロをセットする。すべてのイベントは、時系列にソートされている必要がある。イベントのタイプは以下の通りである。

$00
パディング (なんの意味も持たない)
$01
初期無音の終了
$02
イントロ開始
$03
メインパート開始
$04
アウトロ開始
$05
アウトロ終了
$06
歌詞開始
$07
リフレイン開始
$08
間奏開始
$09
主題開始
$0A
変奏開始
$0B
変調
$0C
速さ変化
$0D
瞬間的な不必要なノイズ (パチン、ピシッ、ポン)
$0E
長めのノイズ
$0F
長めのノイズ終了
$10
イントロ終了
$11
メインパート終了
$12
歌詞終了
$13
リフレイン終了
$14
主題終了
$15-$DF
将来使用するために予約
$E0-$EF
未定義の同期 0-F
$F0-$FC
将来使用するために予約
$FD
音楽終了 (無音部分の始まり)
$FE
オーディオファイル終了
$FF
さらに1バイトのイベントが後に続く(これ以降の$FFという値を持つバイトはすべて同じ意味を持つ)

 「イントロ開始」のような何かを開始するイベントは必ず終了しなくてはならないわけではない。「未定義の同期($E0-EF)」はユーザーイベントに使用するものである。スクリーンセーバーの立ち上げ、ステージ上の爆発のセットといった何かを音楽と同期させたい場合があるだろう。

一つのタグの中に、「ETCO」フレームは一つしか含めることができない。

 

●4.7.MPEG ロケーションルックアップテーブル

 MPEG オーディオファイル内での移動の精度とパフォーマンスを向上させるために、ファイル内の位置とタイムコードとフレーム[訳注:MPEGフレーム]を対応させておくことは非常に有効である。このID3v2フレームはソフトウエアがファイル内での位置を計算するために使用できるリファレンスを保持する。フレームヘッダの次に格納されているのは、各リファレンス毎にどれだけのフレーム数を増加させるかを決定する「フレームカウンタ」である。もし、この値が2だったのであれば、最初のリファレンスは第2フレームの、2番目のリファレンスは第4フレームの、3番目のリファレンスは第6フレームの、タイムコードをそれぞれ意味する。同様に、「リファレンス間のバイト数」と「リファレンス間のミリ秒数」はバイト数とミリ秒数をそれぞれ格納している。

 各リファレンスはそれぞれビット数をあらわしている、2つの部分で構成されている。一つ目は「バイト数のずれをあらわすビット」で、これは「リファレンス間のバイト数」と実際の値とのずれをあらわす値である。二つ目は「ミリ秒のずれをあらわすビット」で、これは「リファレンス間のミリ秒数」と実際の値とのずれをあらわす値である。すべてのリファレンスのでのそれらのビット数の和(「バイト数のずれをあらわすビット」+「ミリ秒のずれをあらわすビット」)は四の倍数でなければならない。一つのタグの中に、「MLLT」フレームは一つしか含めることができない。

<「ロケーションルックアップテーブル」のヘッダ、ID: "MLLT">
リファレンス間のMPEG フレーム数
$xx xx
リファレンス間のバイト数
$xx xx xx
リファレンス間のミリ秒数
$xx xx xx
バイト数のずれをあらわすビットのビット数
$xx
ミリ秒のずれをあらわすビットのビット数
$xx

 

 それぞれのリファレンスは、以下のようなデータを格納している

バイト数のずれをあらわすビット
%xxx....
ミリ秒のずれをあらわすビット
%xxx....

 

●4.8.同期テンポコード

 楽曲中の部分部分におけるテンポを正確に描写するために、このフレームを用いることが出来る。ヘッダの次に、タイムスタンプとしてどのようなフォーマットを用いるかを示すための1バイトのデータを格納する。その後に、一つ以上のテンポコードが続く。すべてのテンポコードは、テンポ部分と時間部分の2つから構成されている。テンポは1バイトか2バイトのBPMで表される。もし、1バイト目が$FFだった場合は、2バイトで構成されているという意味になる。テンポは2-510BPMの間の値をとることが出来る。$00と$01は予約済みである。$00はビートが存在していないことを意味する。これは、音楽ではないということと同じ意味ではない。$01はビートのない状態に続いて、一度だけビートが打たれたことを意味する。

 テンポを表すデータの次には、タイムスタンプが続く。楽曲中でテンポが変化するたびに、テンポの変化をプレーヤーに知らせるためである。すべてのテンポデータは時系列に並べられている必要がある。タイムスタンプはテンポが変化した最初のビートが打たれた瞬間の時間を格納する。一つのタグの中に、「SYTC」フレームは一つしか含めることができない。

<「同期テンポコード」のヘッダ、ID: "SYTC">
タイムスタンプフォーマット
$xx
テンポデータ
<binary data>

 

 タイムスタンプフォーマットは以下の通り。

 $01 絶対時間、32ビットサイズ、単位はMPEGフレーム
 $02 絶対時間、32ビットサイズ、単位はミリ秒

 絶対時間とは、すべてのタイムスタンプがファイルの開始からの時間であらわされることを意味する。

 

●4.9.非同期の歌詞/文章のコピー

 このフレームは、その歌の歌詞、もしくはその他の音声を文章に書き写したものを格納する。ヘッダは文字コードと内容に関する情報を格納する。フレームボディには実際のテキストを格納する。「内容に関する情報」とは、最後がヌル文字で終わっている文字列である。もし何の情報もなければ「内容に関する情報」は $00 (00)のみを格納することになる。タグ中には複数の「非同期の歌詞/文章のコピー」フレームを含めることが出来るが、同じ言語、同じ「内容に関する情報」を持ったフレームが複数あってはならない。

<「非同期の歌詞/文章のコピー」のヘッダ、 ID: "USLT">
文字コード
$xx
言語
$xx xx xx
内容に関する情報
<エンコード指定文字列> $00 (00)
歌詞/文章
<エンコード指定全文字列>

 

●4.10.同期をとった歌詞/文章

 これは歌われている歌詞や、話されている文章をオーディオファイルに文字列として取り込むためのもう一つの方法である。このフレームの場合は、オーディオと同期がとられている。このフレームは、ステージ上、または画面上で起こっている出来事とオーディオファイルとの同期をとるためにも使用される。ヘッダには「内容に関する情報」が文字列(最後がヌル文字で終わる)で格納される。もし何の情報もなければ「内容に関する情報」は $00 (00)のみを格納することになる。

<「同期をとった歌詞/文章」のヘッダ、 ID: "SYLT">
文字コード
$xx
言語
$xx xx xx
タイムスタンプフォーマット
$xx
内容のタイプ
$xx
内容に関する情報
<エンコード指定文字列> $00 (00)

文字コード:
$00
ISO-8859-1を文字コードとして用いる => 同期識別子として$00を用いる
$01
Unicodeを文字コードとして用いる => 同期識別子として$00 00を用いる

内容のタイプ:
$00
はその他
$01
は歌詞
$02
は文書のコピー
$03
は動作/部分の名前(例:「アダージョ」)
$04
はイベント(例:「ドン・キホーテが舞台に登場」)
$05
はコード(例:「Bb F Fsus」)
$06
はひとくちメモ(ポップアップインフォメーション)

 

 タイムスタンプフォーマットは以下の通り。

 $01 絶対時間、32ビットサイズ、単位はMPEGフレーム
 $02 絶対時間、32ビットサイズ、単位はミリ秒

 絶対時間とは、すべてのタイムスタンプがファイルの開始からの時間であらわされることを意味する。

 ヘッダの後に続く文字列は「非同期の歌詞/文章のコピー」と大きく異なる点が一つある。一つの音節(もしくはエンコードする人にとって便利なサイズ)ごとに文字列がヌル文字で区切られており、その後にはその文字列がファイル中のどこに存在しているかを示すタイムスタンプがついているのだ。おのおのの同期音節は以下のようなフォーマットで構成されている。

同期させる文字列(通常は音節)
同期識別子(文字列の終結を表すヌル文字)
$00 (00)
タイムスタンプ
$xx (xx ...)