Musik organisieren

24/11/2013 - 01:40 von Jürgen Harter | Report spam
Hallo zusammen,

so sieht meine Sammlung im Moment aus:

- CD ist meist das Ur-Format, denn so wurde ein Großteil meiner Musik
gekauft und kann zB. auch verliehen werden.
- mp3 stellt den größten Teil meiner Musikdaten dar. Im Moment sind
diese auf meinem Laptop (dem Hauptrechner) gespeichert. Datensicherungen
existieren auf meinem Server etc..
- aac ist das Format, in das ich viele meiner mp3-Dateien umgewandelt
habe, als ich sie auf meinen ipod gespeichert habe. Der ipod wird
eigentlich nur im Auto genutzt.
- zukünftig möchte ich flac als Archivformat nutzen. Die CDs sollen
möglichst nochmals als flac gerippt werden und damit die mp3s ersetzen.
Die mühsam erstellten Tags aus den mp3s sollen natürlich in die flacs
übernommen werden.

Die Herausforderung ist, diese 2 bis 4 Datenbestànde synchron zu halten.
Die Dateien werden sich immer wieder veràndern; mp3s werden durch flacs
ersetzt, tags werden korrigiert...

Der Server hat ein CD-Laufwerk und genug Leistung, um die erwartete
Menge an Audiodateien in für mich zufriedenstellender Zeit zu kodieren.

- neue Rips landen als flac direkt auf dem Server (der hat ein CD-Laufwerk)
- Der Laptop hat nur beschrànkten Speicherplatz und soll die (flac-)
Daten vom Server als mp3 (zukünftig vielleicht auch gerne als ogg oder,
falls u.g. Vereinfachung notwendig ist, als aac, wie beim ipod) synchron
übernehmen
- Korrekturen der Tags / Ordnerstrukturen finden normalerweise auf dem
Laptop statt. Diese automatisch in die flacs zu übernehmen wàre schön
(nice to have, aber kein Muss). Ein Muss ist aber, dass diese Änderungen
dokumentiert werden, so dass sie ggf. manuell auf dem Server (den flacs)
nachvollzogen werden können.
- Eine Zweitkopie als aac soll auf dem Server vorgehalten werden; ein
on-the-fly recode beim Übertragen auf den ipod ist mir zu langsam. Die
Änderungen in den anderen Archiven sollten so schnell wie möglich auch
direkt im aac-Archiv übernommen werden.

Speicherplatz auf dem Server ist kein begrenzendes Kriterium. Das
Synchronisieren bei allen meinen Backups erledige ich momentan per
rsync. Aber wie stelle ich dabei den Vergleich der unterschiedlich
formatierten Dateien an? Geht das alles auch ohne Datenbank? Und wenn
nein, welche könnte man nehmen? Und wie verskriptet man das dann geschickt?

Irgendwie finde ich kein schlüssiges Konzept, das umzusetzen. Ich bin
auch für "Vereinfachungen" offen, bspw könnte das ipod- und das
Laptop-Archiv gleich sein, so dass es quasi nur noch zwei Datenbestànde
gàbe.

Das Kernproblem ist allerdings, die Synchronisation der unterschiedlich
formatierten Datenbestànde.

Auf dem Laptop und dem Server laufen übrigens Linux.

Danke für alle Anregungen,
Jürgen
 

Lesen sie die antworten

#1 Marcel Müller
24/11/2013 - 15:53 | Warnen spam
Hallo,

On 24.11.13 01.40, Jürgen Harter wrote:
- zukünftig möchte ich flac als Archivformat nutzen. Die CDs sollen
möglichst nochmals als flac gerippt werden und damit die mp3s ersetzen.
Die mühsam erstellten Tags aus den mp3s sollen natürlich in die flacs
übernommen werden.



da wàre die erste Hürde, die MP3 mit deinen CDs zu korrelieren, also
woher weiß die CD X dass dazu genau die MP3 Files xxx, yyy und zzz
gehören und nicht etwa andere. Dass sich die Tags nicht zum Matching
eignen, hast Du gerade selbst begründet.
Hast Du seinerzeit zufàllig die CD ISRC mit in die Metadaten der MP3s
aufgenommen? Wenn ja bist Du jetzt fein raus. Andernfalls würde ich
sagen am A***.

Die Herausforderung ist, diese 2 bis 4 Datenbestànde synchron zu halten.
Die Dateien werden sich immer wieder veràndern; mp3s werden durch flacs
ersetzt, tags werden korrigiert...



Du musst einfach nur eine feste Reihenfolge der Prozesschritte
definieren, die vom Original zu den gerippten Dateien und ihren
Derivaten führen. Dann gibt es für jede Information einen festen
Ursprung und der Rest làsst sich automatisieren. Also:

CD(*) + korrigierte Metadaten(*) -> FLAC

FLAC -> MP3

FLAC -> AAC

Nur die mit (*) gekennzeichneten Informationen enthalten originale
Informationen. Der Rest sind Derivate der Dateien, die sich automatisch
erzeugen lassen. Als Kriterium reicht i.A. wenn das Dateidatum des
Originals neuer als das des Derivats ist. Solange die
Verzeichnisstrukturen für die Verschiedenen Derivate übereinstimmen, ist
die Zuordnung auch eindeutig. Heiß wenn eine Datei im FLAC-Baum dazu
kommt, werden auch die Derivate erstellt. Wenn sie verschwindet oder
gelöscht wird, verschwindet sie auch dort.

Bei der ganzen Sache habe ich jetzt vorausgesetzt, dass die
Encoder-Einstellungen nicht von Datei zu Datei variieren.


Der Server hat ein CD-Laufwerk und genug Leistung, um die erwartete
Menge an Audiodateien in für mich zufriedenstellender Zeit zu kodieren.



Jeder aktuelle Laptop dürfte die 3 Zielformate schneller erstellen als
jedes aktuelle optische Laufwerk die Daten fehlerfrei lesen kann.

Ich würde mir eher sorgen um den Discjockey-Job davor und die
Lebenserwartung des Laufwerks machen. Ein paar hundert CDs zu rippen,
ist kein Vergnügen.

- neue Rips landen als flac direkt auf dem Server (der hat ein CD-Laufwerk)
- Der Laptop hat nur beschrànkten Speicherplatz und soll die (flac-)
Daten vom Server als mp3 (zukünftig vielleicht auch gerne als ogg oder,
falls u.g. Vereinfachung notwendig ist, als aac, wie beim ipod) synchron
übernehmen



MP3 oder was auch immer auf dem Server vorhalten und per rsync
replizieren. Von diesen vorgehaltenen Derivaten brauchst Du auf dem
Server noch nicht einmal ein Backup, da sie im Zweifel in wenigen Tagen
aus den FLACs automatisch wiederhergestellt werden.

- Korrekturen der Tags / Ordnerstrukturen finden normalerweise auf dem
Laptop statt. Diese automatisch in die flacs zu übernehmen wàre schön
(nice to have, aber kein Muss).



Mit einer bidirektionalen Synchronisation öffnest Du nun Pandoras Box.
Das Problem ist, dass man bei der Synchronisation von zwei Quellen nie
weiß, welche nun die richtigen Daten enthàlt. Es fehlt dazu eine weitere
Information, nàmlich was war die letzte, gemeinsame Version der Daten,
die beide gesehen haben. Damit ist dann ein three-way-compare möglich,
aus dem sich alle Änderungen und ggf. auch Konflikte eindeutig erkennen
lassen.

Alle (Quellcode-)Repositories ticken so. Wenn man sich mit einem
einfachen, manuellen synchronisieren zufrieden gibt, reicht vielleicht
auch einfach der Zeitstempel der Datei bei der Synchronisation ggf.
angereichert mit einer MD5-Summe in einer Textdatei. Automatismen wie
nimm den geànderten Artist vom Server und den korrigierten Typo im Titel
vom Laptop bekommt man damit natürlich nicht hin.

Ein Muss ist aber, dass diese Änderungen
dokumentiert werden, so dass sie ggf. manuell auf dem Server (den flacs)
nachvollzogen werden können.
- Eine Zweitkopie als aac soll auf dem Server vorgehalten werden; ein
on-the-fly recode beim Übertragen auf den ipod ist mir zu langsam. Die
Änderungen in den anderen Archiven sollten so schnell wie möglich auch
direkt im aac-Archiv übernommen werden.



Das bekommt man über den Zeitstempel-Vergleich hin. Du musst halt ein
Skript regelmàßig einplanen, dass nach solchen Änderungen sucht. Bei
erheblichen Dateianzahlen (deutlich >10000) und klassischen Festplatten
willst Du das schon wegen dem Energieverbrauch nicht viel öfter als
einmal pro Tag synchronisieren. Bei den lahmen Terabyte-Gràbern kann das
schon mal eine halbe Stunde rödeln.

Sowas àhnliches mache ich, um aus den Files per Symlinks nach Metadaten
sortierte Strukturen zu basteln, die direkt aus jedem Player
angesprochen werden können. Also aus
Artist/Album/Song
wird zusàtzlich
Year/Artist/Album/Song
Genre/Artist/Album/Song
Genre/Artist/Song
etc.

Speicherplatz auf dem Server ist kein begrenzendes Kriterium. Das
Synchronisieren bei allen meinen Backups erledige ich momentan per
rsync. Aber wie stelle ich dabei den Vergleich der unterschiedlich
formatierten Dateien an? Geht das alles auch ohne Datenbank?



Ja, schon, ein Dateisystem ist faktisch auch eine einfache Art
Datenbank. Der Dateiname mit Pfad ist der Primàrschlüssel, der
Dateiinhalt die Daten.

Und wenn
nein, welche könnte man nehmen?



Wenn Du wirklich Richtung Datenbank willst, musst Du nach einem
MAM-System mit Schwerpunkt für AV-Daten suchen. Da liegen die Metadaten
dann in der DB.

Und wie verskriptet man das dann geschickt?



Ein paar Cron-Jobs sollten reichen.

Irgendwie finde ich kein schlüssiges Konzept, das umzusetzen. Ich bin
auch für "Vereinfachungen" offen, bspw könnte das ipod- und das
Laptop-Archiv gleich sein, so dass es quasi nur noch zwei Datenbestànde
gàbe.



Die Zahl der Datenbestànde erhöht die Komplexitàt nur geringfügig.
Die Zahl der Datenquellen ist viel entscheidender. Vor allem dann, wenn
sich diese Quellen widersprechen können.

Das Kernproblem ist allerdings, die Synchronisation der unterschiedlich
formatierten Datenbestànde.



Nur eine bidirektionale Synchronisation ist problematisch.
Unidirektional ist eine Codierung unter Beibehaltung der Metadaten
erfahrungsgemàß kein Problem.

In der Praxis verstehe ich aber auch nicht, was Du für eine
Änderungsrate bei den Metadaten erwartest. Ich meine, die bringt man
einmal (pro CD) in Ordnung, und gut. Bei mir sind die Dateien sogar
meist read-only freigegeben. Das wàre mir viel zu gefàhrlich, dass mal
ein besserwisserisches Programm oder ein falscher Klick den Datenbestand
verunstaltet. Wenn man es merkt, ist es nicht so schlimm, dafür gibt es
Backups. Aber wenn nicht, dann wird es echt eklig. Und wenn wirklich mal
etwas schief ist, dann korrigiere ich es direkt an der Quelle. Das ist
vielleicht 20-mal vorgekommen (in 10 Jahren).

Auf dem Laptop und dem Server laufen übrigens Linux.



Das erleichtert die Sache etwas.


Marcel

Ähnliche fragen