前回までの方法で作成したSTEPで編集できないタグを削除したID3v2.3(UTF-16)+ID3v1なMP3ファイルの認識状況は完璧です。TVersityはもちろんのこと、Windows Media Playerでも文字化けしません。
携帯プレイヤーへの転送についても、手元のNW-HD1、gigabeatでちゃんとID3v2のタグを読んでます。gigabeatで誤認識がなくなったのは個人的にかなり嬉しい。これまでは同じアーティスト名のはずなのにメニューで分かれちゃったりして使いにくくて仕方がなかったので。
…。
いろいろやってきてWindows Media Playerについてわかったことは、
- Windows Media PlayerはTTE2などのタグを見てリストを作っているらしい
- Windows Media Playerは文字コードの違いを吸収できないらしい
- Windows Media DRM採用のポータブルプレイヤーはWindows Media Playerと同じようにタグを読み込むとは限らない
- ファイルの認識はポータブルプレイヤー任せ
- TTE2を無視するかもしれないし、文字コードの違いを考慮するかもしれない
ということ。基本的にWindows Media Playerはタグの文字列をただのバイト列として扱うんですね。ダメな実装だなぁ。
…。
一方、SonicStageの方は文字コードが違っても大丈夫で、おそらく内部で適当な文字コードに変換して持っています。ポータブルプレイヤーで曲名などを表示するためのリストファイルもSonicStageで作っていて、プレイヤーはタグを読んでないのかもしれません。
これはSonicStageがMDなどの特殊な曲名表示機構を持つデバイスに対応していることや、ハードの設計と連携できることから出てくるものと言えるでしょう。それがいいか悪いかはわかりませんけど。
<追記>
一応「その3」と「その4」あたりが解決編になってますので、検索で来た方はそちらを読んでみてください。
その1( http://d.hatena.ne.jp/saburahu/20071104/1194190268 )
その2( http://d.hatena.ne.jp/saburahu/20071105/1194276427 )
その3( http://d.hatena.ne.jp/saburahu/20071106/1194365038 )
その4( http://d.hatena.ne.jp/saburahu/20071108/1194531185 )