Dies ist eine alte Version des Dokuments!


Dieser Artikel befasst sich mit der Erfassung einer generischen Musiksammlung. Diese wird so erfasst und konstruiert das sie von jedem beliebigen Endgerät eingelesen und verarbeitet werden kann. Dies Zufolge halten wir uns hier nur an dem Standard. Welche Programme man verwendet ist jeden selbst überlassen. Wir verwenden hier folgende:

Liste zum Installieren:

apt install clementine eyed3 easytag find soundconverter

Ziele:

  1. Sortieren verschiedener Alben
  2. Setzten der richtigen TAGS
  3. Integration von einem Albumcover
  4. Automatische Synchronisierung mit dem USBstick für das Fahrzeug

Grundsätzlich ist es nicht nötig bei der Verwendung von ID3tags die Musik auf der Festplatte zu sortieren. Man könnte rein technisch gesehen alle MP3/FLAAC oder sonstige Musikdateien auf der Festplatte auf einen Haufen werfen. Trotzdem würden sie in den jeweiligen Musikprogrammen sortiert dargestellt werden. Dies erledigen unsere TAGS die wir setzen werden.

Wir werden aber trotzdem unsere Dateien sauber nach gewollten Alben sortieren, da es so viel leichter ist den Überblick zu behalten. Hat man seine Alben auf der Festplatte im Ordner „/home/$USER/Musik“ sortiert, öffnet man Clementine. Das Programm ließt die Sammlung ein. Sind die TAGS unvollständig oder falsch, von dem wir hier ausgehen, hat man in der Albenliste links nur ein Durcheinander.

Echtes kopiertes/heruntergeladenes Album eines einzigen Interpreten

Hier hat man wenig Schwierigkeiten. Klickt man eine MP3 Datei mit der Rechten Maustaste in Clementine an, kann man mit dem Menüeintrag „Tags automatische vervollständigen“ Sich die richtigen Tags aus dem Internet besorgen. Diese werden durch die Struktur der Datei errechnet. Dies funktioniert tatsächlich sehr gut. Man erspart sich hier viel Eintragungsarbeit. Das kann natürlich auch auf Mixalben anwenden. Womöglich muss man danach noch den Namen des Albums für alle beinhaltenen Dateien abändern. Dazu kommen wir später noch.

Eigenes Albenmix zusammenstellen

Hier gehen wir nun von unserem Fantasiealbum aus. Zusammengewürfelte Songs aus von den verschiedensten Interpreten und Alben. Wir nennen es „Music-ISY“. Wir haben jetzt bereits alle Titel die wir dabei haben möchten in den Ordner „/home/$USER/Music-ISY“ kopiert. Von unseren Titeln hat kein einziger einen TAG, und vom Dateinamen kann man leider fast nichts brauchbares herauslesen. Wir gehen also folgender Maßen vor:

Zuerst gehen wir in ganz linken Spalte von Clementine auf Dateien, und zu unserem Music-ISY Ordner. Den Inhalt ziehen wir in die Wiedergabeliste hinein. Nun markieren wir alle Songs und sagen „Tags automatisch vervollständigen“. Meiste gehen nicht beim Ersten Versuch alle durch. Die was übrig geblieben sind, lassen wir nochmalig vervollständigen. Geht auch schneller, mittels „Anklicken des Songs, und STRG+T“.

Hat man alle Songs durch, schreibt man folgende Dinge in alle Songs:

  • Album
  • Album-Interpret (dieser TAG ist bei den MIX essentiell, ohne diesen TAG, wird des nur per Titelinterpret sortiert)

Also alle Songs in der Playlist markieren (STRG+A), Rechtsklick auf „Metadaten bearbeiten“, die beiden Felder ausfüllen und auf „Speichern klicken“.

Nun kann noch restliche Daten manuell ausbessern, wie z.B. die Titelnummer (Stück), Genre, Interpret, Komponist.

Meist sind schon Bilder in den Dateien enthalten, und meist sind diese viel zu klein und pixelig. Der Größe dieser Datei gibt es keine Grenze. Die Musikdatei wird nur etwas größer. Lediglich das Endabspielgerät kann seine Grenzen haben. Z.B. das ein Bild nicht dargestellt werden kann, da seine Auflösung zu hoch ist. Probleme gab es mit Bildern über 1000×1000 bei manchen Autoradios.

Grundeinstellung für Clementine. Wichtig ist hier der Name des Albumcovers: „Folder“

Wir suchen uns also für unser Album ein nettes Bildchen aus, und speichern es unter dem Namen „Folder.jpg“ im Albumordner ab. Um nun unser Bildchen auch in die Datei rein zubekommen bedienen wir uns der Kombination von find und eyed3. Wir gehen per Terminal in unseren Albumordner hinein, und führen folgendes Befehl aus: (geht am einfachsten in Nautilus mit Rechtsklick „Im Terminal Öffnen“)

find -type f -name "*.mp3" -execdir eyeD3 --add-image=Folder.jpg:FRONT_COVER {} \;

Nach Beendigung haben alle Dateien das neue Cover. Die Codezeile arbeitet rekursiv. Das heist, man kann sie auch direkt im Musikordner starten und schreibt so auf einmal in jedes Album das Cover. Dazu muss natürlich in jedem Albumordner das richtige Bildchen mit dem Namen „Folder.jpg“ abgelegt sein.

A C H T U N G
Dieser Befehl darf pro Album nur einmal ausgeführt werden. Jedes mal wir ein Bild geschrieben, das heißt beim Zweiten mal hat man zwei gleiche Bilder pro Datei. Hier ein Ausschnitt von Easytag.

Doppelte Bilder

Sehr oft kommt es vor das doppelte Bilder schon in den Dateien vorhanden sind. Je nach Programm kommen die Bilder dann durch Zufallsreihenfolge, oder auch gar nicht. Deshalb immer nur ein Bild pro Datei verwenden. Um nun alle Bilder eines Albums oder der gesamten Sammlung zu entfernen gibt man den folgenden Befehl wieder im Albumordner oder wenn man möchte das alle Bilder der gesamten Sammlung gelöschte werden, im obersten Musikordner ein.

find -type f -name "*.mp3" -execdir eyeD3 --remove-images {} \;

Als Kombination könnte man sich draus auch ein kleines Script bauen was zuerst alles entfernt und dann nur ein Bild hinzufügt.

Jetzt könnte natürlich einer meinen, geht doch einfach… kann jedes Musikdatenbankprogramm. Ja, das stimmt. Aber meist manuell, das heist man muss sich aussuchen was man alles haben möchte. Zudem wird meist immer alles immer wieder neu kopiert. Es ist oft nicht möglich die Daten hier gut synchron zu halten. In diesem Beispiel vergessen wir alle grafischen Programme und halten uns wieder an den Standards.

Wir verwenden hier einen USBstick mit 32GB, gezwungenermaßen mit FAT formatiert, da der Autoradio nichts anderes erkennt. Dementsprechend müssen auch die Optionen für Rsync sein. Das folgende Script ist nur auf meinem User und dem USBsticknamen zugeschnitten. Sollte auf jedenfall noch verbessert werden, damit es auch generic läuft.

cat bin/sync_music_database_to_usb_stick.sh 
sync_music_database_to_usb_stick.sh
  #!/bin/bash
  echo "--------------------------------------------------------"
  echo "Diese Script synchronisiert die gesamte Musikdatenbank"
  echo "mit dem USBstick für das Auto."
  echo
  echo "Zum Starten eine beliebige Taste drücken!"
  echo "--------------------------------------------------------"
  read x
  rsync --delete --stats --modify-window=1 -P -rt /Pfad/Musik /media/$USER/CC64-FB57/.
  echo
  echo
  echo
  cowsay "Vorgang Abgeschlossen! Taste drücken um USBstick auszuwerfen"
  read x
  umount /media/$USER/CC64-FB57

Dieses Script synct einmal alles, und dann nur mehr die Änderungen. Natürlich werden auch gelöschte Daten von der Datenbank automatisch am Stick gelöscht. Hier noch der Programmstarter dazu:

cat .local/share/applications/Sync\ Musikdatenbank.desktop
[Desktop Entry]
Version=1.0
Name=Sync Musikdatenbank
Exec=gnome-terminal --sm-client-disable --class=MyServer --geometry=100x40 -x sync_music_database_to_usb_stick.sh
StartupWMClass=MyServer
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/$USER/.icons/Sigma-Beta/actions/96/media-optical-audio-new.png
StartupNotify=true
Name[de_AT]=Sync Musikdatenbank