Abfragen

Query Manager - Die Abfragen-Verwaltung

Im Menü: Query -> Manage Queries (Tastenkombination: Ctrl+m) oder alternativ über die rechte Maustaste im Kontextmenü kann der Query-Manager gestartet werden.

Querymanager

Im linken Fenster werden alle bestehenden Abfragen aufgelistet, während im rechten Fenster Einzelheiten der jeweils links markierten Abfrage erscheinen. Mit „New“ kann man eine neue Abfrage hinzufügen, oder mit „Edit“ eine bestehende Abfrage ändern. „Clone“ erzeugt eine Kopie der markierten Abfrage, die dann modifiziert als neue Abfrage gespeichert werden kann. „Remove“ löscht die Abfrage, „Clear“ entfernt alle Abfragen (VORSICHT!!!) und mit „Close“ kann man den Query-Manager ohne Änderungen verlassen.

Achtung: Sollte hier ein Missgeschick geschehen sein - kein Problem - MusicMan noch nicht schließen, sondern die ini-Datei erst retten, dann MusicMan schließen, die ini zurückkopieren und MusicMan erneut starten.

Mit „New“ und „Edit“ (oder per Doppelklick) erscheint ein Query-Editor, der auf der ersten Seite „Query info“ verschiedene Einzelheiten zeigt:

Query info
  • Unique results: Hier wird ausgewählt, ob bei mehrfach vorhandenen Ergebnissen nur eines (Haken gesetzt) oder alle (Haken nicht gesetzt) angezeigt werden.
  • Free format: Ist hier ein Haken gesetzt, so kann auf der dritten Seite „Free format“ ein freies Abfrageformat eingesetzt werden. Andernfalls zeigt die dritte Seite „WHERE clauses“, also für alle Spalten der Tabelle eigene Eingabefelder.
  • Join tables: Hier werden die beiden Tabellen der Datenbank verknüpft - Anwendung bei der Hitparade (Charts)
  • Charts: Entscheidung, ob die Charts-Tabelle verwendet werden soll.
  • Sql string: Hier wird das wirksame SQL-Statement angezeigt (nicht editierbar), das sich durch die gewählten Einstellungen ergibt

Auf dem Reiter „Column infos“ können die Spalten ausgewählt werden („include column“), die in der Ausgabe-Tabelle angezeigt werden sollen. Es müssen also nicht immer alle Spalten gezeigt werden. Außerdem kann hier die Sortierreihenfolge („order by“) in den verschiedenen Spalten bestimmt werden.

Query info

Auf dem Reiter „WHERE clauses“ kann eine Liste der verfügbaren Abfragefelder für gezielte Abfragen genutzt werden. Voreingestellt ist in allen Feldern das %, was soviel wie „alles“ bedeutet. Hier können dann je nach Bedarf die gewünschten Such-Begriffe eingegen werden. Im obigen Beispiel werden alle IDs, die mit 1605 anfangen angezeigt, also alle Datenträger (nicht ihre Tracks).

Query clauses

Sofern auf dem ersten Reiter „Free format“ angehakt ist, erscheint satt dessen hier der Reiter „Free format“ mit der Möglichkeit des Eintrages eines frei gewählten SQL-Statements. Dieses wird beim Klick auf „ok“ auf Gültigkeit überprüft. Sollte man hier einen Tippfehler gemacht haben, so erhält man die Möglichkeit, diesen erneut zu „bearbeiten“ oder zu „ignorieren“. Da solche SQL-Statements eine gewisse Grundkenntnis voraussetzen, ist in vielen Fällen die obige Alternative sinnvoller.

Query free

Das Zeichen % ist Platzhalter für 0..n beliebige Zeichen (Wildcard).

Als Beispiel sei hier eine Abfrage erläutert, die eine Liste aller bestehenden Datenträger ausgeben soll.

Mit Query –> Manage Queries wird der Query-Manager aufgerufen und dort mit „New“ eine neue Abfrage erstellt, die den Titel „Alle CDs“ erhalten soll. Auf der ersten Seite wird lediglich „Free format“ ausgewählt. Auf der zweiten Seite werden die Spalten ausgewählt, die in der Tabelle angezeigt werden sollen. Die Abfrage wird auf der dritten Seite dann so formuliert:

Id_Title LIKE „%“ AND Title LIKE „%“ AND Interpreter LIKE „%“ AND Duration LIKE „%“ AND Date LIKE „%“ ORDER BY upper(Interpret), upper(Titel)

Die Bedeutung im Einzelnen:

  • Id_Title LIKE „%00“ = es werden alle IDs angezeigt, die auf „00“ enden
  • Title LIKE „%“ (und die weiteren Einträge) = es werden alle Einträge ausgegeben
  • ORDER BY upper(Interpret), upper(Titel) = Sortierreihenfolge: erst nach Interpret, dann (innerhalb des gleichen Interpreten) nach Titel - ohne Berücksichtigung von Klein- und Großschreibung

Ein Tipp: Sollte eine andere Sortierreihenfolge gewünscht werden, so kann man auf die über der Tabelle befindliche Kopfleiste klicken. Dann wird nach der jeweiligen Spalte sortiert.

Quick Query = Schnellabfrage

Dies ist ein besonderes Highlight des MusicMan und ein schneller Weg, einen Titel und / oder Interpreten zu suchen.

Quick Query

Mit F3 oder der Tastenkombination Ctrl+k (Menü: Query –> Quick Query) erscheint ein Fenster mit verschiedenen Eingabemöglichkeiten:

  • Fuzzy: Ein hier eingebener Begriff sucht in den Spalten „Titel“ und „Interpret“ nach passenden Einträgen
  • Title: Hier kann nach einem Titel gesucht werden
  • Interpreter: Hier kann getrennt nach einem Interpreten gesucht werden

Mit „parameter position“ lässt sich wählen:

  • no wild (i.e. ABC) = der eingegebene Begriff wird absolut und ohne Abweichung gesucht
  • left (i.e. Abc%) = der eingegebene Begriff wird linksbündig gesucht, also alle Zeichenketten die mit Abc beginnen
  • elsewhere (i.e. %Abc%) = der Begriff wird an beliebiger Stelle gesucht

In keinem Fall wird zwischen Groß- und Kleinschreibung unterschieden. Mit dem Eintippen wird im Hintergrund bereits die Tabelle aufgebaut, so dass man gut beobachten kann, ob schon einige wenige eingetippte Buchstaben zum Ziel führen. Dabei ist die Anzahl der Treffer, einstellbar von 16 bis 2048, begrenzt.

Mit „Album: (if checked, scan music device for album tags“ kann man im Fenster eine weitere Spalte anzeigen, in der (sofern vorhanden) Angaben über das Album (CD) dargestellt werden, in dem dieser Titel enthalten ist. Vorsicht - da hier die auf dem Datenträger vorhandenen Dateien untersucht werden, verlangsamt diese Option die Suche entsprechend.

Die Hitparaden - Charts

Dies ist ein ganz besonderes Highlight von MusicMan. In der Datenbank gibt es eine zweite Tabelle, in der die kompletten Hitparaden der Jahrgänge ca. 1940 - 79 enthalten sind. Dazu wird eine spezielle Abfrage benötigt, die bei Eingabe eines bestimmten Datums die entsprechende Liste der Hitparade ausgibt.

Erste Charts gab es in den USA ab dem 24.7.1940 in Form einer Top 10, ab dem 15.11.1947 erweitert auf Top 15 und ab 5.6.1948 die Top 20. Ab dem 15.11.1952 gab es dann auch in England eine solche Charts, zunächst als Top 12 (? warum auch immer ?), ab dem 2.10.1954 dann als Top 20 und ab 14.4.1956 als Top 30. Ab dem 12.3.1960 gab es dann sogar eine Top 50, die dann ab 13.5. 1978 zur Top 75 und ab 1983 zur Top 100 wurde.

Mit der folgenden Abfrage (Charts-date) wird die Ausgabe dieser Hitparaden zu bestimmten Stichtagen (jeweils ein Samstag) ausgegeben:

SELECT Id_Titel, Titel, Interpret, Code, Platz, Pdatum FROM muma_titel, muma_platz WHERE Pdatum BETWEEN date(„%param%“, „-3 days“) AND date(„%param%“, „+3 days“) AND Id_Titel = Titel_Id ORDER BY Platz

wobei im Query-Manger die Punkte „Join tables“ und „Charts“ aktiviert sein müssen.

Bei dieser Abfrage wird zunächst die Eingabe eines Datums verlangt, nehmen wir doch mal den 5.5.1953 ;-) Achtung: Eingabeformat beachten!!!

Charts1

Das Ergebnis sieht dann so aus:

Charts2

Die Platznotierungen werden der Reihe nach aufgelistet (von 1 bis 12) - im Radio wurde diese Hitparade sicher anders herum gespielt, um die Spannung zu erhöhen, welcher denn nun der Top-Hit der Woche war. Dies kann durch Klick auf die Kopfzeile der Spalte Platz (Place) umgekehrt werden. Dass der Platz 4 zweimal vorkommt, ist kein Fehler. Damals kam es oft vor, dass Titel gleichberechtigt waren. Erst später wurde so verfahren, dass der nachfolgende Platz dann nicht vergeben wurde. Jetzt kann man alle Titel markieren und mit „Play title(s)“ den Player starten.

Warum nur die Hitparaden der 40’er bis 70’er Jahre vorhanden sind? Reine Geschmackssache. In den 80’er Jahren begann eine Musik-Inflation, alte Titel wurden wieder neu aufgenommen, Disco-Musik, Rave, Dance, House, Rap nahmen überhand und es fielen so viele Titel durch meinen Geschmacksfilter, dass eine Aufnahme späterer Chartsdaten für mich nicht mehr sinnvoll war.

(Sie existieren allerdings in separaten Tabellen und könnten auch hier eingefügt werden)

Musikdateien kopieren

Hat man eine Abfrage erstellt, so kann man die Titel abspielen, was sicher das hauptsächliche Ziel einer solchen Abfrage ist. Aber man kann diese auch als Tabelle exportieren (s. u.) oder sogar die Musikdateien in ein anderes Ziel kopieren. Dazu ist folgende Situation denkbar:

Eine Abfrage ist fertig und man möchte nun diese Titel nicht nur lokal abspielen, sondern z.B. auf einen externen MP3-Player übertragen oder anderweitig „versammeln“. Zunächst werden also die entsprechenden Titel in einer Abfrage oder Playlist markiert. Dann wird das Menü „Copy file(s)“ aufgerufen (entweder im Menü: File oder in der Abfrage oder Playliste über das Kontextmenü - rechte Maustaste) und es öffnet sich ein Fenster für weitere Eingaben:

Copy files

Hier wird zunächst ein Zielverzeichnis ausgewählt. Man kann ein vorhandenes Verzeichnis markieren und dieses als Ziel benutzen oder mit „Neu“ ein neues Verzeichnis errichten (als Unterverzeichnis in dem bereits markierten). In der Eingabezeile kann ein entsprechender Name eingegeben und mit der Enter-Taste übergeben werden. Der vorgegebene Name „NewFolderName“ kann natürlich bei Tippfaulheit auch benutzt werden. „Show hidden / dotted dirs“ ermöglicht die Anzeige versteckter Verzeichnisse (hidden = Windows, dotted = Linux).

Als nächstes ist das Dateiformat zu wählen. Hier stehen die drei Formate „mp3“, „ogg“ und „wav“ (groß oder klein geschrieben) zur Wahl. Egal, welches Format die Quelle hat, dieses wird das Ausgabeformat. Wird „do not change“ gewählt, so wird die entsprechende Datei lediglich kopiert - auch die gewählte Bitrate wird dann ignoriert.

Mit Conversation bitrate kann die Qualität gewählt werden. Höhere Bitrate führt zu einer grösseren Ausgabedatei.

Für die Conversion wird das ausgewählte externe Programm „ffmpeg“ als Konverter benutzt und im Hintergrund aufgerufen. Dabei werden ogg- oder mp3-Dateien von guter Qualität erzeugt.

Weiterhin muss noch das Dateinamen-Format gewählt werden: „select target filename fomat“. Mit ID_Title.ext wird die Musikdatei so kopiert, wie sie auf der Festplatte vorhanden ist. Als Dateiname gilt dann ID.ext (z. B. 405411.wav).

Für manche Anwendung, z. B. bei Export für einen MP3-Player kann es sinnvoller sein, den Dateinamen nach dem Muster Interpret-Titel.ext zu bezeichnen (z. B. Beatles_(the)-Yellow_Submarine.mp3). Bei diesem Verfahren werden wahlweise (Checkbox Filename spaces handling) Leerzeichen durch _ ersetzt und bestimmte (in Dateinamen verbotene) Sonderzeichen unterdrückt.

Weiterhin kann es sinnvoll sein, beim Kopieren mehrerer Titel, diesen eine laufende Nummer voranzustellen nach dem Muster nn-Interpret-Titel.ext (z. B. 01-Beatles_(the)-Yellow_Submarine.mp3)

Mit „Copy“ wird dann der Kopier- bzw. Konvertierprozess gestartet. Bei mehreren Titeln erscheint ein Fortschrittsbalken, der den aktuellen Stand des Prozesses anzeigt.

Will man einen externen MP3-Player damit versorgen, so muss dieser ordnungsgemäß gemountet sein und als Device (meist unter /media/Username/mp3player, bei Windows mit eigenem Laufwerksbuchstaben) zu sehen sein. Außerdem müssen die Dateien natürlich ins MP3-Format gewandelt werden.

Achtung: Falls konvertiert werden muss, wird der eingestellte Konverter (z. B. ffmpeg) aufgerufen und arbeitet unabhängig vom MusicMan. Der Vorgang kann geraume Zeit und Prozessorleistung in Anspruch nehmen. Dieser Befehl ist also mit Vorsicht einzusetzen, da sonst das System für längere Zeit in Arbeit ist und damit für andere Prozesse „schwerfällig“ werden kann.