Bugs in Software?

Im Praxis-Betrieb sind mir zwei Dinge aufgefallen:

  1. Nach dem Einschalten kann man die Lautstärke erst leiser stellen, wenn man vorher einmal lauter gestellt hat. Danach geht es in beide Richtungen ohne Probleme.

  2. Im Party-Modus (verwende ich für Musik) wird manchmal das gleiche Lied mehrfach hintereinander gespielt. Startet die Zufalls-Auswahl nach jedem Track neu?

Habt Ihr die gleichen Beobachtungen gemacht?
Zumindest Punkt 1 kann ich mir vom Code her nicht erklären.

Also Teil 1 finde ich auch sehr komisch - bei mir klappte es bisher immer und wie du schon sagst, im Code sieht das alles gut aus. Richtig verbunden ist aber alles?

Zu Punkt 2 könnte man einbauen, dass zumindest nicht 2x das gleiche hintereinander kommt. Oder wenn das ein Thema ist dass wirklich jedes Lied nur 1x gespielt werden darf müsste man eine richtige Queue anstelle des Zufallsgenerators einbauen. Kannst du das bitte mal in den Beitrag zum Thema Firmware Updates schreiben?

Du könntest mal folgenden Fix probieren:

In der Funktion nextTrack

  if (myCard.mode == 3) {
    currentTrack = random(1, numTracksInFolder + 1);
    if (currentTrack == _lastTrackFinished)
      currentTrack = currentTrack == numTracksInFolder ? 1 : currentTrack+1;
  
    Serial.print(F("Party Modus ist aktiv -> zufälligen Track spielen: "));
    Serial.println(currentTrack);
    mp3.playFolderTrack(myCard.folder, currentTrack);
  }

Danke Thorsten, den Fix probiere ich morgen gleich. Ansonsten halt wieder Album-Modus, aber dann hört man erfahrungsgemäß die ersten paar Lieder am häufigsten ; )

Zu 1: Ja, habe alles durchgemessen und nach einer ersten Lautstärke-Erhöhung klappt es ja problemlos. Dachte es liegt vll an meiner Begrenzung nach unten, die ist ja aber analog der nach oben. :thinking:

Liegt es auch :wink:

volume scheint nicht initialisiert zu sein, kann das sein?

volume = mp3.getVolume(); solltest du dann irgendwo vor dem Button handling einbauen oder, besser, einfach volume = welchen wert auch immer die volume initial bei dir hat in die setup() Funktion packen.

Ich hab das bei mir ähnlich übernommen (danke @Thorsten das hatte mich schon länger gestört, war aber irgendwie nie da zu gekommen das zu fixen, es is ja immer was anderes :wink:). Funktioniert 1a.

WIrd der Fix dann statt dem Code hier eingefügt?
if (myCard.mode == 3) { track = random(1, numTracksInFolder + 1); Serial.print(F("Party Modus ist aktiv -> zufälligen Track spielen: ")); Serial.println(track); mp3.playFolderTrack(myCard.folder, track);

Edit: der Fix hatte noch nichts gebracht - so sollte es klappen (ist auf Github).

Einfach die paar Zeilen in der grünen Box an der entsprechenden Stelle einfügen

image

Du musst mal deinen clone updaten, das ist nicht mehr aktuell. :wink:

ich habe das mal ins offizielle repo eingespielt

einfach die TonUINO.ino neu laden.

Falls einer in den letzten 5 Minuten geladen hat bitte nochmal neu laden :wink:

Issue 1 hat sich damit erledigt, Danke Thorsten!

_ // DFPlayer Mini initialisieren
mp3.begin();
mp3.setVolume(15);
volume = 15;_

Der Party-Fix hat leider nicht funktioniert:
Party Modus ist aktiv -> zufälligen Track spielen: 3
Party Modus ist aktiv -> zufälligen Track spielen: 3
(habe die Next-Taste dazu gedrückt)

sollte jetzt klappen… _lastTrackFinished ist ja der globalTrack, daher hat es nicht geklappt

habe aber auch angefangen eine queue funktion einzubauen. dann kommt jeder song genau 1x

1 „Gefällt mir“

Ja, top, danke! Hatte ich mir gestern schon gedacht, da 935 mit 13 verglichen wurde, aber da war es schon zu spät ; )

Queue wäre super, ich nehme es mal in das Thema mit neuen Features auf.

Sorry, muss nochmal wegen des Party-Modus fragen:
Bei zwei Karten fängt er im Party-Modus immer mit dem ersten Lied an und spielt auch nur die ersten beiden!?
Folgendes sagt der Monitor:
Com Error 255
0 Dateien in Ordner 37
Party Modus -> Ordner in zufälliger Reihenfolge wiedergeben
Party Modus ist aktiv -> zufälligen Track spielen: 2
Party Modus ist aktiv -> zufälligen Track spielen: 1

Habt Ihr das schon mal gehabt?
Habe die Ordner auch schon einmal gelöscht und neu befüllt mit dem gleichen Ergebnis.

Das Problem ist die Zeile “0 Dateien in Ordner xx”.

Jetzt wäre die Frage ob es mit einem anderen Ordner funktioniert bzw. ob was anderes als der Partymodus funktionieren würde.

Ich hatte das Problem bei einem DFPlayer bzw. ein User hatte das als der TX vom DFPlayer und der RX vom Arduino nicht sauber verbunden waren.

Ansonsten halt wirklich nochmal die SD Karte neu formatieren und aufpassen dass keine falschen Dateinamen irgendwo rumfliegen.

Thorsten, danke, das Formatieren hat funktioniert.
Der DFPlayer scheint da wirklich sehr empfindlich zu sein :thinking:

Habe auch einen eventuellen Bug:

  1. Start/Stopp Taste länger drücken, Ansage zum löschen einer Karte kommt

  2. Abbruch der Funktion mit einer der Laut/Leise Tasten

  3. jetzt geht kurz drücken für den nächsten Titel nicht mehr. Länger drücken für lauter geht.

Das ganze kann nur dadurch gefixt werden, dass man eine Karte auflegt (gerne auch die aktuelle nochmal). Danach geht wieder alles so, wie es soll.

Kann das jemand bei sich reproduzieren? Software ist die aus Thorstens Repo, nicht modifiziert.

Danke euch.

Carsten

Hallo Carsten,

das habe ich auch. Der Grund dafür ist simpel im Wahrsten sinne des Wortes: der Code gibt vor, dass der Player dort startet, wo er aufgehört hat bzw. was als letztes abgespielt wurde. Da hier keine Karten-Kategorie angegeben ist, “hängt” er in der Ansage “fest”. D.h. wenn du das nächste Lied abspielen willst, sagt er dir wieder und wieder, du sollst die zu löschende Karte o.Ä. auflegen. Erst durch eine neue Karte wechselt der Player wieder zu einem anderen Ordner/Lied.
Ob als Bug zu betiteln, liegt im Auge des Nutzers :wink: