Bass und Höhen einstellen

Ich bin gerade beim Aufbau meines Espuino für meine Tochter.
Verwende dazu einen Breitbandlautsprecher welchen ich noch im Keller hatte.
Der LS kann tiefen gut wiedergeben, nur an den Höhen fehlt es. Hier würde eine Art Equalizer helfen.
In der audio_i2s lib habe ich folgende Funktion entdeckt:

setTone(int8_t gainLowPass, int8_t gainBandPass, int8_t gainHighPass)

Soweit ich das verstehe lässt sich dies recht simpel einbauen.

Wäre das möglich?

Schau mal hier, da wird der Bass sogar eh schon ein bisschen angehoben im Mono-Modus:

Vielleicht überschreibst du das einfach in der aktuell leeren Zeile 317 mit Einstellungen, wie du das gerne hättest. Kopierst dir einfach die Zeile nach unten und setzt dir passende Werte.
Kann man auch drüber nachdenken, das irgendwann mal in die GUI zu ziehen. Aber aktuell wird die neu gemacht und da möchte ich das nicht auch ändern.

1 „Gefällt mir“

Hab ein ähnliches Problem. Es gibt anscheinend bereits eine Bassanhebung in der audioplayer.cpp vielleicht hilft es dir diese rauszunehmen…

1 „Gefällt mir“

Da war ich wohl zu langsam.

Nochmal ein Nachtrag: in der audio_i2s lib sind die Grenzfrequenzen für die 3 Filter fest definiert (500, 3000 und 6000). Die 500 für den lowPass sind aber glaube ich zu hoch, weshalb der Sound eher dumpf klingt und man die Höhen vermisst. Wenn man sich den Frequenzgang gänginger Breitbänder in kleinen Gehäusen anschaut, würde ich eher was bei 100hz versuchen…

Moin, wie würde man den die lib über Platformio anpassen ?

In der AudioPlayer.cpp anpassen, neu kompilieren und hochladen.

Ich hab mich hier mal dran gewagt: Equalizer über WebUI einstellen :wink:

6 „Gefällt mir“

Hallo zusammen, ich habe mir ein Stereo-System gebaut und die Einstellungen in der
Zeile 366 (AudioPlayer.ccp) audio->setTone(3, 0, 0);

abgepasst, aber meiner Meinung nach ändert sich da nichts.

Ich merke keinen Unterschied bei Mitteltönen und Hochtönen
meine Einstellungen :setTone(0, 3, 4)

Hallo @Alexander
in dieser Zeile?

if (gPlayProperties.currentPlayMono) {
	audio->setTone(3, 0, 0);
}

das dürfte doch nur zum Tragen kommen, wenn das System auf mono gestellt ist.
Ich habe hier kein Stereosystem zum Testen.
Ersetze doch zum Test mal den If-Block durch

audio->setTone(0, 3, 4);

in Zeile 872 wird das Ganze auch noch mal gesetzt (beim Umschalten von Mono/Stereo) aber ich glaube da kommst du gar nicht rein - das ist mir jetzt zu Spät zum Durchdenken :slight_smile: