richtige Adresse

ThOrMA: Grundsystem

Grundsätzliche Dateiorganisation

Unsere Beispielkonfiguration ist ein Verzeichnis _irgendwo_, welches folgende Unterstruktur hat (teilweise optional):

Die Verzeichnisnamen bzw. sogar deren Position anderswo sind größtenteils in etc/thorma.conf konfigurierbar (die Datei ist einfacher Text und kommentiert.

Verzeichnis/DateiFunktion
cgi-bin/ Die CGI-Scripte (und Daten derer) für das Web-Frontend
var veränderliche Daten (Musik, Listen, Datenbank, ...)
var/lists Verzeichnisstruktur für verschiedene generierte oder von Nutzern angelegte Playlisten
var/music Die (MP3)-Dateien in einer anschließend erläuterten und auch einleuchtenden Struktur
bin/ Alle Programme des Basispaketes und noch einige mehr (Perl/Bash-Scripts)
lib Verschiedene Programmbibliotheken, der Schwerpunkt des Quellcodes ist in lib/perl
lib/webdata Daten für das Webfrontend (HTML/CSS-Dateien und Bilder)
index.html Startdatei für Web-Frontend
index_frame.html auch, mit zwei Frames (Browser & Steuerzentrale)

Die Programme sollten ihre Umgebung anhand des Aufrufpfade erkennen - sie orientieren sich von bin aus. Bequem, aber nicht nötigist ist das Hinzufügen des bin-Verzeichnisses zu $PATH.

Die Musikdateienstruktur

So manches hier ist lediglich Konvention und nicht unbedingt für das Funktionieren des ThOrMA notwendig. Jedoch sollte man bedenken, dass das nunmal die Umgebung ist, in der die Programe getestet werden... Grundannahme ist ein Wurzelverzeichnis (hier "mp3s"), unter dem ein Schema analog zu dem bei uns genutztem eingehalten wird:

mp3s/
 |-sampler/
 |  |-<Sampler1>/
 |  |  |-<Dateien>
 |  |-<Sampler2>/
 |  |  |-<Dateien>
 |  |-<...>/
 |     |-<Dateien>
 |-<Künstler1>/
 |  |-<Album1>/
 |  |  |-<Dateien>
 |  |-<Album2>/
 |  |  |-<Dateien>
 |  |-<...>/
 |     |-<Dateien>
 |-<Künstler2>/
 |  |-<...>/

Also einfach: Wurzel/Band/Album/Datei. Wichtig ist, dass eine Musikdatei immer in einem Verzeichnis der Album-Ebene liegt. MP3s, die nicht von Wurzel/*/*/*.mp3 erfasst werden, existieren für das ThOrMA nicht (es ist aber nicht garantiert, dass sie nicht stören werden)!

Ich empfinde es als sinnvoll, dem Albumnamen das Erscheinungsjahr vorzusetzen, was auch thorma_dbmgr tut, wenn er diese Information hat. Wichtig ist auch, dass die Titel in der richtigen Reihenfolge im Dateisystem erscheinen, gewährleistet durch Voranstellen der Nummer derer.

Datei/Verzeichnisnamen werden - wenn schon nicht geschehen - kleingeschrieben, auf eine gewissen Satz von Zeichen reduziert, Leerzeichen durch _ ersetzt; was die Arbeit in der Shell erleichtert und auch dafür sorgt, dass unterschiedliche Schreibweisen für einen Künstlernamen in der FreeDB doch zu einem Verzeichnis führen. Es wirkt dann irgendwie klarer.

Ein Beispiel:

>ls mp3s/beroshima/2001_pop_(pornography_of_performance)/
01-t-word_(a_tribute_to_juan).mp3
02-mokambo.mp3
03-cold_love_(short_version).mp3
04-world-wide-whore_(robot_mix).mp3
05-dance_after.mp3
06-domo_arrigato_mr._roboto_(im_the_masturbator_with_my_pocket-vibrator....).mp3
07-understand.mp3
08-mokka_polka.mp3
09-shot_me.mp3
10-cold_love_(club_version).mp3
11-world-wide-whore_(voice_mix).mp3
12-(the)_pornography_of_performance_(film_ab).mp3

Spezielle Bewandnis hat das Künstler-Verzeichnis "sampler": Dies ist das Verzeichnis für alle Various Artist & Co. CDs, also Sampler. Der Name ist konfigurierbar...

In den Samplern tritt dann noch ein vor allem dort sinnvolles Schema für die Namen der MP3s zu Tage, welches aber auch anderswo durchaus nützlich sein kann:

xx-kuenstler_@_titel.mp3

Ein Beispiel:

>ls mp3s/sampler/mittermeier_&_friends/
01-buzz_buzz_featuring_mittermeier_@_back_to_life.mp3
02-mittermeier_vs_guano_babes_@_kumba_yo.mp3
03-michael_mittermeier_@_la_rhythmo_del_burro.mp3
04-sasha_meets_mittermeier_@_el_burro.mp3
05-somersault_&_xavier_naidoo_@_way_to_mars.mp3
06-michael_mittermeier_@_zeugen_jehova_exorzismus.mp3
07-tito_&_tarantula_meets_mittermeier_@_exorcize_your_funky_little_demon.mp3
08-die_lyrika_&_mittermeier_@_das_akchromosom__arschlochkind_strikes_back.mp3
09-mittermeier_meets_the_king_@_smoke_on_the_water_elvis_lives_mix.mp3
10-somersault_@_make_me_laugh.mp3
11-powwow_@_a_man_is_a_man.mp3
12-mittermeier_vs_badesalz_@_walking_on_the_moon.mp3
13-reamonn_&_mittermeier_@_the_lie_and_the_truth_i_love_you.mp3
14-powwow_@_believe_me.mp3
15-somersault_@_say_goodbye_&_hidden_akattack.mp3

(Gegen die hidden tracks sollte auch noch was getan werden... zerschneiden, 2 separate Dateien erzeugen - eine Aufgabe für ThOripper vorm Encoden? ... oder im Nachhinein mit cutmp3?)

In den Albumverzeichnissen schwirren dann noch ein paar Dateien rum, die hauptsächlich für thorma_dbmgr wichtig sind (üblicherweise per vorangestelltem Punkt versteckt un bei Bedarf natürlich erzeugt).
Der Nutzer wird sich hauptsächlich für die Beschreibungsdatei interessieren (bei uns heißt sie Beschreibung.txt); hier stehen die Tags im ThOrMa-Sinne zur Beschreibung der Musiken, auf welche sich auch die Suchfunktion bezieht. Ihr Format wird auch noch näher erläutert werden, da wenn auf das Web-Frontend verzichtet wird, hier selbst Hand angelegt werden muss.
Generell und im Besonderen wenn das Web-Frontend eingestetzt wird, sollte man sich Gedanken um die Dateirechte machen; der Webserver benötigt Schreibrechte auf so ziemlich alles unter var.

Grober Nutzungsüberblick

Nachdem alles Programmatische an seinem Platz ist, wir des Zeit für die ersten Probleme. Es gibt bestimmt welche. Deshalb wär es nett, wenn mal einige Laute das Testen. Bitte tut es.

Die Theorie:

Falls bereits MP3s vorhanden sind, diese mit beliebigen Mitteln (Dateimanager, cp, mv,...) wie oben beschrieben ins dafür vorgesehenen Verzeichnis schaffen. Wenn nicht, dann kann man sich zwecks einfacher Einbindung von Audio-CDs mit ThOripper beschäftigen; dieser sorgt mit Hilfe von cdparanoia, lame und dann durch thorma_dbmgr in Verbindung mit id3v2 für das Rippen, Komprimieren, Benennen & ID3-Taggen durch FreeDB.
Im Idealfall (passende Optionen im Script voreingestellt und auch sonst alles grün) braucht es nur ein 'thoripper all' und die eingelegte cd wandert bis auf eine eventuell notwendige Entscheidung über mehrere mögliche FreeDB-Einträge weitgehend selbstständig ins Archiv (zuerst in den Import-Ordner, ein `thorma_dbmgr -i` erledigt den Rest). Wenn man sich eine entsprechende Verknüpfung auf dem Desktop anlegt, geht das sogar mit einem Mausklick;-)
Nachdem nun etwas neues ins Archiv gewandert ist oder gewisse andere Dinge geändert wurden, ist mitunter eine Inventur fällig einfach `thorma_dbmgr` bzw. DBUpdate über die Web-Oberfläche erledigen dies. Das passiert dann:

Die Praxis:

Wird sich zeigen... bei mir läufts;-)

richtige Adresse


Valid XHTML 1.0! Valid CSS!
Wozu gibt's denn sonst Standards?

Letzte Modifikation dieser Seite: Monday, 07-Mar-2011 08:58:02 UTC