Lautstärke kleinschrittiger erhöhen

Hallo… gibt es eine Möglichkeit die Lautstärke kleinschrittiger ansteigen zu lassen. Also, wenn man lange auf den Up-Button drückt, dann erhöht sich die Lautstärke, aber nicht so stark, wie in der Standard-Einstellung. (Einmal ist die Lautstärke zu niedrig, dann beim Erhöhen zu hoch…) Kann man das im Code ändern? Wenn ja, wo und wie?
Danke und Gruß, Christian Heinz

Ja, das geht ganz einfach: sowohl in MASTER als auch in DEV gibt es die Zeile

#define LONG_PRESS 1000

Wenn Du den Wert z.B. auf 2000 setzt, geschieht die Lautstärkeänderung nur halb so schnell…

Ich glaube, dass dadurch der Knopf einfach später reagiert, die Lautstärke aber noch immer in der selben Geschwindigkeit geändert wird. Ich habe das einmal unter GitHub recht einfach gefixt.

Dem Code nach wird aber bei dauerhaft gedrückter Taste nicht nur am Anfang sondern auch zwischen zwei Lautstärkeerhöhungen die durch LONG_PRESS definierte Zeit gewartet.

Interessant. Konnte ich dem Code nicht entnehmen (wo siehst du das?) und in meinem Test (serielle Ausgaben und „Hörprobe“) auch nicht bestätigen: Wenn ich die Taste lange drücke, wird LONG_PRESS Millisekunden gewartet und dann wird die Lautstärke so schnell geändert wie die Schleife durchlaufen wird (recht zügig).

Ich hab das nun so verstanden das er fragte ob man die Lautstärke a sich geringer ansteigen lassen kann. Also wenn beispielsweise beim UP Button drücken die Lautstärke um +1 erhöht wird, er es lieber manuell auf z. B. +0, 5 anstieg der Lautstärke hätte…?

@chrihein10 ?

Meine letzte Aussage muss ich revidieren. @alexander.willner, Du hast recht und ja auch gleich schon die Lösung für eine andere Lautstärkeregelungsgeschwindigkeit mitgeliefert! :smiley:

@chrihein10: Der DFPlayer kennt nur 31 diskrete Lautstärkestufen (0 (d.h. aus) bis 30) und kann keine Zwischenschritte. Die Beschränkung liegt also in der Hardware und nicht in der Software. Für eine kleinschrittigere Lautstärkeregelung wäre ein zusätzliches Digitalpoti oder ähnliches an Zusatzhardware nötig. Danke, @Blendonaut für den Hinweis. :smile:

Ich muss das Thema nochmal aus der Versenkung holen…

Ich hätte gerne das die Lautstärkeänderung schneller anspricht, dafür aber langsamer ansteigt (oder sich verringert)

Wie kann ich das umsetzen?

Für das schnellere Ansprechen (Unterscheidung Titel weiter / Lautstärkeänderung) muss ich
#define LONG_PRESS 1000 die Zahl 1000 verringern!?

Kann ich dann noch zusätzlich einen Wert ändern, der die Lautstärkeänderung „bremst“?

Nein, es gibt 30 Lautstärkestufen.
Du kannst die Maximallautstärke reduzieren, indem du die mp3 anpasst.

Die Abstufung der einzelnen Schritte ist OK, ich hätte nur gerne den Zeitabstand (bei gedrückter Taste), der einzelnen Stufen etwas größer

Entschuldige bitte, das war ein Missverständnis.

Vielleicht könnte da in der void volumeUpButton() ab Zeile 807 in der DEV/main ein delay(xx) unter mp3.increaseVolume helfen?!
In der void volumeDownButton() ab Zeile 820 dann eben entsprechend. :thinking:

void volumeUpButton() {
  if (activeModifier != NULL)
    if (activeModifier->handleVolumeUp() == true)
      return;


  Serial.println(F("=== volumeUp()"));
  if (volume < mySettings.maxVolume) {
    mp3.increaseVolume();
    volume++;
  }
  Serial.println(volume);

   delay(500); //diese Zeile einfügen

}


void volumeDownButton() {
  if (activeModifier != NULL)
    if (activeModifier->handleVolumeDown() == true)
      return;


  Serial.println(F("=== volumeDown()"));
  if (volume > mySettings.minVolume) {
    mp3.decreaseVolume();
    volume--;
  }
  Serial.println(volume);

 delay(500); //diese Zeile einfügen

}

Ich dachte es gäbe schon ein Delay, dass den wechsel begrenzt, das ist abe rnur bei nextButton() und previousButton() enthalten.

Oben hab ich es nochmal genauer, wo das delay hin sollte.

Die Werte dieser beiden Zeilen unterscheiden dann ab welcher Zeit die Lautstärke geändert wird??

Sprich, wenn ich den Wert kleiner mache sprechen die Lautstärketasten früher an?

Nein diese beiden Zeilen bestimmen wie schnell die Stufen gewechselt werden.

das define LONG_PRESS bestimmt wie lange du gedrückt halten musst bis er die Lautstärke wechselt.

Gibt es einen bestimmten Grund warum du nicht die Lautstärke auf den kurzen Druck legst und dafür vor/zurück auf den langen Druck?
Dann würde die Lautstärke ja bei jedem kurzem Druck um einen verstellt werden.

Finde die Bedienung recht intuitiv mit dem langen Drücken der Lautstärkeänderung.
Hab nur ab und an das Problem, das ein Tite gesprungen wird, wenn man die Lautstärke nur leicht ändern wollte.
Hab jetzt LONG_PRESS auf 350 gesetzt, das fühlt sich viel besser an.
Man kann noch langsam genug drücken um einen Titel zu springen, und bleibt man nur etwas länger drauf ändert sich die Lautstärke.
Prima, so wollte ich das! Danke für den schnellen Support. :smiley:
Jetzt muss ich das ganze Rudel updaten… :crazy_face:

Ich glaub auf das „Verlangsamen“ der Lautstärkeregelung kann ich verzichten.
Durch das relativ direkte ansprechen lässt sich die Lautsärke „feinfühliger“ anpassen.

Ich bin jetzt mal testweise dran, die Lautstärkeänderung in der 5 Button version zu verändern. Das soll so funktionieren, dass die Vol Tasten in der 5 Buttonversion sowohl auf Longpress mit langsamen Hoch-Runterfahren der Lautstärke reagieren, als auch mit shortpress ein schrittweises ändern der Lautstärke ermöglichen. Erste Tests sind vielversprechend.