Spulen im Titel

ist das schon public?

Danke!

Leider nicht.
Ich habe gerade zu viel anderen Kram zu tun :woman_shrugging:

Ich hab zwischen den Tracks immer ein kurzes knacken, das ist vor allem störend wenn die titel manuell geteilt worden sind mit mp3splt.
Kann man das minimieren?
Liegt das an dem Cache der neu geladen wird? Vielleicht könnte man die daten umkonvertieren auf 128kbit Mono wenn das was bringt.

Da muss @Wolle was zu sagen. Kann ich dir nicht beantworten.

Das kurze Knacken zwischen den Titeln kann ich nicht bestätigen. Ich habe mit Audacity eine Audiodatei in drei Teile geteilt und als Playlist abspielen lassen. Das funktioniert wie erwartet.
In Kürze werde ich eine Funktion bereitstellen, die nicht wie bisher relative sondern auch absolute Sprüngen innerhalb einer Zeitleiste ermöglicht. Damit wird das Teilen einer Audiodatei unnötig.

1 „Gefällt mir“

So, ich habe die Funktionalität eben integriert.
Es gibt nun die Kommandos CMD_SEEK_FORWARDS und CMD_SEEK_BACKWARDS kann man nun eine in jumpOffset definierte Zeitspanne vor- oder zurückspringen. Per Default habe ich da mal 30s eingetragen.

1 „Gefällt mir“

Da man auch die Abspielgeschwindigkeit ändern kann (kann man, oder?), wären auch aktionen bei BUTTON_4_LONG_START und BUTTON_5_LONG_START denkbar.
(gibt es noch nicht)
Dafür muss lastPressedTimestamp > lastReleasedTimestamp sein statt andersherum. link

Dann könnte man die schnellere Geschwindigkeit bei Beginn des langen Tastendrucks starten und bei Ende des langen Tastendrucks wieder die normale Geschwindigkeit setzen.

Nein, die Abspielgeschwindigkeit kann man leider nicht ändern. Ich hatte es so implementiert, aber es stellte sich heraus, dass die Audiolib an der Stelle nix macht. @Wolle hat ersatzweise eine Sprungfunktion bereitgestellt, die ich nun implementiert habe. Mit der alten Funktion gab es Probleme, aber das kann er sicher besser erklären als ich :grin:

Bisschen offtopic, aber da ja @Wolle hier nun voll im gange ist, will ich kurz fragen.
Hatte mal bei github gefragt ob deine library auch um FLAC support erweitert werden kann?
Hab leider damals keine Reaktion erhalten.

Ist der Prozessor zu schwach dafür, oder gibt es andere Gründe?
(„brauch ich nicht, deswegen wird keine zeit dafür verschwendet“ ist natürlich voll in ordnung :wink: )

Ich habe entweder meine Entwicklungsumgebung geschrottet, oder sonst irgendwas.
Ich bekomme auf einmal die Meldung:

src/main.cpp: In function ‚void playAudio(void*)‘:
src/main.cpp:1788:27: error: ‚class Audio‘ has no member named ‚setTimeOffset‘
if (audio.setTimeOffset(jumpOffset)) {

Kann mir jemand sagen, ob das zusammen hängt oder ich an anderer Stelle suchen muss?

Hi, die Methode setTimeOffset() gibt es noch nicht so lange, vielleicht hast Du eine ältere Version der audio Library?

1 „Gefällt mir“

@barni FLAC wir noch kommen. Ich habe etwas vorgearbeitet, die Metadaten ind die Rohdaten werden bereits jetzt verarbeitet und die Schnittstelle zum Einhängen des FLAC Dekoders existiert auch schon. Es gibt bei xiph.org/flac eine gute Dokumentation über FLAC. Den auf github von xiph veröffentlichten Dekoder möchte ich wegen den vielen Callbacks im Original nicht benutzen. Und das Umschreiben dauert noch etwas.
vG Wolle

Heute nochmals kompiliert und alles ist wieder gut :thinking:

Rockbox hat damals (2005!!!) den code von ffmpeg genommen:
https://git.rockbox.org/cgit/rockbox.git/tree/lib/rbcodec/codecs/libffmpegFLAC

Ich kenne mich nicht so gut mit codecs aus, aber eventuell ist die Datei README.rockbox interessant:

It was also changed to provide output as 32-bit integers (with the
data left-shifted to 28 bit accuracy).  The original flac.c provided
16-bit output.

In order to minimise memory usage, a small number of hard-coded limits
are present in decoder.h - mainly limiting the supported blocksize
(number of samples in a frame) to 4608.  This is the default value
used by the reference FLAC encoder at all standard compression
settings.

Das ist saugeil. Ich freue mich. Danke schon mal!

@tyllmoritz ich habe mir den Code von Rockbox angesehen. Mit den Problemen, die ich sehe kämpft er auch. FLAC ist zwar schnell bein Dekodieren benötigt aber für ESP32-Verhältnisse extrem viel Speicher . Und der ESPuino spart auch nicht mit SRAM. Koexistenz funktioniert nur wenn der Speicher des FLAC-Dekoders in den PSRAM verlagert wird. Leider, das geht nicht anders. Ich habe meinen FLAC Dekoder, den ich damals programmiert habe, eingehängt. Der Klang ist super. Zur Zeit läuft nur das Abspielen von SD. Für den Betrieb im ESPuino sind also zwei Sachen erforderlich:

  • PSRAM muss aktiviert werden
  • der Dateityp .flac muss in der SW freigegeben werden

P.S. ohne PSRAM stürzt der ESP32 beim Initialisieren der FLAC Dekoders wegen Mangel an SRAM ab, das wird mit der nächsten Version bereinigt.

vG Wolle

1 „Gefällt mir“

Dateityp freigeben ist schnell gemacht.
Wenn es dafür psram braucht, dann ist es halt so 🤷

Hallo zusammen,

nachdem hier bereits über Spulen im Titel berichtet wurde, hoffe ich, dass ich mich hier an die richtigen Leute wende.

Nachdem ich das neue 4L PCB in Betrieb genommen habe, bekomme ich beim Spulen (egal ob vorwärts oder rückwärts) in mp3/aac Dateien immer folgende Meldung im Terminal:

[ 253359 ] 30 Sekunden nach vorne gesprungen
[E][Audio.cpp:2766] processLocalFile(): audioHeader reading timeout

und der ESP geht in den Wartezustand (4 weiße LED, die sich im Kreis drehen).
Habe es bei mehreren mp3, wie auch aac Dateien ausprobiert - immer das selbe.

Hat das auch schon mal jemand beobachtet oder kann sich das erklären?

Ich glaube das Verhalten hatte ich mal mit einer anderen bestimmte SD Karte. Hast du zu Testzwecken noch eine andere SD Karte?

Danke für die Rückmeldung.

Ich hab es mit 3 SD Cards versucht:

  • 32GB SanDisk Ultra
  • 128GB SanDisk Ultra
  • 16GB Transcend Premium

Leider jedes Mal das selbe Ergebnis.