Noch ein SD-Karten Tool

Hallo Community,

ich bin mittlerweile großer Fan vom TonUINO Projekt und habe soeben meine beiden Boxen fertiggestellt. Grundsätzlich ist das Projekt ja sehr einfach umzusetzen, allerdings habe ich keine für mich zufriedenstellende Lösung für die Verwaltung der SD-Karten gefunden.
Also habe ich mich selber hingesetzt und schnell etwas gebastelt:

Das Tool ist vom Aufbau recht ähnlich wie die Tonuino-Toolbox ergänzt um Features die mir gefehlt haben oder die ich anders haben wollte. Das Programm ist in Java-Swing entwickelt und daher theoretisch überall lauffähig. Allerdings mit ein paar Einschränkungen (siehe unten).
Folgende Funktionen habe ich umgesetzt:

  • Karten können sowohl direkt als auch „offline“ in einem Ordner im Filesystem verwaltet werden
  • Analyse des Karten-Inhalt mit Vorschlägen zu Änderungen
  • Erstellen neuer Ordner auf der Karte
  • Hinzufügen von Files
  • Anzeige der ID-Tags der Files mit der Möglichkeit zum Editieren
  • Abspielen der Files
  • Neu-Sortierung der Files eines Ordners
  • Normalisieren aller Files eines Ordners (Windows only, läuft per Shell-Aufruf, also ev. portierbar)
  • Generierung eines Inhaltsverzeichnisses der Karte

Was dem Programm noch fehlt:

  • Code-Überarbeitung (es musste schnell gehen)
  • Bessere Fehlerbehandlung

Das Projekt befindet sich auf Github und darf natürlich frei verwendet werden: GitHub - coschtl/tonuino-cardadmin

Für Windows-User gibt es eine exe (ein installiertes Java 8 wird benötigt): https://github.com/coschtl/tonuino-cardadmin/blob/main/TonuinoCardAdmin.exe

Folgende Konfigurationsmöglichkeiten gibt es (bitte ein File configuration.properties im Ordner der exe ablegen):

# normalizing program
# if not set, no normalizing can be done
mp3.normalizing.commandline=C:\\Program Files (x86)\\MP3Gain\\mp3gain.exe
mp3.normalizing.options = /a /k

# alternative card-roots
# i.e. for using a local folder as card-backup
alternative.card.root = D:/media/Tonuino/SD-Karte
 
# default content root
default.content.root = D:/media/Tonuino/Content

# index file location
card-index.location = D:/media/Tonuino/SD-Karten-Index

Viel Spaß!

2 „Gefällt mir“

Bin gerade dabei eine Karte zu befüllen und wollte dein Tool gleich mal testen.
Das mit dem configuration.properties habe ich aber noch nicht so ganz begriffen.
Also ich habe eine entsprechende Datei erstellt und die Zeilen von dir kopiert und eingefügt.

Soweit klar. Da muss der Pfad für Mp3Gain hin
Alles danach ist mir irgendwie nicht so ganz klar. Was muss ich dann wie anpassen?

Hi,

@coschtl:
Ich habe eher eine beiläufige Frage zu deinem Screenshot:
Heißen die finalen Dateien bei dir dann nur „001.mp3“ usw.?
Da kann man doch den Titel noch hinten dran hängen, oder?

Ich habe den Nutzen dieser SD-Karten Tools noch nicht ganz durchdrungen bzw. mich auch noch nicht viel damit beschäftigt, weil es bei mir noch nicht das große Mühsal war.
Bei mir heißen die Musik-Dateien auf dem PC meist „## - Titel“.
Für den Tonuino muss ich also vorn noch das numerische Muster „###“ ergänzen.
Dann heißen die Dateien auf der SD-Karte dann „### - Titel“.
Das dauert für einzelne Alben sicherlich einige Minuten, aber das mache ich auch nicht ständig.
Für das Dateien umbenennen gibt es afaik schon einige Freeware Programme.
Von den restlichen Features liest sich für mich keines als „must have“, aber vllt. übersehe ich auch etwas wesentliches. Ich will dein Programm auf keinen Fall schlecht reden - ich möchte nur etwas besser verstehen, wozu diese Programme hauptsächlich hilfreich sind.

Glückssache ob das klappt. Deshalb für ein Programm für alle eher nicht geeignet.

Ah ok. Das hatte ich nicht auf dem Schirm. Dann habe ich bisher wohl Glück gehabt mit meinen DFPlayern.

Vielleicht wäre es dennoch ein optionales Feature in dem Programm für Nutzer, die wissen, dass ihr DFPlayer das verarbeitet!?
Zumindest möchte ich den Titel im Dateinamen nicht missen - auch wenn der Windows Explorer den Titel als Spalte (ebenso wie in dem Programm) auch mit anzeigen kann.

Die erste Zeile ist die Executable des Programms zur Lautstärke -Normalisierung.
Die nächste Zeile gibt die Argumente/Optionen an die obiges Programm benötigt.

Als alternative.card.root definierst du einen Ordner den du als Spiegel der SD-Karte verwenden willst (optional). Ich mache es so, dass ich alles auf der Festplatte habe und dann nur noch auf die Karte(n) kopiere.

default.content.root gibt den Basis-Ordner an, in dem die Auswahl neuer Dateien starten soll (optional).

card-index.location ist der Ordner in den die Index-Files geschrieben werden.

1 „Gefällt mir“

Ich hätte aus der Beschreibung des Projekts herausgelesen, dass die Dateien eben nur xxx.mp3 heißen dürfen. Daher der ganze Aufwand.

Wenn das bei einigen Playern nicht nötig sein sollte, reduziert sich der Nutzen natürlich darauf, dass man ein Tool hat und nicht mehrere verwenden muss (ID-Tags, rename, normalisieren).
Und natürlich die Index-Generierung die mir persönlich wichtig ist, weil ich damit einfach meine Karten beschriften kann.

1 „Gefällt mir“

Die dreistellige Nummer am Anfang muss immer stehen. Ich hatte es bisher aber noch nicht erlebt, dass meine Player mit dem Text im Nachgang der Nummer Probleme haben (aber es gibt Player die das nicht mögen). Sonderzeichen / Umlaute und so weiter sollten aber vermieden werden!

Noch ein Hinweis:
Beim Verschieben funktioniert auch die rechete Maustaste ( „ganz nach oben/unten“).

Moin @coschtl, das Tool klingt gut! Ich würde es gerne mal testen. Leider funktioniert es bei mir nicht. Im Programm werden keine Dateien angezeigt und die Schaltflächen sind ausgegraut oder haben keinen Effekt.


Ich nutze Win10. Es sind mp3 Dateien in den Ordnern. Java ist installiert. Mit und ohne Config-Datei macht keinen Unterschied. Irgendwelche Ideen, woran es liegen könnte?

Hi @MoBo,

das ist wohl dem fehlenden Error-Handling geschuldet. Ich habe eine neue Version gemacht, die ein wenig robuster sein sollte was die Konfiguration betrifft.
Außerdem kannst du nun das Konfigurationsfile (du kannst gerne https://github.com/coschtl/tonuino-cardadmin/blob/main/card-admin/src/main/resources/configuration.properties verwenden und anpassen) in den selben Ordner wie die exe legen.

Danke für die schnelle Korrektur! Jetzt kann ich zumindest neue Ordner erstellen. Dateien hinzufügen öffnet ein Auswahlmenü, aber wenn ich eine mp3 auswähle, sehe ich keinen Effekt. sie wird auf jeden Fall nicht dem aktuellen Ordner zugefügt. Bei Analyse und Index generieren habe ich noch keinen Effekt gesehen, aber die Tasten sind nicht mehr ausgegraut.
Das klingt ja alles sehr praktisch, aber ich denke ich bleibe erst einmal bei meiner manuellen Bearbeitung.

Hallo @coschtl,

danke für das Tool. Nachdem ich Linuxnutzer bin, habe ich zunächst das Programm von @raphael ausprobiert (tonuino-toolbox). Dieses kann leider keine Offlineverwaltung der SD-Karte (oder ich habe es nicht gefunden). Und fürs Normalisieren gibt es auch (noch?) keine Integration. Daher habe ich Deine Variante ausprobiert.

Als Linuxnutzer musste ich erst Eclipse installieren (vermutlich geht auch jede andere IDE mit Maven), da Du ja auch weitere Bibliotheken eingebunden hast. Damit konnte ich es jedenfalls bauen und laufen lassen. Was nicht funktioniert: die configuration.properties wird nicht (korrekt?) eingelesen. Wenn ich aber beim Bauen des JARs die Datei richtig erzeugt ablege, werden die Optionen (teilweise?) so schon im JAR mit eingebunden. Jedenfalls kann ich dann mittels mp3gain normalisieren. Der korrekte Pfad für die Dateiverwaltung wird aber nicht geöffnet, da muss ich händisch hin navigieren ("/home/NUTZER/tonUINO/sd"). Vielleicht hast Du eine Idee, woran das liegen könnte?

Außerdem fände ich die Option praktisch, die Titelreihenfolge einfach zu „sortieren“ über Klick auf die Spaltenköpfe, also bspw. alphabetisch auf- oder absteigend nach Titel oder auch auf- oder absteigend nach Track-Nummer. Das händische Durchsortieren der Titel ist relativ aufwändig :slight_smile:

Danke auch von meiner Seite für das vielversprechende Tool.
Leider mache ich unter Win10 die gleichen Erfahrungen wie MoBo. Irgendeine Idee, woran es liegen könnte?
LG

Hi @matthiash,
sorry für die späte Antwort. Entweder hat die Mail-Verständigung des Forums nicht funktioniert, oder ich habe deinen Beitrag übersehen.

Zur Konfiguration: diese wird immer nur als gesamtes gelesen, ein Mischen erfolgt nicht. Folgende Reihenfolge verwende ich bei der Suche:

  1. Der vollständige Filename (inkl. Pfad) steht in der Environment-Variable „cardAdminConfigFile“

  2. Es gibt ein System-Property „launch4j.exedir“ das auf einen Ordner zeigt in dem es die Datei „configuration.properties“ gibt

  3. Das „configuration.properties“ wird vom Classloader gefunden (ist also im Code)

Je nachdem was bei dir zutrifft, musst du das File dort editieren.

Bezüglich Sortierung:
Das funktioniert nun genauso wie du dir das wünscht: Per Doppelklick auf den Spalten-Kopf

1 „Gefällt mir“

Hi @Hansj,
ich habe eine neue Version bereitgestellt, die Fehler beim mp3-Import anzeigt. Kannst du bitte mit dieser testen?

Hallo
habe gerade die neue Version heruntergeladen und getestet. Leider dasselbe Ergebnis. Direktories werden angelegt, Dateien können zum Öffenen/Kopeiern ausgewählt werden, aber danach passiert nichts. Die neuen Directories sind leer und es gibt auch keinerlei Meldungen.
LG

Blöde Frage: du hast im Dialog aber schon eines oder mehrere MP3s markiert?

Ja habe ich und die MP3s werden von anderen Lösungen einwandfrei auf SD übertragen und spielen auf dem TonUino.

Komisch. Ich kann weder unter Windows noch unter Linux Probleme nachstellen. Sollte es ev. an den MP3s liegen? Probier doch bitte einmal die Hörbücher von Homeschooling mit der Bunten Bande - Aktion Mensch

Zwecks Fehlersuche könntest du probieren den Inhalt von tonuino-cardadmin/bin/windows/shell at main · coschtl/tonuino-cardadmin · GitHub in einen Ordner zu speichern und dann an der Commandline (nicht per Doppelklick) das Skript startCardAdmin.cmd aufrufen. Das Skript setzt eine gesetzte Umgebungsvariable java_home voraus (alternativ kannst du den Pfad zu deiner Java-Installation auch in Zeile 6 eintragen).

Ev. sieht man dann beim Import einen Stacktrace der bei der Fehlersuche hilft.