Skip to content

Latest commit

 

History

History
480 lines (325 loc) · 30.1 KB

File metadata and controls

480 lines (325 loc) · 30.1 KB

ライブラリ実態のベースライン(2026-08-03 時点)

検査ルール(SPEC.md 6.1)を実装したときの答え合わせ用の基準値。

SPEC.md 5.1 の画面モックアップにも件数が書かれているが、あれは画面イメージの例示であり実データではない。実装時にどちらと突き合わせるべきかを迷わないよう、実測値をここに固定する。


測定条件

項目 内容
対象 策定者のローカルライブラリ(クラシック音楽 1,041 ファイル)
測定日 2026-08-03
手段 Music Tag Auditor の LibraryScanner + TagReader(段階 1 時点)
除外 backup_* フォルダ
辞書 未使用(正規化辞書を要するルールは後述のとおり除外または近似)

読み取り 1,041 件 / 失敗 0 件。内訳は M4A 516・FLAC 510・ID3 15(AIFF 11 + MP3 4)で、TAGGING_POLICY.md 冒頭の記載と一致する。


ルール別件数

「確度」列の意味:

  • 確定 — 判定条件が一意に決まり、実装が変わっても件数は変わらない
  • 要定義 — 判定条件の細部で件数が動く。下の「判定条件と留意点」を必ず読むこと
  • 未測定 — 正規化辞書が要るため段階 5 以降でしか測れない
ID 内容 件数 確度
R-101 genreClassic 以外 0 確定
R-102 genre 未設定 0 確定
R-103 discnumber 未設定 191 確定
R-104 date が4桁でない 7 確定
R-105 date 未設定 233 確定
R-201 composer が辞書の正規形と不一致 0 確定(下記参照)
R-202 artist / conductor / albumartist が正規形と不一致 未測定
R-203 artist に作曲家名 162 要定義
R-204 albumartist に作曲家名 137 要定義
R-205 値に ; を含む 10 確定
R-206 同一値の重複連結 0 確定
R-207 人名に生没年・「姓, 名」順・全大文字 7 要定義
R-208 日本語表記の人名・団体名 30 確定(下記参照)
R-301 楽語・人名の typo 0 確定(下記参照)
R-302 title に拡張子 0 確定
R-303 title がプレースホルダ 155 要定義
R-304 曲名中のウムラウト欠落 未測定(既定で無効)
R-401 composer 未設定 26 確定
R-402 指揮者を特定できない 150 要定義(下記に内訳)
R-403 文字化け 0 要定義(下記参照)
R-501〜503 アルバム名・楽章番号 未測定
(参考) 複数値として格納済み(AIMP 分割済み) 0 確定
(参考) cond atom を持つ(AIMP から見えない指揮者) 0 確定

判定条件と留意点

R-101 / R-102 — genre は既に整っている

genre は全 1,041 件が ClassicSPEC.md 5.1 のモックアップは「R-102 genre 未設定 510件」を例示しているが、実データでは 0 件である。

R-104 — date が4桁でない 7 件

ISO 形式が 2 種類のみ。

件数 フォルダ
1993-01-22T08:00:00Z 5 ブラームス\ブラームス 2 - マズア
2010-05-31T07:00:00Z 2 魔弾の射手

R-201 / 作曲家の異なり値は 35

composer の異なり値は 35 で、すべて TAGGING_POLICY.md 5.1 の正規形と一致する。したがって R-201 は 0 件。5.1 の「表記揺れの実例」(Dmitry Shostakovich 等)は過去の手作業で解消済み。

TAGGING_POLICY.md 5.1 は「確定36名」と書いているが、列挙されているのは 35 名で、実データの異なり値も 35 である。 見出しの数が 1 多い。

R-203 / R-204 — 判定は「作曲家の姓を含むか」では足りない

作曲家の姓との単純一致で数えると R-203 = 172、R-204 = 147 になるが、そのうち 10 件は Smetana Quartet(スメタナ四重奏団)の誤検出である。団体名に作曲家の姓が入るケースを除外する必要がある。 上表の 162 / 137 は除外後の値。

同種の誤検出は Münchener Bach-Chor など他にも起こりうるため、実装では辞書の団体名リストと突き合わせて除外すること。

TAGGING_POLICY.md 6.4 は「albumartist に作曲家名が残っているもの(約99件)」としているが、本測定では 137 件。定義が違う可能性が高い(6.4 は楽団名が不明で据え置いたものだけを数えている等)。要確認。

R-207 — 実際の該当は 1 種 7 件のみ

生没年・「姓, 名」順・全大文字を素朴に検出すると 6 種 58 件が引っかかるが、真に修正対象なのは Mozart, Wolfgang Amadeus(7 件)だけである。残りはすべて誤検出。

拾われた値 判定
Mozart, Wolfgang Amadeus 該当(「姓, 名」順)
USSR State Symphony Orchestra 誤検出。USSR は正当な頭字語
Kirov Orchestra, Mariinsky Theatre 誤検出。団体名であり「姓, 名」ではない
William Bennett, Neville Marriner; Academy of St. Martin in the Fields 誤検出。2.3 の保護対象
カラヤン/ベルリン・フィル,… 誤検出。2.3 の保護対象
ドレスデン国立歌劇場管弦楽団, … 誤検出。2.3 の保護対象

実装上の要件が 3 つ導かれる。

  1. 全大文字の判定は頭字語(USSRNHK 等)を除外する
  2. 「姓, 名」順の判定は人名フィールドに限り、団体名には適用しない
  3. 2.3 の保護対象は全ルールの検査前に除外する

生没年つきの値(Johann Sebastian Bach(1685-1750) 等、TAGGING_POLICY.md 5.1 の実例)は現データには存在しない。解消済み。

R-208 — 該当は保護対象の 2 種のみ

人名・団体名フィールドの日本語表記は 30 件あるが、その全部が 2.3 の保護対象である。

件数
カラヤン/ベルリン・フィル,…(パルジファル) 29
ドレスデン国立歌劇場管弦楽団, …(魔弾の射手) 1

つまり R-208 に自動修正すべき対象は現時点で存在しない。 保護対象を除外すれば 0 件になる。

R-301 — typo はタグ側では解消済み

TAGGING_POLICY.md 5.4 の 33 種を正規表現で照合したが title に該当なし。過去の手作業で修正済みである(6.7 の「タグ側で修正した typo がファイル名に残存」がこれを裏づける)。

SPEC.md 5.1 のモックアップは「R-301 typo: Sympohony 9件」を例示しているが、実データでは 0 件。 辞書としては引き続き必要(再発防止とファイル名整理の段階で使う)。

R-303 — 155 件はすべて実際のプレースホルダ

判定条件は「Track04 形式」「数字のみ」「<語> - <数字> 形式」。拾われた値はすべて実際のプレースホルダで、誤検出は見られない。

フォルダ
1-11-43-13-5 シューマン 1 / 3 - バーンスタイン
ショス15 - 0104 ショスタコーヴィチ\ショス15
ショス10 - 01ショス7 - 01チャイ6 - 01ブル4 - 01ブル5 - 01 各フォルダ

SPEC.md 6.1 が例示する Track04ショス15 - 01 と同じ形。155 件は R-303 が最大件数のルールになることを意味する。

R-403 — 検出方式が未定のため 0

TAGGING_POLICY.md 6.6 が挙げる文字列(アルバム情報なし 等)で照合したが 0 件。タグが読めていない可能性がある(該当 4 件は MP3 で、Shift-JIS が誤解釈された状態で格納されている)。検出方式が決まっていないため、この 0 は「該当なし」の根拠にはならない。段階 7 で方式を決めてから測り直すこと。


R-402(conductor 未設定 150 件)の内訳

150 ファイル / 29 フォルダ。

指揮者が無いのが正しいもの — 26 件 / 4 グループ

TAGGING_POLICY.md 2.2 のとおり、室内楽・独奏・指揮者を置かない合奏団では conductor は空が正しい。これらは R-402 の対象ではない。

フォルダ 件数 artist 理由
ビバルディ 12 I Musici 指揮者を置かない合奏団
ベートーヴェン\ベト 弦楽四重奏曲 14 6 Smetana Quartet 弦楽四重奏
ベートーヴェン\ベト 弦楽四重奏曲12 4 Smetana Quartet 弦楽四重奏
バッハ(This Is Bach の一部) 4 Peter Hurford オルガン独奏

指揮者が不明なもの — 124 件 / 25 フォルダ

フォルダ 件数 artist albumartist
ワーグナー\Wagner Opera Choruses 16 Richard Wagner (なし)
ワーグナー\タンホイザー\第二幕 11 Richard Wagner (なし)
ワーグナー\タンホイザー\第一幕 9 Richard Wagner (なし)
ワーグナー\ニーベルングの指環 6 Richard Wagner New York Philharmonic
序曲集 6 Richard Wagner Royal Philharmonic Orchestra
ベートーヴェン\ベト 弦楽四重奏曲 14 以外の各フォルダ 1〜5
シェエラザード 5 Rimsky-Korsakov Various Artists
シベリウス\シベリウス 1 / 2 / 6 / 7 各 4〜5 Sibelius / Siberius (なし)
ベルリオーズ 幻想交響曲\幻想交響曲 5 Berlioz (なし)
シューベルト\シュベ 9 4 Franz Schubert (なし)
ショスタコーヴィチ\ショス15 4 Dmitri Shostakovich Dmitri Shostakovich
ベートーヴェン\ベト7 / ベト8 各 4 Ludwig van Beethoven Ludwig van Beethoven
モーツァルト\モツァ25 / 29 / 31 / 40 / 41 各 3〜4 Mozart Mozart
リスト 交響詩 4 Franz Liszt (なし)
ワーグナー\Wagner's Greatest Hits 3 Richard Wagner (なし)
チャイコフスキー\チャイコフスキー ピアノ協奏曲 3 Tchaikovsky Berliner Symphoniker
ドヴォルザーク\ドボルザーク チェロ協奏曲 3 Dvorak (なし)
ベートーヴェン\レオノーレ 1 Beethoven New York Philharmonic

多くが artist に作曲家名が入ったままであり、R-203 と重なる。TAGGING_POLICY.md 6.2 の指揮者特定手順(フォルダ名 → albumartist → 同一アルバムの他ファイル)を適用しても、これらのフォルダ名には指揮者名が含まれていないため特定できない。CD 実物の確認が要る。

TAGGING_POLICY.md 6.4 は「21フォルダ 108ファイル」としているが、本測定では 25 フォルダ 124 ファイル。要確認。 数え方の違い(albumartist に楽団名がある分を除いている等)と思われる。


実装時に効いてくる要件

本測定から導かれる、ルール実装の前提。

  1. 2.3 の保護対象(33 ファイル)は全ルールの検査前に除外する。 除外しないと R-207 と R-208 が誤検出だらけになる
  2. 団体名に含まれる作曲家の姓を除外する。 Smetana Quartet を R-203 / R-204 で拾わない
  3. 頭字語を全大文字判定から除外する。 USSR State Symphony Orchestra を R-207 で拾わない
  4. 「姓, 名」順の判定は人名フィールドに限る。 団体名の , は列挙であって語順ではない
  5. R-303 が最大件数(155)。 差分プレビューの性能はこの規模で確認する

追記(2026-08-03 検査ルール実装時)

ライブラリが 1,063 ファイルに増えた

本表の測定後、同日中に 22 ファイル(5 アルバム)が追加された。

  • チャイコフスキー 5 - チェリビダッケ
  • ベートーヴェン 7 - フルトヴェングラー
  • ベートーヴェン 9 - ベーム 1970
  • モーツァルト 40 / 41 - ベーム

本表の件数は 1,041 ファイル時点のものである。 追加分は genre 未設定(R-102 が 0 → 14)、composerPyotr Il'yich Tchaikovsky(R-201 が 0 → 5)などを含む。

追加分には 5.4 の typo(AllgrettoAllgroAndatente)も含まれており、R-301 は 0 件ではなくなった。段階 7 で実装する際は測り直すこと。

R-403 の検出方法が判明した

6.6 の文字化け 4 件は、アーティスト情報なし という文字列で照合しても引っかからない。実際に格納されているのは A[eBXgîñȵ である(Shift-JIS のバイト列を別のコードページとして解釈した結果)。

したがって検出は次の方法で行える。

  1. 値を Latin-1 相当のバイト列に戻す
  2. そのバイト列を Shift-JIS (CP932) として解釈する
  3. 解釈結果が妥当な日本語になれば文字化けと判定する

既知の文字列との照合より一般的で、アルバム情報なし 等を個別に列挙しなくて済む。修正はしない(実質的にタグ未設定であり、内容の再入力が要る)。


追記(2026-08-04 段階 5 / 辞書編集の実装時)

R-202「辞書に無い値」24 件の内訳

段階 5 の「検査結果から辞書に追加する導線」の対象になるのは R-201 / R-202 のうち修正案を出せなかったものである。1,063 ファイル時点で実測した内訳は次のとおり。

件数 フィールド 実体
Various Artists 16 albumartist 演奏団体ではない。プレースホルダ
A[eBXgîñȵ 4 + 4 artist / conductor 文字化け 4 ファイル(TAGGING_POLICY.md 6.6 / R-403)

このうち辞書登録で解消できるものは 0 件である。

  • Various Artists を辞書に登録すると TAGGING_POLICY.md 2.1(albumartist は演奏団体名)に反する。正しい楽団名は CD 実物の確認が要る。現状維持とし、一覧に残す(2026-08-04 に判断)
  • 文字化けの 8 件は R-403 の領分で、修正はしない(内容の再入力が要る)

導線が効くのは、CD 確認で楽団名が判明したときと、新しいアルバムを追加したときである。

R-202 全体は 78 件で、うち 54 件は修正案を持つ(Royal Concertgebouw OrchestraConcertgebouworkest 15、Stanislaw SkrowaczewskiStanisław Skrowaczewski 16、SoltGeorg Solti 14 ほか)。

同梱辞書に冗長な別名が 23 件ある

段階 5 で追加した辞書の検証を default-dictionary.json に掛けたところ、エラー 0 件・警告 23 件だった。警告はすべて「同一エントリ内で別名が重複している」である。

正規化キーはダイアクリティカルマークと記号を落とすため、次のような別名は正規形と同じキーになり、索引に載らない。

エントリ 冗長な別名
Antonín Dvořák Antonin Dvorak / Dvořák
Karl Böhm Bohm
Rafael Kubelík Rafael Kubelik / Kubelik
Kyung-Wha Chung Kyung Wha Chung
ru-spb-phil St Petersburg Philharmonic OrchestraSt. Petersburg… と同じキー)

照合の挙動は変わらない(登録しなくても引ける)ので害はないが、辞書を読む人には「これが無いと引けない」と誤解させる。整理は別途行う。

2026-08-14 に整理した。 23 件のうち 22 件を削除し、残る 1 件(uk-philharmoniaPhilharmonia Orchestra が 2 つの区分に現れるもの)は検証側の誤検出だったので DictionaryValidator を直した。既定辞書の検証はエラー 0 件・警告 0 件になり、 DictionaryValidatorTests.DefaultDictionaryHasNoIssue がその状態を固定している。 なおこの削除は既存の利用者辞書には届かない。 「既定辞書から取り込む」は追加しか作らない (DictionaryMergerdocs/USER_MANUAL.md の同名の節)。初回コピー以降の辞書は手で直す。


追記(2026-08-04 段階 7 / 残りのルールの実装時)

docs/SPEC.md 6.1 の 24 ルールがすべて実装され、初めて全件を実測できた。以下が現時点の基準値(1,063 ファイル)。

ID 内容 検出 修正可 本表の旧値(1,041 件時点)
R-101 genre が Classic 以外 0 0 0
R-102 genre 未設定 14 14 0
R-103 discnumber 未設定 191 191 191
R-104 date が4桁でない 7 7 7
R-105 date 未設定 233 0 233
R-201 composer が正規形と不一致 5 5 0
R-202 演奏者が正規形と不一致 78 54 未測定
R-203 artist に作曲家名 162 34 162
R-204 albumartist に作曲家名 137 0 137
R-205 値に ; を含む 7 0 10
R-206 同一値の重複連結 0 0 0
R-207 人名の書式 0 0 7
R-208 日本語表記の人名・団体名 0 0 30
R-209 収録時点の団体名と不一致 142 126
R-301 楽語・人名の typo 3 3 0
R-302 title に拡張子 0 0 0
R-303 title がプレースホルダ 155 137 155
R-304 発音区別符号の欠落 11(既定で無効) 0 未測定
R-401 composer 未設定 26 26 26
R-402 conductor 未設定 146 22 150
R-403 文字化け 16 16 0(検出方式が未定だった)
R-501 同一アルバム名に複数の作曲家 344(19 種) 0 未測定
R-502 アルバム名が日本語 260(38 種) 0 未測定
R-503 楽章番号の書式が不統一 114(20 フォルダ) 0 未測定

合計 2,040 件を検出し、うち 482 件が既定でチェックされる。保留は 16 件(HOLD_ERA_UNKNOWN)。

R-303 — 155 件中 137 件はファイル名から補完できる

ファイル名に本来の曲名が入っている。

title ファイル名
マーラー1 - 01 01 1. Langsam, Schleppend
モツァ25 - 01 01 Symphony No.25 IN G Minor, K.183 1st Mov._Allegro Con Brio
チャイ6 - 01 2-08 Adagio - Allegro non troppo

補完では先頭のトラック番号だけを落とす。 ファイル名には Windows で使えない文字の代替が混じっており(Op.141_ I. Allegretto_ は本来 : と思われる)、元が何だったかは決められない。

残り 18 件はファイル名もプレースホルダ(title1-1、ファイル名が 01 1-1)。シューマン 1 / 3 - バーンスタインの 2 フォルダ。

R-402 — 146 件の内訳

conductor が空欄なのは 172 件だが、26 件は指揮者が居ないのが正しいTAGGING_POLICY.md 2.2)。

artist 件数 判定
I Musici 12 指揮者を置かない合奏団。辞書の noConductor で除外
Smetana Quartet 10 弦楽四重奏団。同上
Peter Hurford 4 オルガン独奏。指揮者の役割を持たない人物として除外

残る 146 件のうち 22 件は artist が指揮者本人Karl Böhm 13 / Sergiu Celibidache 5 / Wilhelm Furtwängler 4)で、2.2 の「指揮者がいる録音では conductor に必ず入れる」により自動修正できる。

不明は 124 件 / 25 フォルダで、本表の記載と一致する。

R-401 — 26 件すべてが決まる

経路 件数
artist / albumartist に残った作曲家名 17
同一フォルダの他ファイルの composer 5
パス(フォルダ名) 4

6.5 の「いずれもフォルダから一意に決まる」という記述と整合する。

R-403 — 16 件(4 ファイル × 複数フィールド)

本表の追記で確定した検出方式(Latin-1 → CP932)で全件を拾えた。

復元後の値 件数 フィールド
アーティスト情報なし 8 artist / conductor
アルバム情報なし (2026/03/22 18:27:54) 4 album
トラック 14 4 title

いずれも実質的にタグ未設定。修正案は「値を消す」とし、既定ではチェックしない。

R-501 / R-502 / R-503 は初測定

  • R-501: Symphony No.5 に 5 人の作曲家(表記揺れを正規化した後)、Symphony No.9 に 4 人。19 種のアルバム名に 344 ファイルが該当
  • R-502: 260 件 / 38 種。うち 137 件は日本語略称(ベト7マーラー2)で、辞書の aliasesJa から作曲家を特定できる。残りは 歌劇 「ローエングリン」 (ケンペ) のような正式な日本語名
  • R-503: 20 フォルダ 114 件。1. / 5-1. / 1 Allegro / 番号なし の混在

いずれも SPEC.md 13章 D2(TAGGING_POLICY.md 6.1〜6.3 が未確定)に依存するため、修正案は出さない。

2026-08-11 追記: このうちアルバム名の形式は確定した(TAGGING_POLICY.md 3.5)。R-501 の件数の読み替えは下記「R-501 の 344 件はアルバム単位では 50 ファイル」を参照。


追記(2026-08-11 アルバム名の書式確定時)

TAGGING_POLICY.md 3.5 を決めるにあたって全 1,078 ファイルを測り直した際の記録。測定は tools/AlbumProbe で再現できる。

R-501 の 344 件はアルバム単位では 50 ファイル

同じものを数えていない。 併記しないと、どちらの数字と突き合わせるべきか判断できなくなる。

数え方 件数 意味
album タグの値で束ねる(本表の 344 件 / 19 種) 344 ファイル 汎用的なアルバム名を共有する別々の録音まで 1 つに数える
フォルダ + discnumber で束ねる(3.5 のアルバム単位) 50 ファイル / 8 単位 1 枚の中に複数の作曲家が実在するもの

8 単位の内訳は TAGGING_POLICY.md 3.5 補足2 にある。本物のコンピレーション 4 単位と、主作品 + カップリング 4 単位に割れる。

データ側の問題(アルバム名とは別件)

測定の副産物として見つかったもの。いずれも未対応。 アルバム名の適用作業では踏まないが、ライブラリの整理としては残っている。

# 種別 内容
1 重複 モーツァルト 38 39 - ベーム の 04〜07 と モーツァルト 39 - ベーム の 4 ファイルが、ファイル名・バイトサイズとも完全一致(交響曲第39番)
2 discnumber 魔弾の射手 が d11 / d12。albumCarlos Kleiber - Complete Recordings on Deutsche Grammophon で、ボックスセットの通し番号がそのまま残っている
3 discnumber ベートーヴェン 5- カラヤンベートーヴェン 6 - カラヤン両方 d4。別フォルダだが同じディスク番号を持つ
4 誤タグ シューベルト 9 - バーンスタインalbumSchubert Symphony No.8。8 番のフォルダと同じ値になっている
5 フォルダ構成 The Tchaikovsky Album(トラック 2-01〜2-07 / 白鳥の湖)と チャイコフスキー 6 - ショルティ(2-08〜2-11 / 交響曲第6番)は1 枚のディスクが作品ごとに 2 フォルダへ分かれているもの。重複ではない

1 は削除候補。2・3 はディスク番号の規則(TAGGING_POLICY.md 2.4「単一ディスクでも 1/1」)の対象だが、ボックスセットの通し番号を 1 に潰してよいかは未決

5 は TAGGING_POLICY.md 3.5 規則3 の B 種別(1 アルバムが複数フォルダに分かれている)であり、アルバム名は同じにするのが正しい。同種のものにワルキューレ、ベートーヴェン ピアノ協奏曲 4番・5番、シベリウス 1番・6番がある。フォルダ構成からは自動判定できないので、複数フォルダをまとめて一括入力する導線が要る。

解消済み: 同一録音の重複所蔵が 1 組あった(Shostakovich - Song of the forests - Mravinskyショスタコーヴィチ 森の歌 - ムラヴィンスキー が 7 ファイルとも同名・同サイズ)。2026-08-11 に前者を削除し、1,085 → 1,078 ファイルになった。

composer が「正規形だが誤り」のファイル 3 件

TAGGING_POLICY.md 6.9 に詳細。既存のどのルールでも検出できないため、R-210 を新設した(SPEC.md 6.1)。

現時点の検出は 3 件で誤検出 0 だが、これは辞書にハイドンが無いためであり、辞書が育つほど誤検出は増える。この数字を「ライブラリに他の誤りが無い」根拠にしてはならない。

2026-08-11 追記: R-210 を本体の検査ルールとして実装した(Inspection/ComposerMismatch.cs)。判定は tools/AlbumProbe と共有しており、本表の数字と本体の検出件数は一致するはずである。composer が未設定のファイルは対象外にした(R-401 の担当。両方から出すと同じファイルが二重に明細へ出る)。

手掛かりにフォルダ名を加えて 3 件 → 7 件になった。 増えた 4 件は チャイコフスキー\チャイコフスキー 6 - ムラヴィンスキー 1982 で、フォルダ全体の composerDmitri Shostakovich になっている。ファイル名にも title にも作曲家名が出てこないため、フォルダ名を見るまで検出できなかった。誤検出は増えていない(カップリング盤はフォルダ内の composer が複数あるため除外される)。再測定は下記のどちらでもよい。

dotnet test --filter "FullyQualifiedName~RealLibraryInspectionTests"

追記(2026-08-11 R-504 の初測定)

作品エントリ 84 件・個別例外 18 件を利用者辞書に入れたうえで R-504 を回した結果。

項目 件数
検出 939
修正可(既定でチェック) 792
保留 147

対象外にした 18 フォルダ(3.5 補足3)の 139 ファイルは検出に含まれない。保留 147 件はほぼすべて date 未設定によるもので、R-105 の 173 件と母集団が重なる。date を埋めれば保留はそのまま修正可へ変わる。

シェエラザード は NFD(分解形)で保存されている。 濁点付きの仮名は「ザ」1 文字(NFC)と「サ + 濁点」2 文字(NFD)のどちらでも保存でき、見た目が同じでも文字列としては一致しない。個別例外のフォルダ比較を NFC にそろえるまで、このフォルダだけ対象外にならなかった(初測定では 944 / 152 だった)。他に NFD のフォルダがあるかは未確認。

この測定には利用者辞書が要る。 作品エントリは所蔵に依存するため同梱の既定辞書には入っておらず(SPEC.md 13章 D5)、既定辞書で回すと R-504 は 1,078 件すべて HOLD_WORK_UNKNOWN になる。RealLibraryInspectionTests%APPDATA%\MusicTagAuditor\dictionary.json を読むようにしてある。


再測定の方法

段階 3 で検査ルールを実装したら、同じライブラリに対して検査を回し本表と突き合わせる。乖離があれば、ルール実装かデータ理解のどちらかがずれている。

dotnet test --filter "FullyQualifiedName~RealLibraryScanTests"

本表の値は辞書を使わずに算出したものであり、辞書導入後は R-202 / R-501〜503 が加わる。

アルバム単位の集計(2026-08-11 の追記)は別のツールで測る。読み取りのみでライブラリには書き込まない。

dotnet run --project tools/AlbumProbe/AlbumProbe.csproj -- "D:\Music\Classic"

comment の実態(2026-08-15 追記)

comment をアプリで扱えるようにするか、扱うならどの形式までかを決めるために測った。読み取りのみ。

形式 ファイル数 comment を持つファイル
M4A 505 0
FLAC 573 0
ID3(AIFF 11 / MP3 4) 15 0(下記のとおり利用者の注記としては 0)

comment はライブラリ全体で 1 件も使われていない。 版・稿の注記(TAGGING_POLICY.md 2.4)はこれから入れ始めるフィールドである。

ID3v2 の COMM は空ではない

AIFF 11 件(グリーグ フォルダ)は全件COMM フレームを 3 個ずつ持ち、すべて description 付きだった。MP3 4 件は COMM を持たない。

description language
iTunPGAP eng 0
iTunes_CDDB_IDs eng 11++
iTunNORM eng 000001A5 00000174 00003186 00002A4A 0003EDE1 000A3552 ...

description が空のフレーム(=利用者のコメント)は 1 件も無い。

この実測にもとづき、ID3 では comment を扱わないことにした(TAGGING_POLICY.md 4.4)。空 description だけを読み書きする特別扱いで事故は避けられるが、得られるのは 15 ファイルで注記を編集できることだけで、その 15 ファイルに注記は無い。一方 iTunNORM の消失は不可逆である(スナップショットの RawTags は記録用で復元に使わない)。

なお、ファイル数が測定日 2026-08-03 の 1,041 件(M4A 516・FLAC 510)から動いているのは、その後の所蔵の増減による。形式の比率と ID3 が 15 件である点は変わっていない。