Kritik

Wichtig: Komponistenbilder können z.B. von hier geladen werden. Lizenzhinweise im Archiv. Dieses z.B. im Verzeichnis "Pictures" entpacken! Alternativ gibt es die Funktion zum automatischen Herunterladen in „Einstellungen/Metadaten“.

Der Metadaten-Editor Classical Music Tagger (F-Droid) bzw. (ältere Version im Play Store) kann über den entsprechenden Menüeintrag direkt in der Wiedergabe-Ansicht aufgerufen werden. Er arbeitet auch autark und startet dann mit einer Dateisystem-Ansicht. Wenn der Editor noch nicht installiert ist, führt der Aufruf über das Menü auf die entsprechende Seite im Play Store.

Der Classical Music Scanner bzw. (ältere Version im Play Store) und der SAF Media Scanner bzw. (Play Store) werden ebenfalls unterstützt.

Durch die Einschränkungen seitens Google im Play Store („wegen der Sicherheit...“) können dort seit 2021 von einigen Programmen nur alte oder funktional beschränkte Versionen angeboten werden.

Inhaltsverzeichnis

Album-Ansicht
Werke-Ansicht
Auswahl-Ansicht
Wiedergabelisten-Ansicht
Wiedergabe-Ansicht
Komponisten-Ansicht
Genre-Ansicht
Interpreten-Ansicht
Ordner-Ansicht
Abspielen
Metadaten
Ordner und Album-Titelbilder
Fehlerhafte Metadaten?
Wieso und wofür SAF?

Der Opus 1 Music Player

Ein Erstlingswerk?

Der Opus 1 Music Player ist das größere Geschwist des Unpopular Music Player und damit eigentlich ein Opus 2, was aber genauso aufregend klingt wie „Formel 2“. Im Prinzip gilt alles, was für diesen gilt, auch für jenen.

Die Äpp verwaltet derzeit nur lokal auf dem Gerät liegende Dateien. Sie verwendet standardmäßig die unzuverlässigen Android-Funktionen zur Album- und Albumbild-Verwaltung. Wie man diese zurücksetzt und neu erstellt, ist unten beschrieben. Außerdem kann es notwendig sein, auch die Datenbank der Äpp zurückzusetzen, dafür gibt es einen Menüpunkt im rechts oben befindlichen Menü.

Der erste Programmstart

Wenn die Äpp nicht vorher installiert war oder ihre Speicherinhalte gelöscht wurden, fordert sie beim ersten Programmstart vom Betriebssystem den Datei-Lesezugriff an. Wird dieser genehmigt, werden mittels der Android-Datenbank alle auf dem Gerät befindlichen Musikdateien eingelesen und ihre Meta-Informationen in einer internen Datenbank gespeichert. Das kann je nach Gerät und Anzahl der Dateien sehr lange dauern. Der nächste Start ist dann wesentlich schneller, weil nur noch die interne Datenbank benutzt wird.

Auf einigen Geräten mit Android 6 und neuer funktioniert der Dateizugriff beim ersten Programmstart nicht, d.h. wenn der Benutzer gefragt worden ist, ob er den Zugriff gestattet. Dieser Fehler tritt z.B. beim Nexus 7 auf, beim Nexus 5 aber nicht. Der Fehler wird ab Programmversion 1.50 automatisch erkannt und gemeldet.

Die Medien-Datenbank

Das Programm unterstützt drei alternative Mediendatenbanken: erstens diejenige des Betriebssystems, also die Android-Datenbank, zweitens solche, die vom Classical Music Scanner erzeugt wurden, und drittens solche, die vom SAF Media Scanner erzeugt wurden. Die beiden letztgenannten Modi werden in der Titelzeile signalisiert, und zwar mit "DB" oder SAF.

Alternative 1: Standardmäßig verwendet das Programm die Android-Datenbank und erzeugt daraus seine eigene, private Datenbank; dabei werden keine besonderen Berechtigungen benötigt. Nachteile sind, daß die Android-Datenbank typischerweise fehlerhaft und unzuverlässig ist und daß der Neuaufbau der eigenen Datenbank langwierig ist.

Alternative 2: Der Classical Music Scanner legt, typischerweise im Verzeichnis "ClassicalMusicDb", eine Datenbank ähnlich der von Android an, jedoch ohne deren Fehler und dafür mit allen notwendigen Informationen. Diese wird im Einstellungsdialog „Wiedergabe/Eigene Datenbank verwenden“ aktiviert.

Achtung ab Android 11: Hier ist das System derartig restriktiv, daß kein Programm mehr auf die Datenbank oder die Alias-Datei im Verzeichnis "ClassicalMusicDb" zugreifen darf, weder schreibend noch lesend. Es gibt also keine gemeinsam verwendbaren Verzeichnisse mehr, in denen Programme Daten gemeinsam nutzen dürfen. Derzeit ist die einzige Lösung, dem Abspielprogramm über das Dreipunkte-Menü vollen Dateizugriff zu gewähren. Dies wiederum wird von Googles Play Store unterbunden, d.h. das Abspielprogramm darf dort nicht veröffentlicht werden, wenn es nur die Möglichkeit bietet, den Nutzer um vollen Dateizugriff zu bitten. Deshalb bietet nur die bei F-Droid veröffentlichte Programmversion diese Möglichkeit. Eine unvollkommene Methode, Googles Beschränkungen zu umgehen, wäre, die Datenbankdatei nicht "musicmetadata.db" zu nennen, sondern beispielsweise "musicmetadata.db.jpg". Dann hält Google die Datenbank für ein Bild, auf das man wiederum zugreifen darf. Leider kann man jedoch nicht auf die Albumbilder zugreifen, weil die laut Google keine Medien sind, im Gegensatz zu allen anderen Bildern. Ohne den vollen Dateizugriff kann man auch die Komponistenbilder nicht automatisch herunterladen, und falls man sie manuell lädt, kann die Alias-Namensdatei nicht gelesen werden.

Alternative 3: Seit Version 2.30 kann Musik auch von Medien abgespielt werden, die nur über Googles Storage Access Framework (SAF) erreichbar sind. Dazu gehören z.B. USB-Speicher (die erst mit Android 9 oder 10 wie SD-Karten behandelt werden), Netzwerkfreigaben und einige „Cloud“-Dienste. Um Verzeichnisse über SAF zugänglich zu machen, muß zunächst mit dem Programm SAF Media Scanner eine entsprechende Datenbank erzeugt werden, dann wählt man im Opus 1 Music Player über den zugehörigen Menüeintrag das Basisverzeichnis aus. Hier sollte sich der vom SAF Scanner angelegte Ordner ClassicalMusicDb befinden, aus dem sich der Player die Datenbank kopiert und dann öffnet (das Kopieren ist notwendig, weil die Android-Datenbank-Bibliothek nicht mit dem Android- SAF-System umgehen kann). Wenn das SAF-Verzeichnis schreibgeschützt ist, hat der Scanner die Datenbankdatei (Dateinamen-Endung „.db“) in den internen Speicher kopiert, typischweíse wieder nach "ClassicalMusicDb", und der Player muß nach der entsprechenden Datei fragen.

Interessant für Android 11 ist, daß interner Speicher und SD-Karte über SAF gelesen werden können, man kann also die Einschränkungen teilweise umgehen. Allerdings ist ein großes Manko von SAF, daß alle Zugriffe sehr viel Zeit benötigen, das System „lahmt“ selbst beim Zugriff auf den internen Speicher. Derzeit kann man auch trotz SAF bei Android 11 ohne vollen Dateizugriff die Komponistennamen-Alias-Datei nicht lesen, das wird möglicherweise in einer späteren Programmversion gehen.

Seit Version 2.40 können einzelne oder mehrere Audiodateien von einem Datei-Manager aus über „Öffnen mit...“ oder „Teilen“ an das Abspielprogramm übergeben werden. Dieser Mechanismus verwendet SAF und funktioniert auch dann, wenn die Dateien in einer „Cloud“ oder auf einer Server-Freigabe liegen. Allerdings werden derzeit keine Meta-Daten ausgewertet, d.h. es kann nur der Dateiname angezeigt werden. Die derart übergebenen Dateien landen stets in der Auswahl-Ansicht und können von dort aus in die Wiedergabe-Ansicht übernommen werden.

Zu technischen Details über SAF siehe das zugehörige Kapitel in diesem Dokument.

Das Menü (erreichbar über die drei senkrechten Punkte rechts oben) wird je nach Datenbank-Modus angepaßt. So gibt es entweder den Eintrag „Datenbank neu aufbauen“, wenn die Android-Datenbank verwendet wird, oder die Einträge „Albumliste neu laden“ und „Gerät durchsuchen“, wenn eine eigene verwendet wird.

Bei „Gerät durchsuchen“ wird je nach gerade geladener Datenbank entweder der Classical Music Scanner oder der SAF Media Scanner gestartet.

Man beachte, daß es derzeit noch keinen Automatismus gibt, mit dem das Programm, während es läuft, erkennt, wenn sich die Musikdatenbank geändert hat.

Ansichten

Die Äpp bietet neun Ansichten, die über ein Ansicht-Auswahl-Menü umgeschaltet werden (befindet sich links am oberen Bildschirmrand). Dabei sind Komponisten, Genre und Interpreten Filter-Ansichten (die Menüeinträge sind blau), während man von Alben, Werke, Auswahl, Wiedergabelisten und Ordner Musik in die Wiedergabeliste (grüner Menüeintrag) aufnehmen und dort abspielen kann.

Benachrichtigungen

Während ein Stück gespielt wird, werden die wesentlichen Informationen als Benachrichtigung angezeigt. Durch Berühren läßt sich die Wiedergabe steuern oder die Äpp öffnen. In den Einstellungen ist das Aussehen der Benachrichtigungen umschaltbar. Man beachte, daß Android 6 einen Fehler hat, wodurch die Einstellung „System (Medien)“ zu dunklen Benachrichtigungen führt. In Android 7 ist dieser Fehler behoben.

Bluetooth-Autoradio

Das Programm treibt einen großen Aufwand, um die relevanten Informationen über das gerade abgespielte Stück auf dem Autoradio anzuzeigen und über das Autoradio fernbedienbar zu sein. Über die Einstellungen kann konfiguriert werden, welche Informationen angezeigt werden und wie das Programm auf STOP und PAUSE reagieren soll. Man beachte, daß Android 6 einen Fehler hat, wodurch keine Stücknummern („Ich spiele Stück 3 von 8“) übertragen werden können. Mit Android 7 klappt es.

Bluetooth-Autoradios werden erst ab Android 5 unterstützt, da der Programmieraufwand für ältere Versionen zu groß ist.

Quellen

Die Ansichten für Alben, Werke, Auswahl, Wiedergabelisten und Ordner haben einen schwarzen Menüeintrag. Wählt man hier ein Objekt aus, wird es in die Wiedergabe (grüner Menüeintrag) aufgenommen und kann dort abgespielt werden. Das Objekt ersetzt entweder nach Nachfrage die Wiedergabe, oder es wird angehängt.

Man beachte, daß hier Alben, Werke, Dateien usw. gemischt werden, und das Programm rekonstruiert daraus Alben und Werke, wenn sie jeweils vollständig sind.

Filter

Die Filter-Ansichten haben einen blauen Menü-Eintrag. Hier werden ausgewählte Einträge verwendet, um andere Ansichten zu filtern. Dabei werden nicht passende Objekte ausgeblendet. Mit erneuter Auswahl in der Filterliste wird der Filter wieder entfernt, in den anderen Ansichten durch die jeweils unten angezeigte Filterliste.

Die Ansichten Ordner, Wiedergabelisten, Wiedergabe und Auswahl werden nicht gefiltert.

Ein Beispiel: Wählt man das Genre „Barock“ aus, findet man nur noch Barock-Komponisten, Barock-Werke und Alben mit Barock-Musik. Durch Auswahl eines Komponisten, z.B. Johann Sebastian Bach, läßt sich die Suche weiter verfeinern: Man findet jetzt nur noch Genres, die Bach bedient hat, nur noch Bach-Barock-Interpreten und nur noch Barock-Werke und Barock-Alben mit seiner Musik.

Die Wiedergabe und die Auswahl werden nicht gefiltert, d.h. enthält im genannten Beispiel ein Album Musik, die nicht von Bach stammt, wird diese trotzdem angzeigt bzw. abgespielt. Ordner und Wiedergabelisten werden ebenfalls nicht gefiltert.

Ist ein Filter aktiv, werden im Ansicht-Auswahlmenü die Anzahl der gefilterten Einträge angezeigt. So bedeutet Alben (5/75), daß von den 75 Alben derzeit 5 den Filterkriterien entsprechen.

Immer sichtbar

In jeder Ansicht sind rechts oben das Suchfeld und das ...-Menü erreichbar. Im Suchfeld kann eine Textsuche gestartet werden; gibt man etwa „Cello“ ein, bleiben alle Alben, Werke usw. sichtbar, die das Wort „Cello“ im Titel haben. Bei den Komponisten wäre z.B. „Bach“ eine sinnvolle Eingabe, um die Komponistenansicht auf alle Mitglieder dieser Familie zu reduzieren. Mit dem „x“ kann die Suche gelöscht werden; es werden dann wieder alle Objekte angezeigt.

Standardmäßig berücksichtigt die Suche keine Groß-/Kleinschreibung, d.h. eine Suche nach „cello“ findet nicht nur „Violoncello“, sondern auch „Cello“. Dieses Verhalten kann in den Einstellungen (Wiedergabemodi und Filter) umgeschaltet werden.

Mit der gelben runden Schaltfläche rechts unten kommt man stets in die Wiedergabe-Ansicht, es sei denn, man ist schon drin. Dann befinden sich dort stattdessen die Abspielen-, Pause- und Stop- Schalter.

Wird gerade ein Stück abgespielt, befindet sich in jeder Ansicht am unteren Bildschirmrand ein Fortschrittbalken.

Alben-Ansicht

Wählt man ein Album aus, wird es der Auswahl-Ansicht geöffnet und kann vorn dort aus in die Wiedergabe-Liste übernommen werden (vor Version 2.00 kam es direkt in die Wiedergabe-Liste). Über das Kontextmenü (langes Drücken) kann man Alben auch direkt in die Wiedergabeliste übernehmen.

Von jeder anderen Ansicht, bis auf die Ordner, landet man mit „Zurück“ immer wieder bei den Alben. Die Albumansicht kann gefiltert werden nach Komponist, Genre und Interpret (auch in Kombination); es werden dann nur diejenigen Alben angezeigt, die zur Auswahl passen. Die Filter, ggf. unten eingeblendet, können durch Berühren geöffnet und ggf. selektiv entfernt werden. Das Album, das sich gerade in der Auswahl-Liste befindet, ist markiert.

Über die Alben-Ansicht kann das Programm mit der Zurück-Taste verlassen werden. Alternativ und auch in den anderen Ansichten sichtbar gibt es „Programmende“ im ...-Menü.

Langes Berühren des gelben „Wiedergabelisten“-Bedienfeldes (rechts unten) kopiert alle Alben in die Wiedergabeliste, das ist insbesondere zusammen mit der Textsuche hilfreich.

Werke-Ansicht

Die Werke-Ansicht funktioniert ähnlich wie die Alben-Ansicht, als Bilder werden standardmäßig aber die Komponisten verwendet. In den Einstellungen kann man festlegen, daß stattdessen Album- oder Interpretenbilder verwendet werden. Einzelne Werke können in die Auswahl-Liste übernommen werden. Besteht ein Werk aus nur einem Stück (engl. "track"), entspricht die Werke-Ansicht der Ansicht „Titel“ bei herkömmlichen Programmen.

Langes Berühren des gelben „Wiedergabelisten“-Bedienfeldes (rechts unten) kopiert alle Werke in die Wiedergabeliste, das ist insbesondere zusammen mit der Textsuche hilfreich.

Auswahl-Ansicht

Hierhin gelangen die Musikstücke eines ausgewählten Albums oder Werks, und von hier aus können das Album, das Werk oder einzelne Stücke in die Wiedergabeliste übernommen werden. Langes Berühren des gelben „Wiedergabelisten“-Bedienfeldes (rechts unten) kopiert alle Objekte in die Wiedergabeliste. Das Kontextmenmü wird ebenfalls unterstützt.

Wiedergabelisten-Ansicht

Mit Version 1.50 gibt es permanent gespeicherte Wiedergabelisten. Sie werden im privaten Programmspeicher abgelegt und daher bei Programm-Deinstallation automatisch mit gelöscht.

Der Eintrag „Wiedergabeliste sichern...“ im ...-Menü ist nur in der Wiedergabe-Ansicht aktiv. Unter Angabe eines Namens kann die Liste gesichert werden und taucht dann in der Wiedergabelisten-Ansicht auf.

Wählt man eine Wiedergabeliste aus, wird sie wie andere Objekte in die Wiedergabe übernommen und kann auch angehängt werden. Mit langem Druck auf eine Liste kann sie nach Rückfrage gelöscht werden.

Wiedergabelisten speichern Dateipfade. Werden Dateien umbenannt oder gelöscht, wird damit die Wiedergabeliste ganz oder teilweise ungültig.

Wiedergabe-Ansicht

Die Wiedergabe-Ansicht enthält die Stücke, die gerade abgespielt werden können. Das Verhalten ist über die Einstellungen konfigurierbar. In der Wiedergabe-Ansicht gibt es keine Filter, nur die Textsuche. Um die Wiedergabe-Ansicht besser von der Auswahl-Ansicht unterscheiden zu können, wird der Navigationsbereich, der sonst schwarz ist, je nach Farbschema unterschiedlich farblich unterlegt. Das funktioniert natürlich nicht bei Geräten mit festen Bedienelementen.

Seit Programmversion 1.50 wird die Wiedergabe-Ansicht bei jeder Änderung gespeichert und bei Programmstart rekonstruiert. Zwischenzeitlich gelöschte Dateien werden ignoriert.

Ein langer Druck auf einen Listen-Eintrag öffnet das Kontextmenü am oberen Bildschirmrand. Hier kann man detaillierte Datei-Informationen erhalten, die zugehörigen Dateien zum Metadaten-Editor schicken, das Objekt aus der Wiedergabeliste (nicht vom Gerätespeicher!) entfernen oder, seit Version 2.12, es in der Liste hoch oder runter schieben. Man beachte, daß Android alle Menüeinträge nach dem dritten in das Untermenü schiebt, das man über die drei senkrechten Punkte erreicht. Warum auch immer...

Komponisten-Ansicht

Die Komponisten-Ansicht sucht sich die Bilder anhand der Namen, es wird also z.B. nach einer Datei Antonín Dvořák.png oder Luigi Boccherini.jpg gesucht. Auch die mit Akzent o.ä. versehenen Zeichen, Umlaute, Eszett etc. müssen passen. Wenn dieselbe Person mehrmals gefunden wird, unterscheiden sich die Schreibweisen, etwa das deutsche „Tschaikowski“ vom englischen "Tchaikowksy". Lebensalterangaben werden beim Vergleich aber automatisch ausgefiltert (z.B. „Johann Strauss (Sohn) (1825-1899)“, wobei der „(Sohn)“ zum Namen gerechnet wird, um ihn vom Radetzkymarsch-Vater zu unterscheiden). Ggf. könnte man die gleiche Datei mehrmals unter verschiedenem Namen ablegen, um alle Schreibweisen zu berücksichtigen.

Auf Wunsch (siehe Einstellungen) können Komponistennamen auch in der Form „Nachname, Vorname“ angezeigt werden.

Achtung: Komponisten-, Interpreten- und Genrebilder niemals in die Musik-Verzeichnisse legen, sondern beispielsweise nach „Pictures“ o.ä., sonst gibt es Kollisionen mit den Albumbildern!

Genre-Ansicht

Die Genre-Ansicht zeigt alle gefundenen Genres an, wobei für einige davon deutsche Texte und Standard-Icons von der Äpp bereitgestellt werden. Weitere können, wie die Komponisten-Bilder, selbst nachinstalliert werden. Hat man z.B. ein Stück mit dem Genre „Katzenmusik“, so kann man sich ein Katzenbild mit einem Notenschlüssel malen (bevorzugt 512x512 Pixel) und unter dem Namen "katzenmusik.jpg" irgendwo im Verzeichnis "Pictures" ablegen.

Interpreten-Ansicht

Die Interpreten-Ansicht funktioniert wie die Komponisten-Ansicht. Auch hier kann man Bilder hinterlegen, die müßten dann aber ggf. einen Dateinamen haben wie The Misborough Symphony Orchestra, Hermann von Karamalz.jpg.

Seit Version 1.83 werden Interpretenlisten auf Wunsch aufgespalten, wobei als Trenner Semikolon oder Komma möglich sind, letzteres ist etwas fehlerträchtig.

Ordner-Ansicht

Die Ordner-Ansicht zeigt nicht alle Ordner des Geräts an, sondern nur diejenigen, in denen Musik gefunden wurde. Mit der Zurück-Taste gelangt man hier nicht sofort in die Alben-Ansicht, sondern eine Verzeichnisebene höher. Erst wenn man in der obersten Ebene angelangt ist, kommt man durch erneutes Betätigen der Zurück-Taste in die Album-Ansicht. In der Ordner-Ansicht können einzelne Dateien für die Wiedergabe ausgewählt werden oder durch Berühren des Pfad-Elements am unteren Bildschirmrand auch alle Dateien eines Ordners. Die Ordner-Ansicht sucht nach Dateien "albumart.jpg" oder "folder.jpg" innerhalb des Ordners und blendet diese in das Ordnersysmbol ein.

Ab Android 11 können ohne vollen Dateizugriff die Ordnerbilder nicht angezeigt werden, und zwar genau dann nicht, wenn Android sie als Albumbilder erkannt hat. Spaßeshalber können Sie in die Verzeichnisse ein Bild "albumart.jpg" legen und eines "odner.jpg", dann kann letzteres angezeigt werden, landet aber auch unbeabsichtigt in Ihrer Foto-Datenbank, d.h. wird etwa bei Google Photos sichtbar. Diese Einschränkungen gelten nicht für den SAF-Modus.

Wiedergabe

Normalerweise wird die Wiedergabeliste automatisch bis zum letzten Stück durchgespielt. Dann hält die Wiedergabe an. In den Einstellungen (Wiedergabemodi und Filter, Nächstes Stück) kann man aber festlegen, daß die Wiedergabe bereits nach einem Stück (d.h. einer Datei) oder nach einem (ggf. mehrsätzigen) Werk anhalten soll. Außerdem kann man über den Menüeintrag Wiederholen das automatische Wiederholen ein- und ausschalten. Das endlose Wiederholen eines Werks bzw. Stücks erreicht man mit der entsprechenden Kombination von Anhalten nach... in den Einstellungen und Wiederholen im Menü.

Seit Version 2.20 gibt es eine automatische Lesezeichenverwaltung. Für jedes Stück wird bei Pause, Stop oder Programmende die letzte Abspielposition abgespeichert. Stücke mit Lesezeichen werden in der Wiedergabeliste mit einem führenden Sternchen gekennzeichnet und auf Wunsch bei Betätigen der grünen PLAY-Schaltfläche sofort angesteuert; dabei werden stets die letzten fünf Sekunden wiederholt. Wurde ein Stück bis zum Ende gespielt, wird ein eventuell vorhandenes Lesezeichen automatisch gelöscht, ebenso wenn es in den ersten zehn Sekunden abgebrochen wurde. Die Anzahl der Lesezeichen ist auf hundert begrenzt, ggf. wird das älteste gelöscht.

Metadaten

Natürlich kann das Programm nur soviel anzeigen, wie in den Meta-Informationen ("tags") der Dateien steht. Hier muß man ggf. nachhelfen, etwa mit dem Classical Music Tagger oder alternativ mit Kid3, Qoobar, iTunes oder ähnlichen Programmen, die alle mit klassischer Musik umgehen können. Die Äpp stützt sich außer auf die üblichen Angaben (Album, Titelnummer, CD-Nummer, Titel, Interpret) im wesentlichen auf Komponisten ("composer"), Werk ("group"), zeigt aber auch Jahr ("year" bzw. "date") und Dirigenten ("conductor") an, falls vorhanden.

Beim Hinzufügen von Meta-Informationen kann man entweder dem Standard folgen oder die proprietären iTunes-Felder verwenden.

Standardfelder für mp4-Dateien sind:
- ©nam für den Titel bzw. Satzbezeichnung, inklusive Satznummer, z.B. „I. Presto“
- ©grp für die Werkbezeichnung, z.B. „Sinfonie Nr. 8 h-moll, op. 42“

Standardfelder für mp3-Dateien sind:
- TIT2 für den Titel bzw. Satzbezeichnung, inklusive Satznummer
- TIT1 für die Werkbezeichnung

Das problematische Verhalten von iTunes, insbesondere bei mp3-Dateien, wird im folgenden Abschnitt erläutert.

Metadaten in iTunes

Werk und Satz verwenden AUS:

- MP3: "Gruppierung" -> GRP1 (Unfug, muß TIT1 sein)
- MP3: "Titel" -> TIT2

- MP4: "Gruppierung" -> ©grp
- MP4: "Titel" -> ©nam

Werk und Satz verwenden EIN:

- MP3: "Werk" -> TIT1 (Unfug, muß neues sein)
- MP3: "Satzname" -> MVNM
- MP3: "Satznummer/Anzahl Sätze" -> MVIN

- MP4: "Werk" -> ©wrk
- MP4: "Satzname" -> ©mvn
- MP4: "Satznummer" -> ©mvi
- MP4: "Anzahl Sätze" -> ©mvc
- MP4: shwm := 1

Werk und Satz verwenden EIN->AUS:

- MP3: keine Dateiänderung (Unfug, entweder Flag entfernen oder Satz-„Tags“ entfernen)

- MP4: shwm entfernen

Metadaten in diesem Programm

Wenn Satzbezeichung existiert (©mvn bzw. MVNM):
- Lies Satznummer (©mvi bzw. MVIN), stelle sie vor Satzbezeichnung und verwende dies als Titel
- Lies Werk (©wrk)
- Wenn Werk nicht existiert oder Datei nicht .mp4 ist, lies "©grp" bzw. TIT1
- Wenn diese auch nicht existieren, lies GRP1
Andernfalls (also Satzbezeichnung fehlt):
- Verwende Titel wie üblich (©nam bzw. TIT2)
- Lies "©grp" bzw. TIT1
- Wenn diese nicht existieren, lies GRP1

Dateien vom Typ .flac oder .ogg können sogenannte „Vorbis“-Kommentare enthalten:
- Die Werkbezeichnung steht in WORK.
- Die Satzbezeichnung, mit der Nummer des Satzes, steht in TITLE.
Außerdem können Apple-spezifischen Metadaten abgelegt sein. Hier orientiert man sich am besten am populären Programm MusicBrainz Picard:
- Die Satzbezeichnung steht in MOVEMENTNAME.
- Die Satznummer steht in MOVEMENT.
- Die Anzahl der Sätze steht in MOVEMENTTOTAL.

Ordner und Album-Titelbilder

Sinnvollerweise sollte im Fall von CDs für jedes „Album“ ein Verzeichnis vorhanden sein, in dem alle zugehörigen Dateien liegen sowie möglichst ein Bild namens "albumart.jpg" oder "folder.jpg", damit das Android-System zumindest die Alben verwalten kann. Heißt die Bilddatei z.B. "vorderseite.jpg", taucht sie auch in der Fotogalerie auf, was unerwünscht ist. Achtung: Zumindest auf Geräten von Samsung oder LG werden alle Dateien außer "albumart.jpg" ignoriert (warum?).

Fehlerhafte Metadaten im Android-System

Dieser Abschnitt ist irrelevant, wenn der Classical Music Scanner oder der SAF Media Scanner verwendet wird.

Das Programm holt sich zunächst die grundlegenden Metadaten vom Android-System, für alle Alben und alle Musikdateien, die den Alben zugeordnet sind. Wegen der vielen Unzulänglichkeiten und seit Urzeiten im System vorhanden und nicht behobenen Fehler werden im zweiten Schritt sämtliche Musikdateien gelesen, um die fehlenden Informationen zu ergänzen und falsche zu ersetzen. Das kann je nach Gerät und Anzahl der Dateien lange dauern. Während dieser Zeit kann man die Albenliste anschauen, weil die entsprechenden Informationen schon vorhanden sind (wenn auch teilweise fehlerhaft, etwa bei Jahresangaben und Album-Interpreten!), aber mehr ist noch nicht möglich. Damit sich diese Wartezeit auf ein Minimum verkürzt, werden alle gesammelten Informationen in eine private Datenbank geschrieben, die bei folgenden Starts verwendet wird. Das geht auch auf langsamen Geräten sehr schnell.

Wird nun eine Datei auf dem Gerät geändert, gelöscht oder hinzugefügt, sollte Android dies automatisch erkennen, und die Android-eigene Datenbank wird automatisch aktualisiert. Wird der Opus 1 Music Player neu gestartet (ggf. muß man ihn über die Liste der letzten Programme richtig beenden, damit dies geschieht), erkennt er, daß die Android-Datenbank geändert wurde, und baut seine eigene Datenbank neu auf. Wenn der Automatismus nicht funktionieren sollte, kann man dies über das Menü erzwingen.

Ist dagegen die Android-Datenbank unvollständig oder falsch, so kann man sie „mit Gewalt“ neu aufbauen. Die einfachste Methode: Den Classical Music Tagger starten, dort im Menü Android-Medienspeicher auswählen, im Systemdialog auf Speicher und dann auf DATEN LÖSCHEN. Danach das Gerät neustarten und zehn Minuten warten.

Tipp: Der Unpopular Music Player verwendet in der Standardeinstellung nur die Angaben des Systems. Zeigen sich hier auch falsche Metadaten, ist die Android-Datenbank inkonsistent und sollte zurückgesetzt werden.

Das Verzeichnis "Audiobooks" ab Android 10: Die entsprechenden Audio-Dateien sind nicht als "Musik", sondern als "Audiobuch" markiert. Dort legt das System zwar keine Album-Einträge in der internen Datenbank an und damit auch keine Albumbilder, jedoch gibt es (quasi ungültige) Album-IDs. Das Konzept ist unsinnig, weil es zu Audiodatei-"Waisen" führt.
Das Programm versucht seit Version 2.6.1 die zugehörigen Alben zu rekonstruieren, hat jedoch keine Möglichkeit, Albumbilder zu ermitteln. Deshalb wird davon abgeraten, dieses Verzeichnis zu verwenden.

Was zur Henkerin ist SAF?

Laut Google sollten Programme für alle Metadaten und Zugriffe auf Fotos, Audio- und Video-Dateien die Android-Mediendatenbank verwenden. Wenn nun diese Datenbank fehlerhaft oder unzureichend ist, etwa nur Popmusik und nur im mp3-Format unterstützt, benötigt man direkten Lesezugriff auf die entsprechenden Dateien.

Die Standard-Methode für Dateizugriffe ist die File-Klasse in Java und entsprechende Funktionen in „native code“, also in C oder C++. Damit lassen sich Verzeichnisse durchsuchen und Dateien lesen, aber auch Verzeichnisse oder Dateien erzeugen bzw. verändern. Das funktioniert auf gleiche Art sowohl in Android als auch auf herkömmlichen Rechnern mit Linux, Unix oder macOS. Der Classical Music Scanner arbeitet nach diesem Prinzip, und zwar hauptsächlich in „native code“ für maximale Ausführungsgeschwindigkeit.

Damit nicht jedes Programm unkontrolliert auf alle Verzeichnisse und Dateien auf dem Gerät zugreifen kann, gibt es entsprechende, bewährte Mechanismen im Linux-Kernel, der auch von Android verwendet wird. Dies war jedoch Google nicht genug, und deshalb hat Google den Standard-Dateizugriff auf bestimmte Verzeichnisse je nach Android-Version immer weiter eingeschränkt, aber andererseits das „Storage Access Framework“ (SAF) erfunden, mit dem man dann doch wieder auf einige Verzeichnisse lesend oder schreibend zugreifen kann.

Eine Besonderheit von SAF ist, daß der Anwender vom Programm per grafischer Dateiauswahl aufgefordert wird, das freizugebende Verzeichnis auszuwählen, was der Anwender auch verweigern kann. Das Programm hat dann einmalig oder dauerhaft Zugriff, d.h. ohne daß der Anwender nochmals befragt werden muß.

Eine große Einschränkung von SAF ist, daß keine Standard-Funktionen von Java oder C bzw. C++ funktionieren und man stattdessen die von Google erfundene Klasse DocumentFile verwenden muß. Diese gibt es nur in Java, nicht in C oder C++. Hat man eine Datei in Java geöffnet, kann man sie, mit Einschränkungen, dann auch in C oder C++ lesen und schreiben, aber man kann z.B. in C keine Verzeichnisse öffnen, geschweige denn erzeugen, noch Dateien erzeugen, löschen usw.. Ferner hat Google „vergessen“, eine entsprechende Java-Klasse RandomAccessDocumentFile zur Verfügung zu stellen, was auch das Umschreiben existierenden Java-Codes unnötig erschwert.

Ferner ist SAF extrem langsam, weswegen, wenn möglich, im Zweifelsfall ein „normaler“ Dateizugriff vorzuziehen ist. Bei welchen Verzeichnissen ist solch ein „normaler“ Zugriff möglich?
Die jeweils privaten Verzeichnisse jedes Programms, eines im internen Speicher und eines auf der SD-Karte, wenn vorhanden, sind uneingeschränkt nutzbar. SAF wird nicht benötigt.
Verzeichnisse wie „Music“ oder „Photos“ im internen Speicher sind bis Android 10 lesend und schreibend zugreifbar. Mit Android 11 kann man dort nur noch „Medien-Dateien“ lesen, also zum Beispiel keine Texte oder Datenbank-Dateien. Will man mehr, benötigt man SAF oder den „vollen Dateizugriff“, der aber wegen der restriktiven Play-Store-Vorgaben nur für wenige Programme zugelassen ist, und dazu gehören keine Musik-Abspielprogramme.
Liegt dagegen „Music“ o.ä. auf der SD-Karte, so kann man dort bis Android 10 lesend zugreifen, jedoch nicht schreibend. Android 11 ist hingegen genauso restriktiv wie beim internen Speicher.
Mit Android 9 und 10 kann auf USB-Speicher (über USB-OTG-Adapterkabel angeschlossen) lesend zugegriffen werden. Ältere Android-Versionen erlauben hier noch keinen „normalen“ Dateizugriff, und man muß SAF verwenden. Für Schreibzugriffe ist in jedem Fall SAF erforderlich.

Zugriffe über SAF werden von einem „SAF Document Provider“ bearbeitet. Diese sind sind in Android integriert oder können nachinstalliert werden können.
Einige „Document Provider“ unterstützen „Open Document Tree“ bzw. „FLAG_SUPPORTS_IS_CHILD“, andere nicht. Nur erstere sind im SAF-Auswahldialog sichtbar, denn diese Funktionalität wird vom Classical Music Tagger und SAF Media Scanner benötigt, um Unterverzeichnisse zu durchsuchen. Zugriffe auf internen Speicher, SD-Karte oder USB-Speicher sind aber stets problemlos.
Einige „Document Provider“ ermöglichen „random access“ bei Dateien, d.h. die Datei ist „seekable“, was bedeutet, daß man wie bei „normalen“ Dateizugriffen beliebige Stellen innerhalb der Datei lesen oder beschreiben kann, d.h. man muß z.B. nicht immer die gesamte Datei von vorn nach hinten lesen. Auch hier sind Zugriffe auf internen Speicher, SD-Karte oder USB-Speicher problemlos.
Der „Android SMB Client“ ermöglicht Lese- und Schreibzugriffe auf den Netzwerkspeicher (wenn auch etwas instabil...). „Open Document Tree“ wird unterstützt, jedoch kein „random acccess“.
Google Drive unterstützt kein „Open Document Tree“.
Gerüchteweise soll der NextCloud Client „Open Document Tree“ unterstützen.

Fazit: Der Player benötigt SAF, um auf älteren Android-Versionen (vor 9) Musik vom USB-Speicher abzuspielen. Außerdem wird SAF für alle Arten von Netzwerkspeichern benötigt, was aber nur funktioniert, wenn der zuständige „Document Provider“ fähig genug ist. Und schließlich können einige Einschränkungen von Android 11 mittels SAF umgangen werden, wenn man keinen vollen Dateizugriff gewähren kann oder darf.


Kritik

Kommentare, Kritik, Verbesserungsvorschläge bitte an:

Kontaktiere Suppen-Ort