ID3TAGについて調べてみる (2)

2015年4月20日 / C#, プログラミング

昨日のエントリは、書いてるうちにメンドくさくなって(違)適当にパパッとまとめてしまったので、ちょっとあんまりかなあと思ったので、改めて解説したいと思います。

まず、昨日のダンプリストをもう一度。縦軸を00000000からはじめるようにして、少し見やすくしてみます(変わらないか?)。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000000: 54 41 47 83 82 83 65 82 BD 82 AD 82 C4 81 63 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020: 00 83 4D 81 45 82 A8 82 C8 82 E7 82 B7 82 A2 82
00000030: B1 82 DD 91 E0 00 00 00 00 00 00 00 00 00 00 44
00000040: 52 49 4C 4C 20 4B 49 4E 47 20 41 4E 54 48 4F 4C
00000050: 4F 47 59 00 00 00 00 00 00 00 00 00 00 31 39 39
00000060: 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 12

このデータを、ID3v1.1形式の構造にあわせて書き直します。

まずは “TAG” の識別子が3バイト。

          +0 +1 +2
00000000: 54 41 47

次に曲名が30バイト。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000000:          83 82 83 65 82 BD 82 AD 82 C4 81 63 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020: 00

83 82 で「モ」、83 65 で「テ」…と続き、81 63 で「…」までが「モテたくて…」という曲名を表しています。残りは 00 で埋められています。

その次がアーティスト名30バイト。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000020:    83 4D 81 45 82 A8 82 C8 82 E7 82 B7 82 A2 82
00000030: B1 82 DD 91 E0 00 00 00 00 00 00 00 00 00 00

曲名と同じように、83 4D 「ギ」、81 45 「・」、82 A8 「お」、最終的に 91 E0 「隊」で「ギ・おならすいこみ隊」。…ってこんなクソまじめに「おならすいこみ隊」とか入力してるのもどうなのか。じゃあなんでこんな曲を選んだ俺。

アーティスト名の次はアルバム名が同じように30バイト。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000030:                                              44
00000040: 52 49 4C 4C 20 4B 49 4E 47 20 41 4E 54 48 4F 4C
00000050: 4F 47 59 00 00 00 00 00 00 00 00 00 00

アルバム名はすべてアルファベットなので簡単です。44「D」、52「R」、49「I」、4C「L」、4C「L」…で「DRILL」です。「DRILL KING ANTHOLOGY」ですね。

ここから4バイトが日付文字列。正確には年ですけど。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000050:                                        31 39 39
00000060: 34

これは簡単。「31 39 39 34」=「1994」です。ASCIIコードで。

つぎがコメント。ID3v1.0だと30バイトですが、29バイト目が00の場合は30バイト目がトラック番号として扱われます。もう少し正確に言うと、普通は00でパディングしてしまうので、29バイト目が00でなおかつ30バイト目が00以外の時にトラック番号として扱われるようです。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000060:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00

今回は29バイト目は00で30バイト目が07なので、トラック番号7になります。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000070:                                        00 07

最後はジャンル番号です。

          +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000070:                                              12

Wikipediaでは147(0x93)までしか載っていませんが、SCMPXという初期のmp3プレイヤーが勝手に拡張したジャンルコードとして以下のものが使われています。

コード(10進) コード(16進) 説明
248 0xF8 Heavy Rock(J)
249 0xF9 Doom Rock(J)
250 0xFA J-POP(J)
251 0xFB Seiyu(J)
252 0xFC Tecno Ambient(J)
253 0xFD Moemoe(J)
254 0xFE Tokusatsu(J)
255 0xFF Anime(J)

ちなみに0x12は「Techno」。DRILL KING ANTHOLOGYは電気グルーヴのアルバムですから、やはりテクノなのではないかと。

という感じでID3v1.1タグの詳細な解説でした。次こそはID3v2タグの説明を書くつもりです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

TOPへ戻る