マイコン工作実験日記

Microcontroller を用いての工作、実験記録

ID3タグ

2009-07-31 23:32:29 | MP3プレーヤ
ひさしぶりにLPC2388基板を引っ張り出しました。

まがりなりにもMP3とFM放送の再生ができるようになり、最低限必要な基本機能は用意できましたが、あまりにもそっけないので、少しは見栄えのする一般機能も順次付け加えていこうかと思います。まずは、MP3で再生中の曲の情報でも表示できるようにしようと決めて、調べてみました。ID3タグと言うんですか。白状してしまうと、これまでMP3プレーヤを作るどころか使ったことも無いので、こういう知識が全くありません。

ID3にはバージョンもいくつかあるようですが、ファイルの頭に入っているID3v2をデコードしてみることにしました。MP3ファイルの再生時にいつも先頭を読み飛ばしていたのは、この領域だったのですね。表示するタグは、とりあえずTIT2(曲名), TLEN(長さ), TPE1(演奏者)の3つとしてみました。(32文字で切ってます)



文字列はUTF-8対応できる形式になっているようですが、実験に使っているMP3データではUTF-8は使っていないようです。びっくりしたのは、同じCDに入っている曲のデータなのにもかかわらず、トラックによって文字列データがシフトJISや半角ASCIIで入っていたりとメチャクチャなこと。「自分で編集しなおして使うもの」というのが常識なんでしょうか?それとも、たまたま題材にしたアルバムのデータの出来が悪かっただけ? いくつか半角に修正してみたものの、途中でメゲました。

最後に表示しているのは、演奏状態です。例では全20トラックの8トラック目を演奏中であり、およそ28%の位置ということです。コーデックのI2Sを12MHzのクロックで動かしている都合上、本来は44.1KHzのサンプリング・レートで再生すべきところを、実際には44.117KHzで再生しています。そのため、長い曲になると早めに再生が終わってしまうのがわかるかもしれません。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。