アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

Metadata Editor をつくる 5 - MP3 編

August 22, 2010開発.NET, ID3, Metadata Editor, MP3

ASF が一段落ついたのと ID3 に着手しはじめたので更新。

前回のシリーズ更新から 21 日も空いてしまった。作業は少しずつ進めていたのだが ID3 の仕様をよく理解にしない内から整理された設計と実装を意識して危うく頓挫するところだった。何か作ろうとするときいきなり壮大な絵を描くのは危険だなあ、と実感。くわばらくわばら。

前回からの変更点

  • ASF で bool のデータを書いたときのサイズ指定が 1 バイトになっていたので修正

    • 正確には 4 バイト
  • ASF の書き込み対応データを大幅追加

    • 91/161、達成率としては 56% ぐらい
    • 読み取り専用のデータも含めれば更に多い
    • ジャケット画像とタイムラインつき歌詞を追加すれば実用で困ることはなさそう
  • ID3v1 のダンプに対応

    • ID3v1.0、1.1 に対応
  • ID3v2.2 ~ 4 のダンプに対応

    • 実装だけ
    • ID3v2.3 のテキスト 2 種 ( 文字コード指定あり・なし ) だけ対応

技術的な内容や ID3 に関する情報は ID3 Tag というページに書いてゆく予定。

今回の成果物

今回の成果物を以下に公開。

ライセンスは GNU Lesser General Public License とする。ただし .NET Framework の場合はコンパイル時にライブラリとプログラムを同一バイナリに結合できない ( ILMerge ) ので、Parade.Metadata.dll を改変なしでリンクする場合、利用するプログラム側には GPL/LGPL を適用せず、配布も制限しない。

プロジェクトは Visual C# 2010 Express で作成。ビルドをおこなうと Parade.Metadata.dll と TestApp.exe というコンソールアプリケーションが生成される。現時点の機能は以下のようになる。

  • ASF (WMA や WMV) のタグ編集、メタデータをテキストにダンプ
  • ID3v1 ~ 2.4 のメタデータをテキストにダンプ

今後の予定

ID3v1 ~ v2 のダンプを強化しつつエディタを実装してゆく。テスト用に GUI が欲しくなってきたので検討してみる。