Hallo und erst mal danke für das großartige Projekt! Wir haben schon eine Box im Einsatz, lieben sie heiß und sind schon fleißig am Verbreiten im Freundeskreis
Auf der Suche was beizutragen hab ich mich in der Todo-Liste umgesehen und der Equalizer im WebUI erschien mir als am ehesten machbar und war für uns auch grad ein Thema.
Oh boy, da hab ich natürlich wieder die Fresse zu voll genommen, das is ordentlich ein Brett geworden
Konkrete Änderungen:
Das ganze lebt momentan mal auf diesem branch, geforkt von dev
.
Ich habe mich für mehr oder weniger eine Kopie der Lautstärke-Queue entschieden, da ich dachte, dass das die beste responsiveness bietet. Wenn das für einen ersten Pull-Request zu aufdringlich ist oder für diese eher spezielle Funktion übertrieben ist, können wir natürlich über Alternativen reden. Im Code war mir das erstmal der einleuchtendste rote Faden dafür.
Um die Einstellungen (drei Werte: Bass, Mitten und Höhen wie ->setTone()
von ESP32-audioI2S erwartet) über Neustarts hinweg zu erhalten, schreibe ich sie in gPrefsSettings
und initialisiere sie in der AudioPlayer_Task(void *)
.
Die UI:
Neue Slider auf der Einstellungsseite, Werte kommen vom WebSocket und bei slideStop
telefonieren die Slider nach hause. Das ist auch der Grund, warum ich mich unter dem „Senden“-Knopf außerhalb des Forms entschieden hab.
Ich könnte mir auch vorstellen, das ganze auf der Steuerungsseite in einem Dialogfenster hinter einem Button um den Lautstärkeregler herum unterzubringen. Damit wär es nicht mit den restlichen „härteren“ Einstellungen verwurstet sondern wär bei Gleichgesinnten.
Offene Fragen:
Ein Problem, zu dem ich keine Antwort finden konnte, waren die Mono-Einstellungen. Mono triggert zweimal audio->setTone(3, 0, 0);
und ich hab nicht wirklich herausgefunden, warum oder was in diesem Fall passieren sollte - drum ist es jetzt im Entwurf auch noch genauso.
Es wäre vermutlich übertrieben, ein zusätzliches Triplet von EQ-Werten zu speichern oder gar weitere Bedienfelder für den Fall in der UI unterzubringen …
Aber vielleicht ist das auch eine Frage für die Zukunft