Hi zusammen,
Ich benutze einen DFPlayer (Arduino Zusatz) zum Abspielen von
Nachrichten im MP3 Format. Maßgeblich für die Anwahl der verschiedenen
Mp3 Nachrichten ist anscheinend nicht der Name, auch nicht das Datum.
Sondern die Reihenfolge wie die MP3 Nachrichten auf die SD Karte
transferiert wurden. Wie geht sowas?
Beispiel. es existieren 3 Mp3-Songs ( halligalli_01.mp3;
halligalli_02.mp3 und halligalli_03.mp3.
Wenn man nun als erstes halligall_03.mp3 auf die Karte ladet un dann die
restlichen 2.
Dann passiert am DFPlayer folgendes.
Wenn man den Command "myDFPlayer.play(1)" absetzt dann wird
Halligalli_03.mp3 abgespielt.
Beim Aufruf "myDFPlayer.play(3)" wird halligalli_02.mp3 abgespielt.
Wie geht da der DFPlayer vor? das Datum und der Name als
Sortier-Kriterium kann es nicht sein.
Hat jemand einen Tipp, ich möchte das eigentlich nur verstehen. – Danke.
Player vor dem Herrn schrieb:> Sondern die Reihenfolge wie die MP3 Nachrichten auf die SD Karte> transferiert wurden. Wie geht sowas?
In dieser Reihenfolge werden die Dateieinträge in die FAT geschrieben.
Und genauso auch wieder eingelesen.
Wenn der Player also nichts sortiert, ist es genau das erwartete
Verhalten.
Kenne Deinen genauen Typ nicht aber ich musste bei einem Modul das
genannt wurde 2 Dinge machen damit die Reihenfolge stimmt:
- MP3 mussten auf der SD in einen "mp3" Ordner
- Name muss 4-stellige Zahl und dann beliebiger Text + .mp3 sein z.B.
0002-mysound.mp3 0010-audio.mp3 ...
Hallo Player vor dem Herrn,
manche Player verwenden einen der 3 Zeitstempel für die Reihenfolge.
In der Command Shell von Windows kann man sich die Zeiten ansehen mit:
dir *.mp3 /tc
dir *.mp3 /ta
dir *.mp3 /tw
Vielleicht geht die Reihenfolge daraus hervor.
Gruß,
WIRO
Rufus Τ. F. schrieb:> FAT hat nur einen.
?
Eigentlich hat auch FAT drei. Wobei vom letzten Zugriff nur das Datum
gespeichert wird und die letzte Änderung nur 2s Auflösung hat
(Erstellung 10ms Auflösung).
Player vor dem Herrn schrieb:> Hi zusammen,>> Ich benutze einen DFPlayer (Arduino Zusatz) zum Abspielen von> Nachrichten im MP3 Format. Maßgeblich für die Anwahl der verschiedenen> Mp3 Nachrichten ist anscheinend nicht der Name, auch nicht das Datum.> Sondern die Reihenfolge wie die MP3 Nachrichten auf die SD Karte> transferiert wurden. Wie geht sowas?
Sowas geht besch...eiden. Dahinter steht die (für den Alltagsanwender
absolut nichtsnutzige) Idee, das Zeug in der Reihenfolge abzuspielen,
wie es auf das Medium drauf gekommen ist.
Dagegen gibts Progrämmelchen, die die Dateien auf der Karte/dem Stick
(um)sortieren (nur zum Beispiel, willkürlich, eine der ersten
Google-Treffer):
https://waidner-itsolutions.de/wordpress/2011/12/21/audiosorter-dateien-auf-dem-usb-stick-sortieren/
... sollte natürlich auch mit Speicherkarte funktionieren.
Wenn das der Player ist kann man laut PDF Beschreibung auch spezifische
Tracks anwählen wenn sie richtig benamst wurden:
https://github.com/DFRobot/DFRobotDFPlayerMini/
müssen wohl 0001.mp3, 0002.mp3 usw heissen dann kann man die per Nummer
auswählen.
Hatte auch mal so einen MP3 Player.
wieso wird dieses Verhalten als Problem gesehen?
Das ist für mich genau das erwartete Verhalten.
Denn so kann man die Reihenfolge der Songs in einer Playlist beliebig
sortieren und dann auf den Player laden. Der spielt sie dann genau in
dieser Reihenfolge ab.
Ich habe immer "Shuffle" gemacht damit ich beim Radeln möglichst
unterschiedliche Musik zu hören bekam.
Der nächste MP3 Player hat dann plötzlich alles alphabetisch abgespielt,
das war vielleicht ein Graus...
Gruß, Martin
Martin P schrieb:> Denn so kann man die Reihenfolge der Songs in einer Playlist beliebig> sortieren und dann auf den Player laden. Der spielt sie dann genau in> dieser Reihenfolge ab.
Und wie schaffst du es dem FAT-Treiber deines Betriebssystems
beizubringen, die Songs in genau dieser Reihenfolge abzulegen? Nur weil
du die Dateien alle nacheinander da drauf kopierst, sind die noch lange
nicht in eben dieser Reihenfolge im Verzeichnis-Index.
Martin P schrieb:> Ich habe immer "Shuffle" gemacht damit ich beim Radeln möglichst> unterschiedliche Musik zu hören bekam.
Solche Leute hab ich noch nie verstanden ;-)
Martin P schrieb:> Der nächste MP3 Player hat dann plötzlich alles alphabetisch abgespielt,> das war vielleicht ein Graus...
Da kann man sie dann durchnummerieren.
Am Besten ist es natürlich, wenn der Player die ID3-Tags ausliest um die
Reihenfolge innerhalb des Albums zu bestimmen. Playlisten kann man ja
als m3u-Datei ablegen.
so ein ding hatte ich früher auch mal.
Ich hatte mir ein perl-script geschrieben, was die Dateien in der
Reihenfolge einer playlist-Datei auf die Karte kopiert, damit der player
die richtige Reihenfolge hat.
Niklas G. schrieb:> Und wie schaffst du es dem FAT-Treiber deines Betriebssystems> beizubringen, die Songs in genau dieser Reihenfolge abzulegen? Nur weil> du die Dateien alle nacheinander da drauf kopierst, sind die noch lange> nicht in eben dieser Reihenfolge im Verzeichnis-Index.
Ich kenne das Betriebssystem des Players nicht, war ein Billigteil. Aber
er hat die Songs genau in der Reihenfolge abgespielt in der sie
draufkopiert wurden.
Da gab es mal ein MP3-Programm namens Musicmatch, das hatte eine Auto-DJ
Funktion. Damit konnte man eine zufällige Playlist aus den vorhandenen
Songs erstellen und den ganzen Abend Party machen. Der hat die Playlist
auch so auf den Player exportiert. Leider wurde Musicmatch eingestellt
aber kein anderes Programm hatte eine vergleichbare Funktion.
Gruß, Martin
Tek schrieb:> müssen wohl 0001.mp3, 0002.mp3 usw heissen dann kann man die per Nummer> auswählen.
Eben nicht! wenn 002.mp3 als erstes auf die Karte geschrieben wird, dann
hat diese mp3 Datei den Index "1" und kann nur so (ohne den Namen)
aktiviert werden: "myDFPlayer.play(1)". Dasselbe gilt auch dann, wenn
die erste Datei zufällig "BlaBla.mp3" heißt.
Es wird wohl so sein, dass es mit dem Eintrag in die FAT32 Tabelle zu
tun hat.
Für uns funktioniert das zwar, ist aber umständlich und läuft einer
Strukturierung zuwider.
Irgendwie ist es auch nicht verständlich, weil wenn man in der Lage ist,
ein File-System zu implementieren, dann kann es doch nicht allzu schwer
sein, eine vernünftige DIR Verwaltung hinzubekommen - oder?
Martin P schrieb:> Aber> er hat die Songs genau in der Reihenfolge abgespielt in der sie> draufkopiert wurden.
Pures Glück. Das OS des PC hätte sie auch in einer beliebigen anderen
Folge ablegen können. Wenn du z.B. eine Datei gelöscht und stattdessen
eine andere draufkopiert hättest, wäre die vermutlich an die Stelle der
alten Datei getreten, nicht ans Ende.
Martin P schrieb:> Leider wurde Musicmatch eingestellt> aber kein anderes Programm hatte eine vergleichbare Funktion.
Geht es explizit darum eine bestimmte zufällige Folge zu speichern? Die
meisten Player können doch "Shuffle"...
Player vor dem Herrn schrieb:> dann kann es doch nicht allzu schwer> sein, eine vernünftige DIR Verwaltung hinzubekommen - oder?
Wahrscheinlich haben diese Player zu wenig Speicher, um alle
FAT-Einträge einzulesen und dann zu sortieren.
Niklas G. schrieb:> Das OS des PC hätte sie auch in einer beliebigen anderen Folge ablegen> können. Wenn du z.B. eine Datei gelöscht und stattdessen eine andere> draufkopiert hättest, wäre die vermutlich an die Stelle der alten Datei> getreten, nicht ans Ende.
Das ist korrekt. Wenn man aber eine leere SD nimmt, dann stimmt die
Reihenfolge mit der Chronologie des Draufkopierens überein. Dasselbe
gilt für leere Ordner.
Derek Manns schrieb:> - MP3 mussten auf der SD in einen "mp3" Ordner> - Name muss 4-stellige Zahl und dann beliebiger Text + .mp3 sein z.B.> 0002-mysound.mp3 0010-audio.mp3 ...
Das stimmt nicht ganz für den DFPlayer, jedenfalls ab FW-Version 0005.
Hier kann man aber zweistellige Ordner 01, 02 usw. anlegen, in welche
man dann die MP3-Dateien mit nnnn-beliebigername.mp3 ablegen kann. Dann
kann man beim Abspielen sowohl den numerischen Ordner als auch den
numerischen Dateinamen angeben und der DFPlayer spielt dann gezielt
diesen Track ab - unabhängig von der Chronilogie des Draufkopierens.
Jedenfalls konnte ich das bei der Anbindung des DFPlayers an die
WordClock mit WS2812 genau so nachvollziehen. Und das funktioniert
auch.
Frank M. schrieb:> dann stimmt die> Reihenfolge mit der Chronologie des Draufkopierens überein
Dann muss das drauf-kopierende Programm die Dateien aber auch in
alphabetischer Reihenfolge auf dem Stick anlegen. Im Zweifelsfall müsste
man schon jede Datei einzeln kopieren, um das zu erreichen.
Frank M. schrieb:> Hier kann man aber zweistellige Ordner 01, 02 usw. anlegen, in welche> man dann die MP3-Dateien mit nnnn-beliebigername.mp3 ablegen kann.
Sorry, muss mich korrigieren. Wenn man die Funktion mit Ordner-Angabe
nutzt, müssen die Tracks von 000 bis 255 durchnummeriert werden, also
nnn-beliebigername.mp3
nnn ist hier also nur drei- und nicht vierstellig.
Niklas G. schrieb:> Dann muss das drauf-kopierende Programm die Dateien aber auch in> alphabetischer Reihenfolge auf dem Stick anlegen. Man müsste schon jede> Datei einzeln kopieren, um das zu erreichen.
Ja, das ist korrekt. Bei Linux aber nicht schwierig: Die Shell
expandiert Wildcards in alphabetischer Reihenfolge. Ein "cp *.mp3
/mnt/xxx" macht das automatisch richtig. Bei Windows ist das mit der
Mausschubserei nicht so einfach. Hier wird nicht unbedingt in der
Reihenfolge kopiert, welche man bei der Selektion der Dateien mit der
Maus verwendet hat.
Aber konkret beim DFPlayer sind solche Vosichtsmaßnahmen nicht
notwendig, wenn man obiges Nummernschema verwendet.
Frank M. schrieb:> Das stimmt nicht ganz für den DFPlayer, jedenfalls ab FW-Version 0005.> Hier kann man aber zweistellige Ordner 01, 02 usw. anlegen, in welche> man dann die MP3-Dateien mit nnnn-beliebigername.mp3 ablegen kann. Dann> kann man beim Abspielen sowohl den numerischen Ordner als auch den> numerischen Dateinamen angeben und der DFPlayer spielt dann gezielt> diesen Track ab - unabhängig von der Chronilogie des Draufkopierens.
Das werde ich mal ausprobieren - wenn das so funzt ernenne ich dich
glatt zum MOD of the Week ;-)
Habe ich das richtig gecheckt - der DFPlayer orientiert sich dann nach
dem Nummern-Prefix? Die Reihenfolge ist somit irrelevant bei dieser
Vorgehensweise mit den DIRs..
Wertebereich:
- folder: 0 - 99, gemeint ist Ordner 00 - 99
- file: 0 - 255, gemeint ist Datei 000.mp3 bis 255.mp3
Bitte darauf achten, dass Du beim Testen keine Zahlen mit führenden
Nullen übergibst, sonst sind das Oktalzahlen ;-)
Der Source ist allerdings für STM32 und hat nichts mit Arduino zu tun.
Soll Dir auch nur als Anhaltspunkt dienen.
Niklas G. schrieb:> Geht es explizit darum eine bestimmte zufällige Folge zu speichern? Die> meisten Player können doch "Shuffle"...
Heutzutage hab ich das Problem nicht mehr, weil die Player wie du sagst
immer mehr können. Was ich eingangs beschrieb, ist bestimmt 10 Jahre
her.
Gruß, Martin
Player vor dem Herrn schrieb:> Das werde ich mal ausprobieren - wenn das so funzt ernenne ich dich> glatt zum MOD of the Week ;-)
TaaTaa - The MOD of the week is Frank M.
Kurzes Feedback:
Es funzt genau wie es Frank beschrieben hat.
Entscheidend ist man vergisst die oberste DIR Eben und verlegt all seine
MP3 Dateien in die Ordner.
Ich hatte die Ordner der Reihe nach generiert 01, 02 ....
Und anschließend "vogelwild" hinein kopiert und zwar in der Form:
nnn_Name.mp3 (z.B. 005_Klappe_Auf; 007_Klappe_Zu)
In meiner Referenz Tabelle habe ich die DIR Nummern und den Index zu
eine Integer Zahl zusammengefast (z.B. 3005, 3007)
zur Laufzeit wird dieser Index dann aufgedröselt in 2 Byte Variablen.
Was es anscheinend auch noch gibt, ist der Aufruf
"myDFPlayer.playLargeFolder(dd, nnn);"
um auf 10 Ordner mit 1000 Dateien zuzugreifen.
Frank M. schrieb:> Der Source ist allerdings für STM32 und hat nichts mit Arduino zu tun.> Soll Dir auch nur als Anhaltspunkt dienen.
Wir verwenden hier quasi Arduino kompatible Teensy Module (3.5) mit
einen ARM Core von NPX - vergleichbar mit STM32. Die Dinger sind sehr
hoch getaktet, sodass die üblichen Kritiken wie "Bastelzeug" "lahme
Ente" alle abprallen.
Der Produktivitäts-Zugewinn ist im Vergleich zu normalen uC-Anwendungen
gigantisch.
N.B
Nach dem Erscheinen der Teensy 4.0 Familie wird die Arduinowelt nicht
mehr zum leugnen sein.
Player vor dem Herrn schrieb:> das Datum
Klar ist es das Datum und Uhrzeit!
Datum und Uhrzeit, an dem die Dateien auf die Karte kopiert wurden.
Du erstellst eine Datei mit Datum 1.1.2011.
Wenn Du die am 2.2.2022 auf USB-Stick o.ä. kopierst und dann den Stick
anschaust, hat die Datei das Datum 2.2.2022.
Ein bißchen denken hat noch niemanden geschadet.
Einfach mal anfangen damit.
Jemand, der einen PC bedienen kann, um eine Frage online zu stellen,
sollte das eigentlich wissen.
WTF ?! schrieb:> Wenn Du die am 2.2.2022 auf USB-Stick o.ä. kopierst und dann den Stick> anschaust, hat die Datei das Datum 2.2.2022.
Das stimmt nur bedingt.
Wenn Du es mit einem unixoiden System mit "cp" ohne spezielle Optionen
machst, dann bekommt die Datei ein neues Änderungsdatum und Deine
Aussage ist richtig. Wenn man "cp -a Quelldatei Zieldatei" verwendet,
wird jedoch u.a. das Änderungsdatum übernommen.
Bei Windows ist dieses Verhalten sogar Standard: Hier wird das
Änderungsdatum der Quelldatei als Änderungsdatum der Zieldatei beim
Kopieren übernommen, so dass beide Dateien im Explorer mit gleichem
Änderungsdatum gezeigt werden.
Von daher solltest Du Deine hochtrabenden Aussagen
> Ein bißchen denken hat noch niemanden geschadet.> Einfach mal anfangen damit.>> Jemand, der einen PC bedienen kann, um eine Frage online zu stellen,> sollte das eigentlich wissen.
nochmals überdenken.
WTF ?! schrieb:> Ein bißchen denken hat noch niemanden geschadet.> Einfach mal anfangen damit.
Und wie sieht es bei dir aus? :-(
Sich zwei Worte rauspicken, die aus dem Kontext gerissen sind und
dann zu meinen hier im Forum "Denkanstöße" zu geben ist deplatziert und
peinlich.
Das zeugt eigentlich nur davon dass du den Thread nicht mal überflogen
hast geschweige denn verstanden :-(