iTunes 8で自動的に歌詞を埋め込む方法を知り、どんどん歌詞を追加していくうちに、iTunesで埋め込んだ歌詞をiPod touchで表示するにはID3タグのバージョンが2.2/2.3じゃないとダメらしいということに気がついた、という記事を昨日書きましたが、ようやく根本的原因が分かったのでメモ。
原因はID3タグの「非同期歌詞(USLT)」が多言語に対応しているため。
iTunesから歌詞タブに書き込んだ情報は、ID3タグの「USLT」に記録されます。ところが、このUSLTには、「複数の言語を保存することができる仕様」になっており、「iTunesが書き込んだ情報は、日本語であっても[en](英語)に記録」されます。その証拠がiTunesで書き込んだ歌詞をWindows Media Playerで見たときのスクリーンショット。
iTunes 8.0.1.11 + Lyrics Master 2.1.4.1でDream Fighter / Perfumeに自動的に歌詞を埋め込んだものを、Windows Media Player 10の拡張タグエディタで見てみた様子。ごらんのように、言語は英語に設定されています。
iPod touchでは最初(これがアルファベット順に最初なのか、書き込んだ順なのかは不明)の言語情報しか参照しないようです。
iTunesライブラリに追加する前に、iTunes以外のソフトを使ってID3タグを編集し、言語[ja](日本語)で歌詞を書き込んでいたりすると、iPod touchではそちらを表示してしまい、iTunesの歌詞タブに書いてある内容とは違ったものが表示されると言うことになります。
これを回避する方法は、
- USLTに言語[en]で埋め込めるID3タグ編集ソフトを使う
- ID3タグをリセットしてから自分で設定し直す
の2通りが考えられます。
1番目の方法をとる場合、USLTを編集可能、かつ言語も指定できるソフトが必要です。
先ほど紹介したWindows Media Playerの他、Windows Media Player 10の拡張タグエディタでen[英語]に日本語の歌詞をペーストすると、iPod touch上で見た場合に文字化けする可能性があります。あくまでも確認程度にとどめて置いた方が良さそうです。Mp3tag(外国製フリーソフト,日本語化済み)でもUSLTを直接編集することができました。
日本製で有名なMP3タグ編集ソフトSuperTagEditorは歌詞という項目は表示できますが、USLTでは無いようで、残念ながら編集できませんでした。実はMP3に歌詞を記録するタグは「USLT」の他に「LYR」・「ILYC」・「SYLT」など様々な種類があります。Winampだと「LYR」が有名だったりするようです。iTunes + iPod touchで使うなら「USLT」のみ対応しています。
iTunesの歌詞タブではUSLTのen(英語)しか表示しないため、他の言語で歌詞が書き込まれているかどうかはわかりません。「iTunes(+ Lyrics Master)だけで、iPod touchで確実に表示される歌詞を埋め込みたい」という場合は2番目の方法をとります。
iTunes上でリセットしたい曲を右クリックし、「ID3 タグを変換…」をクリックします。
ID3 タグバージョンを「なし」にして、OKをクリックします。これでUSLTタグも含め、全て一部のタグ情報が消えるので、ここで歌詞を再設定すれば、確実にen(英語)のみに情報が書き込まれることになり、iPod touchで歌詞を表示することができます。
もちろんUSLTタグも含め、全てのタグ情報が消えるということはアーティスト名、アートワークなどもMP3によってはID3タグのバージョンが無しではなく、v1.1相当に戻る事が分かりました。よって、アーティスト・アルバムなどの情報はリセットしても残ることがあります。が、ID3タグv2.x以降で対応しているアートワークなどは消えてしまうので、再設定には多少手間が掛かります。
格闘した末、ID3タグをリセットすることで、埋め込んだ歌詞が表示されたiPod touch。
「ID3タグの歌詞情報(USLT)に複数言語が記録できる」・「iTunesではUSLTは[en](英語)しか表示&編集できない」・「iPod touchが表示するのは最初の言語のみ」という3つの仕様が重なったため、原因を突き止めるのに苦労しました。これでどんどん埋め込んでいくことができます。