Max2Play Home › Forums › Max2Play on Raspberry PI › Jivelite Lautstärkeanzeige aktualisiert sich erst nach langer Wartezeit
- This topic has 5 replies, 2 voices, and was last updated 5 years, 8 months ago by Heiner premium.
-
Posted in: Max2Play on Raspberry PI
-
20. Februar 2019 at 10:15 #44532
Hallo Zusammen!
Ich entwickle gerade eine Internetradio mit max2play und Jivelite und möchte mit Drehinkrementalgeber und Tasten
die von einem Arduino überwacht werden Jivelite steuern. Das funktiniert auch schon ganz gut. Ich sende die Befehle
vom Arduino seriell zum Raspberry und dort steuert ein Pythonprogramm per API Jivelite bzw. den Squezzeboxserver.Wenn ich nun die Lautstärke per Drehinkrementalgeber ändere wird das auch umgebend ausgeführt, leider dauert es zwischen einigen Sekunden
bis zu einer Minute bis der Lautstärkebalken auf dem Display die aktuelle Einstellung anzeigt.Meine Frage: Kann man per API den Displayinhalt refreshen?
Vielen Dank!
20. Februar 2019 at 17:29 #44534Hallo RadioKlempner,
Erstmal danke fürs Teilen eines solch interessanten Projekts. Falls du irgendwann etwas Zeit dazu haben solltest, würden sich hier und in anderen Foren, wie bei SlimDevices, die Leute sicher freuen, wenn du noch genauer beschreibst wie dein Setup eingerichtet hast. Gerne auch mit einem Blog-Beitrag in unserem Blog, um noch mehr Leute zu erreichen.
Zu deiner Frage: Ich habe dies mit unserem Chefentwickler abgesprochen und diese Latenz wird wohl nicht ohne weiteres durch aktualisieren eliminiert werden können. Sie liegt daran, dass die Lautstärke von ALSA auf dem Pi über den Squeezebox Server an Jivelite geschickt wird. Bei diesen Kanälen entsteht dann leider ein wenig Latenz. Dies sollte jedoch nicht über 2-5 Sekunden sein. Jivelite ist grundsätzlich in seiner refresh-rate bereits optimiert um Latenz zu minimieren. Ggf. kannst du dahingehend noch andere Faktoren wie LAN/WiFi-Verbindung, Pi-Belastung oder Squeezebox Server load optimieren.
Du kannst jedoch auch nochmal in den SlimDevices Foren anfragen, ob die Community dort ggf. noch eine weitere Idee hat.24. Februar 2019 at 11:52 #44551Hallo Heiner!
Vielen Dank für die prompte Antwort, leider komme ich erst heute dazu zu testen und zu antworten.
Ich habe das Verhalten des Lautstärkebalkens nochmal genau beobachtet. Er aktualisiert sich genau dann, wenn ein neuer Lied/Künstlertext oder Coverbild angezeigt wird. Das kann auch über eine Minute dauern. Ich werde mal versuchen über die API einen kurz anzuzeigenden Text auf das Display zu schicken. Das könnte vielleicht den Balken aktualisieren. Berichte später ob´s geklappt hat (auch wenn das ein nicht so eleganter Workaround wäre).
An CPU-Load oder Netzwerkverbindung kann es nicht liegen. Ich habe den Radio in verschiedenen Netzen getestet, das hat keinen Einfluss. Dürfte es eh nicht, da der Code lokal über den localhost ausgeführt wird. Das Pythonprogramm ist auf dem Raspberry im Autostart und führt bei entsprechendem seriellen Befehl das Kommando z.B.
curl --silent 'http://localhost:9000/status.html?p0=mixer&p1=volume&p2=-1' > /dev/null
aus.Interessant ist auch, daß Jivelite wohl eine eigene Variable für die Lautstärke hat und diese als Absolutwert und nicht relativ zum Squeezeboxserver schickt. Das merkt man bei Tippen auf die Display Button´s fürs Lautstärkeändern. ( Es ändert sich der Balken dann sofort).
Das merkt man an folgendem Verhalten:
Beispiel: Die Lautstärke ist auf 50% eingestellt. Ich ändere per API die Lautstärke auf 10% was auch sofort hörbar ist, der Balken bleibt jedoch noch längere Zeit auf 50%. Tippe ich nun wärend noch 50% angezeigt wird auf Lautstärke+ am Diplay, stellt sich die Lautstärke nicht auf 10%+1 ein, sondern auf 50%+1 ein. Sie springt also deutlich nach oben.
Eine Frage: Könnte man die Lautstärkevariable von Jivelite von extern (z.B. per CLI Kommando) ändern statt per API über den Squezzeboxserver????Was mein Projekt anbelangt, kann ich das gerne bei Interesse online stellen. Momentan bin ich allerdings noch am entwickeln und schätze dass ich noch einen Monat brauche bis ich im Wesentlichen fertig bin.
Danke! Grüße!
25. Februar 2019 at 12:43 #44555Hast du hw:0/hw:1 in den Parametern von Squeezelite stehen zur Lautstärkesynchronisation?
27. Februar 2019 at 22:25 #44574Hallo Heiner!
Meinst Du die Alsa Parameter? Dort steht wie vom Konfigurationstool für den Hifiberry Amp+ voreingestellt „80:4::“ nach dem Ändern auf „hw:0“ kam kein Ton mehr. Ich dachte hw:0 wäre der richtige AlsaParamter da nach Eingabe in die Konsole von
aplay -l
der Amp+ als Karte 0 angezeigt wird. Ich habe aber keine wirkliche Ahnung was die Alsa-Parameter bedeuten.
Auch wenn kein Ton kam hat sich der Lautstärkebalken nicht schneller aktualisiert.28. Februar 2019 at 11:07 #44575Entschuldige, ich hätte mich klarer ausdrücken sollen.
Die Parameter sind für die Kommandozeilenoptionen gedacht, dort lassen sich alle möglichen kleinen Anpassungen vornehmen. Mit dem Link neben der Option findest du auch alle Optionen und dessen Erklärung von unserer Webseite. Der hw:0 Parameter (hw:1 bei paralleler Nutzung des eingebauten Soundchips) knüpft die Lautstärkeregelung der Soundkarte direkt an die Regelung des LMS.
Wenn du jedoch einen Amp+ und keinen AMP2 hast, ist dieses Feature leider nicht möglich. Der Amp+ hatte noch kein volume control eingebaut und wird daher nur von Softwareseite geregelt.
-
You must be logged in to reply to this topic.