Commander: „go"
Die Dateien hiessen `Track 01.flac`. Eine Musiksammlung ohne Titel ist eine
Sammlung von Nummern.
## Wie MusicBrainz eine CD wiedererkennt
Nicht am Namen (den kennt die CD nicht) und nicht an einer Kennung auf der
Disc (die gibt es nicht), sondern an der LAGE ihrer Spuren. Daraus wird ein
Fingerabdruck gerechnet — SHA-1 ueber die Versaetze, base64 mit eigenem
Alphabet (musicbrainz.org/doc/Disc_ID_Calculation).
## Belegt OHNE Audio-CD
MusicBrainz gibt zu jeder bekannten Kennung die Spurlage heraus, aus der sie
gerechnet wurde. Wer die Lage zurueckbekommt und daraus dieselbe Kennung
rechnet, hat die Rechnung belegt:
Spurlage „Back in Black" (abgefragt) -> 3KVSIWn_ewv9z0cCizmOJzDWtsQ-
MusicBrainz sagt dazu -> 3KVSIWn_ewv9z0cCizmOJzDWtsQ-
Und die ganze Kette am Stueck, mit echtem Encoder:
Ordner ACDC - Back in Black
Dateien 01 - Hells Bells.flac, 02 - Shoot to Thrill.flac, …
Tags TITLE/ARTIST/ALBUM/ALBUMARTIST/DATE/TRACKNUMBER
— mit metaflac aus der FERTIGEN Datei zurueckgelesen
## Zwei Fallen
**Der Vorlauf.** Die Kennung rechnet MIT den 150 Frames, das Lesen OHNE. Wer
das verwechselt, bekommt eine Kennung, die niemand kennt — und zwar ohne
Fehlermeldung, denn die Antwort ist dann schlicht „unbekannte Disc".
**`AC/DC`.** Als Ordnername haette der Schraegstrich unter Windows einen
Unterordner aufgemacht. Aufgefallen NUR, weil der Beweis den Namen ausgegeben
hat. Jetzt saeubert `sauberer_name` beides — Datei und Ordner.
## ⚠️ Mein Fehler dabei
Die Spurlage im Test hatte ich zuerst ERFUNDEN: Beim Beweis hatte ich nur
Spurzahl und Lead-Out ausgegeben und den Rest „passend" ergaenzt. Der Test
wurde prompt rot — zu Recht. Die Zahlen stehen jetzt so drin, wie MusicBrainz
sie herausgibt (erste Spur bei 182, nicht bei 150: diese Pressung hat einen
laengeren Vorlauf).
Ohne Treffer bleibt es bei `Track 01.flac`. Eine unbekannte Disc ist kein
Fehler, und ein Netzausfall darf keinen Rip umwerfen.
932 Tests gruen, ruff sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
986fcf19b1
commit
f6f0a4ccb6
@@ -23,6 +23,35 @@ seine Dateien** (`flac -t`, Code 0). Am echten Laufwerk gegengeprüft, dass das
|
||||
Inhaltsverzeichnis gelesen wird — die eingelegte Blu-ray meldet sich korrekt
|
||||
als *Daten*-Track und wird nicht als Musik behandelt.
|
||||
|
||||
### Und die Titel dazu
|
||||
|
||||
Die Dateien heißen nicht mehr `Track 01.flac`. MusicBrainz erkennt eine CD an
|
||||
der **Lage ihrer Spuren** — daraus wird ein Fingerabdruck gerechnet, und der
|
||||
führt zu Album, Interpret, Jahr und jedem Titel.
|
||||
|
||||
Belegt ohne Audio-CD, weil MusicBrainz zu jeder bekannten Kennung die
|
||||
Spurlage herausgibt, aus der sie gerechnet wurde:
|
||||
|
||||
```
|
||||
Spurlage von „Back in Black" (abgefragt) → 3KVSIWn_ewv9z0cCizmOJzDWtsQ-
|
||||
MusicBrainz sagt dazu → 3KVSIWn_ewv9z0cCizmOJzDWtsQ-
|
||||
```
|
||||
|
||||
Die ganze Kette am Stück gemessen — echte Spurlage, echte Abfrage, echter
|
||||
Encoder:
|
||||
|
||||
```
|
||||
Ordner ACDC - Back in Black
|
||||
Dateien 01 - Hells Bells.flac, 02 - Shoot to Thrill.flac, …
|
||||
Tags TITLE / ARTIST / ALBUM / ALBUMARTIST / DATE / TRACKNUMBER
|
||||
(mit metaflac aus der fertigen Datei zurückgelesen)
|
||||
```
|
||||
|
||||
Zwei Fallen dabei: Die Kennung rechnet **mit** den 150 Frames Vorlauf, das
|
||||
Lesen **ohne** — wer das verwechselt, bekommt eine Kennung, die niemand kennt,
|
||||
und zwar ohne Fehlermeldung. Und `AC/DC - Back in Black` hätte als Ordner
|
||||
einen Unterordner aufgemacht; die Band heißt nun mal so.
|
||||
|
||||
Zwei Fallen stecken in der Sache, beide dokumentiert und beide im Code
|
||||
begründet: Die Leseadresse zählt in **2048er**-Einheiten, obwohl ein
|
||||
Audio-Sektor 2352 Bytes hat. Und `flac.exe` braucht `libFLAC.dll` daneben —
|
||||
|
||||
Reference in New Issue
Block a user