発生したトラブル
foobar2000のProperties画面でタグに複数値を入力したのに、TitleFormatingの$meta_num(タグ)で1が返ってくる……
原因
原因は2つ。
- タグに入力した複数値が、1種類の複数のタグに分割されてflacファイルに書き込まれておらず、分割されずに1つのタグにそのまま書き込まれていること
- タグの書き込まれ方によって、$metaの挙動が異なること
例えば、ARTISTタグにAとBの2人のアーティストを入力したとき、ARTISTタグへの書き込まれ方によって、以下のように$metaの挙動が異なる。
ARTISTタグへの書き込まれ方と$metaの挙動
ARTIST=A
ARITST=B
// $meta_num(ARTIST)=2
ARTIST=A,B
// $meta_num(ARTIST)=1
ARTIST=A;B
// $meta_num(ARTIST)=1
Properties画面で入力した複数値が、なぜ分割されて書き込まれないのか
原因は以下のどちらか。
- 複数値を入力する際、区切り文字がセミコロンではない
- 既存タグではない自作タグに入力している
原因1:複数値を入力する際の区切り文字がセミコロンではない
Properties画面でタグに複数値を入力する時は、セミコロン区切りでないと分割して書き込まれない。
- 例えば、Properties画面でARTISTタグにA,Bと入力すると、flacファイルのARTISTタグにはそのままARTIST=A,Bと書き込まれる。
- ARTIST=A ARTIST=Bと書き込みたいのならば、Properties画面でARTISTタグにA;Bと入力しなければならない。
原因2:既存タグではない自作タグに入力している
自作タグの場合、Properties画面上でセミコロン区切りで複数値を入力しても、分割してタグに書き込まれない。
- 例えば、Properties画面で自作タグArrangerにA;Bとセミコロン区切りで入力すると、flacファイルにはそのままARRANGER=A;Bと書き込まれる。
- Properties画面での編集のみでは不可能かと思う。Masstaggerを用いることで可能。
foobar2000 Compornent Repository - Masstagger- 一旦セミコロン区切りで自作タグに複数値を入力しておき、Masstagerの"Split by separator"(separatorにセミコロンを指定)で、入力済みの複数値を分割してflacファイルに書き込むことが出来る。
感想
- まさか「自作タグの場合、Properties画面でセミコロン区切りで入力しても分割されてflacファイルに書き込まれない」なんて・・・
- 試しにmetaflacでタグ情報を確認してみたところ原因が判明。公式がツール出してくれてるのありがたい。
参考
- Masstaggerダウンロード
foobar2000 Compornent Repository - Masstagger - Masstaggerを用いて、カンマ区切りで入力しているタグ値を全てセミコロン区切りに置換する。
オタク特有の「複数アーティストの区切りバラバラ問題」に対応する - flacファイルのタグ情報をコマンドラインで確認する。
- flac公式ツールのmetaflacを用いることで確認可能。
FLAC - Downloads - コマンドラインで"metaflac --list --block-type=VORBIS_COMMENT XXX.flac"でOK。
- flac公式ツールのmetaflacを用いることで確認可能。