投稿

2020の投稿を表示しています

Rockbox のダーティーハック(複数の値を持つ音楽メタデータへの対応)

本日誕生日のおるみんです。みなさんは Rockbox というファームウェア/カーネルをご存知でしょうか。 単一メモリ空間,シングルプロセスで動作するファームウェアで,簡単なスレッドスケジューラを備えることによってマルチスレッドで動作可能な, 主にディジタルオーディオプレイヤー(DAP)上で動作するオープンソースファームウェアです。初期には仏 Archos 製の MP3 プレイヤーに不満を持ったユーザーが homebrew プログラムの動作方法を見つけ,独自実装したのが始まりで韓国 iriver 製 DAP や米 SanDisk の Sansa,東芝の Gigabeat シリーズなど様々な DAP へ porting されています。わけても初期のSony ネットワークウォークマンや大半の米 Apple iPod シリーズにも対応していることで,2000~2010 年ごろの DAP ユーザー(のごく一部)に広く知られています(広く?)。Rockbox の場合,iPod の純正 Apple OS と違い Album Artist タグに対応してますし FLAC は再生できますし crossfeed やパラメトリックイコライザ(low-shelf,high-shelf,peaking * 8 の合わせて 10 バンドで Q 値も設定できる)など再生時のパラメータも細かく設定できるため,ギーク向きの良いファームウェアなのですが,不満もあります何をしたいかここまで前置き,本題は Rockbox は意図的に複数の値を持つタグを読み捨ててしまうというところです。音楽のメタデータは MP3 や AAC に対応する ID3 タグが知られていますが他にも Ogg Vorbis や FLAC に対応する Vorbis Comment,Monkey's Audio に対応する APE tag などが存在します。ID3 タグの場合は ID3v2.3 だとスラッシュ,ID3v2.4 だとヌル文字を区切り文字にし複数の値を書いていけば良いという仕様がありますが,今回の記事では考えないことにします。今回は FLAC で使われる Vorbis Comment について複数の値に対応する方法を考えてみたいと思います。Vorbis CommentVorbis Comment の細かい仕様は仕様書…