1 万ファイルに向けられるタグエディター
タグエディターと言うとき多くの人が指すのが Mp3tag で、その Linux ビルドはありません。rox には本格的なエディターが内蔵されていて、書き込み経路は「たいてい上手くいく」では足りない規模の一括処理を想定して作られています。
まず、線を引いておく
rox は本格的なタグエディターを内蔵した音楽プレイヤーです。Mp3tag は専用のタガーで、専用のタガーとしては向こうが上です。スクリプト、アクション、組み立てられる書式文字列、そして 20 年かけて丸めた角。フォルダーに対して走らせて閉じる単体ツールが Windows で欲しいなら、それが答えです。
rox でやる理由は、ライブラリのタグ付けがたいてい終わる仕事ではないことです。聴きながら、たった今おかしいと気づいたファイルに対してやるものなので、エディターがプレイヤーとライブラリにくっついていることは妥協ではなく要点です。
書き込み経路
rox を一生入れないとしても、ここは読む価値があります。ほとんどのタグ書き込みはファイルをその場で書き換えます。元ファイルを開き、メタデータの領域を書き直し、祈る。数万回は問題なく、一度だけ壊滅的です。途中でクラッシュしたり、ディスクが埋まったり、ドライブが抜かれたりすると、音声を抱えたままもう解析できないファイルが残ります。
rox は元ファイルに書き込みません。編集のたびにファイルをコピーし、変更をコピーに適用し、メタデータを読み返して結果を検証し、音声ストリームをハッシュして入力とバイト単位で同一だと確認し、そのうえで初めてコピーを元ファイルの上にアトミックにリネームします。どこかで失敗すればコピーは消され、元ファイルは無傷です。そもそも書き込み用に開いていないので。
ファイルごとに独立してもいるので、4000 件の一括処理の中の 1 つの厄介なファイルは、実行全体を道連れにせず単独で失敗します。
一括編集で潰さない
何曲選んでも、エディターは共有のフォームとして開きます。全ファイルが一致する項目はその値を出し、食い違う項目は「複数の値」のプレースホルダーの下で空になります。実際に動かした項目だけが書き込まれるので、触っていない項目がファイルを書き直すことはありません。そして選択全体に押すと意味を成さない項目、つまりタイトル、トラック番号、ディスク番号は、一括のときは自分でロックします。
一括の中の 1 ファイルだけがおかしいときは、フォームがテーブルに切り替わります。トラックごとに 1 行、項目ごとに 1 列で、ロックされていたトラック単位の項目はその場で編集できます。タイトルも番号も全部それぞれ違う形で間違っているインポート向けの表示で、項目に 1 つずつ入っていくより速く済みます。どちらの表示も同じ書き込み経路を通して 1 回の一括として確定し、結果は再スキャンなしでライブラリに届きます。
読み書きするもの
- 形式。ID3v2、Vorbis comment、MP4 の atom を 1 つのエディターの裏に。MP3 も FLAC も M4A も同じ画面です。
- レーティング。持ち出せないデータベースではなく、FMPS と POPM でファイル自体に書き込みます。
- 複数値のジャンル。本物のリストとして扱い、まとめはタグの書き換えではなくライブラリ側の見解として保ちます。
- カバーアート。複数枚のアルバムアートを、同じアトミックな経路で追加・差し替えします。
- 照会。MusicBrainz、iTunes、Deezer からタグとカバーを取り、同じ差分を通して適用するので、書き込む前に何が変わるか見えます。
- 修復。単に間違っているのではなく、特定の既知の形で壊れているタグのファイルに対するパス。他のタガーが曲をファイル名と長さ 0 で表示してしまう、あの手のものです。
- パターン、双方向。
%artist% - %title%のような書式文字列でファイル名からタグを読み出し、同じパターンを逆に走らせてタグからファイル名を付け替えます。どちらも書き込む前に全曲をプレビューします。 - 検索と置換。一括選択の中で値が食い違うフィールドはどれも、検索文字列と置換文字列を受け付けます。リテラルでも、
$1の使える正規表現でも。プレビューは何も書き込む前に、何曲が変わるかを数えます。 - ソート名と読み。ファイルが持つソートタグが、名前がどこに並ぶかを決めます。無いところは MusicBrainz がアーティストのソート名を埋め、日本語、韓国語、中国語の名前には検索とレターレールを支えるラテン文字の読みが付きます。どちらも rox のデータベースに入り、ファイルには触れません。
- ライブラリの健全性。タグごとに 1 枚のタイルが並ぶウィンドウで、それぞれがそのタグの欠けた曲に絞ってライブラリを開きます。ジャンル、年、レーティング、ソート名、ReplayGain、それにカバーアート、重複、トラック番号の抜け。
Mp3tag に留まったほうがいい人
Windows でアクションやスクリプト、あるいは込み入った書式文字列の仕事に寄りかかっているなら、rox に相当するものは無く、これは格下げになります。プレイヤーを兼ねないタガーが欲しいなら、そもそも形が違います。
Linux や Mac にいるなら、あるいはタグ付けが別作業ではなく聴いている最中に起きるなら、そこがこれの埋める隙間です。
書き込み経路は、比べる相手がいない部分です。元ファイルの上にリネームする前に音声ストリームのハッシュを検証するのは、持っているもの全部に向けられる前提でなければタガーがやらないことです。編集と自分のファイルのあいだにその種の慎重さが欲しいなら、これがそれです。
避けてきたフォルダーに向ける
無料でオープンソース、アカウントもインストーラーも不要。ライブラリ側の話 は別に書いてありますし、Windows の環境から来るなら MusicBee と Foobar2000 の比較もあります。