Sync Options Plugin

HKNBG
Beiträge: 122
Registriert: 20. April 2020 13:50
SqueezeBox: Boom
SqueezeBox: Boom
SqueezeBox: Radio
SqueezeBox: Radio
SqueezeBox: Touch
SqueezeBox Server läuft auf: Raspberry Pi/Linux

Re: Sync Options Plugin

Beitrag von HKNBG »

Hallo Karlek,

heute habe ich es nach deiner Antwort nochmals probiert. In meinem Zimmer habe ich, wie gesagt 3 Saueezeboxen. Der Einfachheit halber, lasse ich das Radio auf meinem Schreibtisch mal weg. Dieses füge ich erst hinzu, wenn es funktioniert. Mit der Ursprünglichen Boom meine ich die auf dem Nachtschrank, welche etwas leiser sein sollte, als die neue Boom (auf dem Schrank)

Heute habe ich es nochmals so gemacht, wie ich es bisher gemacht habe. Anscheinend hat das Plugin Probleme, wenn man zu kleine Unterschiede einstellt. Die Probleme mit der viel zu lauten Lautstärke treten immer dann auf, wenn man einen zu kleinen Unterschied, wie 5->6, 30->35 oder 50->55 auswält. Das das Plugin bei hohen Unterschieden funktioniert ist mir das letzte Mal nicht aufgefallen, da ich diese nicht ausprobiert habe. Ist bei dir auch diese Problematik, wenn du so gerige Unterschiede, wie 5->6 einstellst?

Das Beste Ergebniss habe ich erzielt, als sich 10->12 eingestellt habe. Dann ist jedoch die Box, die ich ursprünglich auf 12 hatte auf 15 gesprungen. Das war dann für meinen Zweck etwas zu laut. Ich bräuchte eine relative Lautstärkenanpassung, wie 5->6, 10->12, 20->24. Das bekomme ich aber mit dem Plugin irgendwie nicht hin. Im Anhang ist übrigens die Meldung, die ich erhalte, wenn das Plugin aktiviert ist und man einen Player Synchronisiert (ca. 10s nach der Synchronisierung) An einem Player habe ich die Meldung allerdings noch nicht gesehen.
Dateianhänge
Screenshot_2020-07-19-10-29-51-423_com.angrygoat.android.squeezectrl.jpg
Mit freundlichen Grüßen
HKNBG
karlek
Moderator
Beiträge: 2098
Registriert: 2. November 2011 12:35
SqueezeBox: Touch
SqueezeBox: Radio
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox: Transporter
SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)

Re: Sync Options Plugin

Beitrag von karlek »

Ich habe jetzt noch nicht großartig getestet, aber bei zwei Radios ging es auch bei Werten unter 10.
Das hier habe ich im Plugin gefunden:

Code: Alles auswählen

my $ratio = $val / $oldVolume;
...

Code: Alles auswählen

my $new = int(($pold * $ratio) + 0.5);
Also wird im selben Verhältnis (aufgerundet) erhöht.
Damit ist klar, dass es bei 5->6 (20%) 12->15 (14,4 aufgerundet) ergibt.

Die folgende Anmerkung im Code (vor der zweiten Zeile oben) dürfte für Dich von Interesse sein:
# TODO - the below calculates based on the "volume" pref's visible value (0-100)
# but it might be better to calculate based on attenuation (-NN dB to 0 dB)
# since at least Boom (also Radio?) attenuates more at lowest visible values than Touch/Classic/etc.
Die letzte Zeile bedeutet, dass das Signal bei der Boom bei niedrigen Werten stärker abgeschwächt wird, als bei Touch oder Classic.
Ich schätze, beim Radio ist es nicht so, obwohl Peter es vermutet, sodass der Anstieg bei der Boom größer ist, wenn es von 12 auf 15 geht,
Nichtsdestotrotz könntest Du versuchen, das Aufrunden (+0.5) in Zeile 285 zu löschen. Vielleicht genügt das schon.

Du siehst: es macht einen Unterschied, ob "die Box" eine Boom oder ein Radio ist. ;-)

Edit:
Ich habe mal mit Radio (auf 5) und Boom (auf 12) getestet:
Am Radio 5->6 – an der Boom: 12->13 (? Sollten eigentlich 120% von 12, also 14,4 - aufgerundet 15 sein))
6->8 – 13->18 (4 1/3 wird auf 5 aufgerundet)

Also: bei meinen Paarungen bisher alles eher, wie es sein soll.
Theoretisch ist es natürlich denkbar, dass beim Dividieren von kleinen Differenzen bei kleinen Werten Auslöschungen auftreten, sodass der Quotient dann groß wird. Aber ich kann es mir hier eigentlich nicht vorstellen, kenne Perl dafür aber zu wenig.

Übrigens kam noch etwas bei meinem Studium des Codes heraus:
Wenn der Master-Player Volume-Synchronisation an hat, macht SyncOptions überhaupt keine Lautstärkeanpassung.
Wenn ein untergeordneter Player Volume-Synchronisation an hat, macht SyncOptions nur bei diesem keine Anpassung.
coolio
iPeng Entwickler
Beiträge: 1852
Registriert: 16. Februar 2010 10:25

Re: Sync Options Plugin

Beitrag von coolio »

Alle Squeezeboxen seit der Boom verwenden die Lautstärkekurve der Boom, also sowohl Radio als auch Touch.
Konkret heißt das, es gibt zwei verschiedene Kurven, eine für niedrige Lautstärken, eine für höhere, die schneiden sich an einem Punkt und es gibt sogar einen Lautstärkelevel, wo das Erhöhen der Lautstärke "um 1" tatsächlich zu einer niedrigeren Lautstärke führt.

Das Ganze ist die Hölle, wenn man versucht, die vom Player-Protokoll verwendeten Gain-Werte mit den Laustärkestufen des Steuer-Protokolls zu vereinbaren.
Das macht es nicht gerade einfach, eine relative Lautstärkeregelung einzuführen.
Kommt noch dazu, dass das Ohr das alles nicht so streng logarithmisch wahrnimmt, wie die dB-Skala vermuten lässt (auch einer der Gründe für die Kurve der Boom).

In iPeng - das ja relative Synchronisation der Lautstärke in Playergruppen macht - habe ich eine Mischung aus linearer und prozentualer Regelung (halb/halb gewichtet) und ich glaube, das "Sync Groups"-Plugin macht das auch.
Letztlich ist das Plugin IMHO auch die einzige vernünftige Lösung (außer iPeng natürlich :D ) um die Regelung hinzubekommen. Mit Sync Options hat das nie so richtig funktioniert.
iPeng, die Remote-Control App für iPhone, iPad und iPod touch gibt's unter
http://penguinlovesmusic.de
NEU: Jetzt auch iPeng Party als Gratis-App!
HKNBG
Beiträge: 122
Registriert: 20. April 2020 13:50
SqueezeBox: Boom
SqueezeBox: Boom
SqueezeBox: Radio
SqueezeBox: Radio
SqueezeBox: Touch
SqueezeBox Server läuft auf: Raspberry Pi/Linux

Re: Sync Options Plugin

Beitrag von HKNBG »

coolio hat geschrieben: 20. Juli 2020 02:19 Alle Squeezeboxen seit der Boom verwenden die Lautstärkekurve der Boom, also sowohl Radio als auch Touch.
Konkret heißt das, es gibt zwei verschiedene Kurven, eine für niedrige Lautstärken, eine für höhere, die schneiden sich an einem Punkt und es gibt sogar einen Lautstärkelevel, wo das Erhöhen der Lautstärke "um 1" tatsächlich zu einer niedrigeren Lautstärke führt.

Das Ganze ist die Hölle, wenn man versucht, die vom Player-Protokoll verwendeten Gain-Werte mit den Laustärkestufen des Steuer-Protokolls zu vereinbaren.
Das macht es nicht gerade einfach, eine relative Lautstärkeregelung einzuführen.
Kommt noch dazu, dass das Ohr das alles nicht so streng logarithmisch wahrnimmt, wie die dB-Skala vermuten lässt (auch einer der Gründe für die Kurve der Boom).

In iPeng - das ja relative Synchronisation der Lautstärke in Playergruppen macht - habe ich eine Mischung aus linearer und prozentualer Regelung (halb/halb gewichtet) und ich glaube, das "Sync Groups"-Plugin macht das auch.
Letztlich ist das Plugin IMHO auch die einzige vernünftige Lösung (außer iPeng natürlich :D ) um die Regelung hinzubekommen. Mit Sync Options hat das nie so richtig funktioniert.

Es scheint so, als wenn die Lautstärkennormalisierung mithilfe von Sync Options nicht die Beste Lösung ist. Hättest du vielleicht noch einen Link zu dem IMHO-Plugin. Unter dem Namen finde ich irgendwie kein Plugin ;) . Das Sync Groups-Plugin hört sich eigentlich ganz gut an. Das Plugin hatte ich bereits einmal ausprobiert, als ich den Sleep-Timer überall gleich haben wollte. Das Problem ist eher, dass man dann die Player nur noch über die App oder das Radio steuern kann, wenn man den Player zur Bedienung umstellt. Eine Bedienung über die Boom, was für mich wichtig ist, da der meiste Bestand von mir Booms sind, ist dann ja nicht mehr möglich.

Wie funktioniert denn das ganze über Ipeng. Ich kenne das nur als App für IOS, welche du ja programmiert hast, was für mich dank reinem Android-Handys Bestand, nicht in Frage kommt, wobei ich mir in der App auch nicht so gut eine relative Lautstärke vorstellen kann :D
Mit freundlichen Grüßen
HKNBG
coolio
iPeng Entwickler
Beiträge: 1852
Registriert: 16. Februar 2010 10:25

Re: Sync Options Plugin

Beitrag von coolio »

HKNBG hat geschrieben: 20. Juli 2020 18:04 Es scheint so, als wenn die Lautstärkennormalisierung mithilfe von Sync Options nicht die Beste Lösung ist. Hättest du vielleicht noch einen Link zu dem IMHO-Plugin.
"IMHO" = "In My Humble Opinion" = "Meiner Meinung nach".
Ich meinte das "Geräte Gruppen"-Plugin.
Eine Bedienung über die Boom, was für mich wichtig ist, da der meiste Bestand von mir Booms sind, ist dann ja nicht mehr möglich.
Ah, das wusste ich nicht, die steht bei mir am anderen Ende des Raumes, da bediene ich die immer nur remote.
Ich kenne das nur als App für IOS, welche du ja programmiert hast,
Genau
was für mich dank reinem Android-Handys Bestand, nicht in Frage kommt, wobei ich mir in der App auch nicht so gut eine relative Lautstärke vorstellen kann :D
Doch, geht super. Die App hat einen haupt-Lautstärkeregler, der regelt normalerweise immer die ganze Gruppe. Individuelle Einstellungen kannst Du in der Playerliste machen, das ist aber eher, um die Lautstärke der geräte untereinander anzupassen, die eigentliche Regelung passt dann meist schon, wenn Du keine ganz extremen Werte hast.
Das geht sogar so weit, dass ich damit im Wohnzimmer die Lautstärke von Subwoofer und Lautsprechern ändere, weil ich es einfach nicht geschafft habe, eine Einstellung zu finden, bei der der Woofer über einen breiteren Lautstärkebereich passend zu den LS regelt, wenn man die selbe Quelle verwendet. Jetzt hängen die an unterschiedlichen aber synchronisierten Playern und ich regele die Lautstärke relativ.
iPeng, die Remote-Control App für iPhone, iPad und iPod touch gibt's unter
http://penguinlovesmusic.de
NEU: Jetzt auch iPeng Party als Gratis-App!
HKNBG
Beiträge: 122
Registriert: 20. April 2020 13:50
SqueezeBox: Boom
SqueezeBox: Boom
SqueezeBox: Radio
SqueezeBox: Radio
SqueezeBox: Touch
SqueezeBox Server läuft auf: Raspberry Pi/Linux

Re: Sync Options Plugin

Beitrag von HKNBG »

Das hört sich ja fast schon so an, als wenn die Umsetzung mit der relativen Lautstärke scheitert.
Wenn man das Geräte-Gruppen Plugin benutzt, kann man im Radio einstellen, dass man diese Gruppe steuern möchte. Die Boom ist nur leider etwas zu alt dafür und ist (eigentlich) für die Bedienung von anderen Squeezeboxen nicht attraktiv. Daher kann man dort auch nicht auswählen, dass man die Gruppe steuern möchte. Da die Boom jedoch auf meinem Nachtschrank steht, möchte ich nicht unbedingt jedes Mal, wenn ich das Radio an machen möchte, die App benutzen, oder zur anderen Seite des Zimmers rennen und dann mit dem Radio steuern.

Bezüglich Ipeng hört es sich irgendwie nicht so an, als wenn man dort irgendwie eine relative Lautstärke einstellen kann. Aber da ich ja sowieso kein iPhone/Ipad habe, hilft mir das dann auch nicht weiter😉. Mithilfe des Geräte Gruppen-Plugins sieht es natürlich wieder anders aus. Dann hat man allerdings wieder die Problematik von oben😓
Mit freundlichen Grüßen
HKNBG
karlek
Moderator
Beiträge: 2098
Registriert: 2. November 2011 12:35
SqueezeBox: Touch
SqueezeBox: Radio
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox: Transporter
SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)

Re: Sync Options Plugin

Beitrag von karlek »

coolio hat geschrieben: Doch, geht super. Die App hat einen haupt-Lautstärkeregler, der regelt normalerweise immer die ganze Gruppe. Individuelle Einstellungen kannst Du in der Playerliste machen, das ist aber eher, um die Lautstärke der geräte untereinander anzupassen, die eigentliche Regelung passt dann meist schon, wenn Du keine ganz extremen Werte hast.
Bildschirmfoto 2020-07-20 um 23.41.57.png
Man sieht auf dem Bild, wie man Zugriff auf alle Lautstärkeregler hat.

Du könntest natürlich auch einen Controller auf den Nachttisch legen. Der kann andere Player steuern.
coolio
iPeng Entwickler
Beiträge: 1852
Registriert: 16. Februar 2010 10:25

Re: Sync Options Plugin

Beitrag von coolio »

HKNBG hat geschrieben: 20. Juli 2020 23:04 Bezüglich Ipeng hört es sich irgendwie nicht so an, als wenn man dort irgendwie eine relative Lautstärke einstellen kann.
Ich weiß nicht, wie ich es noch mehr "so anhören" lassen kann, als mehrfach explizit zu schreiben, dass es geht... :shock:
iPeng, die Remote-Control App für iPhone, iPad und iPod touch gibt's unter
http://penguinlovesmusic.de
NEU: Jetzt auch iPeng Party als Gratis-App!
HKNBG
Beiträge: 122
Registriert: 20. April 2020 13:50
SqueezeBox: Boom
SqueezeBox: Boom
SqueezeBox: Radio
SqueezeBox: Radio
SqueezeBox: Touch
SqueezeBox Server läuft auf: Raspberry Pi/Linux

Re: Sync Options Plugin

Beitrag von HKNBG »

karlek hat geschrieben: 20. Juli 2020 23:48
coolio hat geschrieben: Doch, geht super. Die App hat einen haupt-Lautstärkeregler, der regelt normalerweise immer die ganze Gruppe. Individuelle Einstellungen kannst Du in der Playerliste machen, das ist aber eher, um die Lautstärke der geräte untereinander anzupassen, die eigentliche Regelung passt dann meist schon, wenn Du keine ganz extremen Werte hast.
Bildschirmfoto 2020-07-20 um 23.41.57.png

Man sieht auf dem Bild, wie man Zugriff auf alle Lautstärkeregler hat.

Du könntest natürlich auch einen Controller auf den Nachttisch legen. Der kann andere Player steuern.
Also, wenn man bspw. die Squeezebox Küche mit der Lautstärke erhöht, erhöht sich auch (relativ) die Squeezebox im Bad, richtig? Wenn man dann allerdings nicht über Ipeng steuert, ist es nicht mehr so, oder habe ich es falsch verstanden?

Beim Material-Skin sieht die Lautstärkenregelung ähnlich aus, wie bei Ipeng. Da kann man es nicht zufällig machen, oder doch?
Mit freundlichen Grüßen
HKNBG
karlek
Moderator
Beiträge: 2098
Registriert: 2. November 2011 12:35
SqueezeBox: Touch
SqueezeBox: Radio
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox: Transporter
SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)

Sync Options Plugin

Beitrag von karlek »

Nein. Nur der Regler unten ändert die Lautstärke an allen synchronisierten Geräten gleichzeitig.
coolio spricht, wohlgemerkt, von der Realisierung in iPeng im Allgemeinen und nicht für Deinen use case.
Denk nochmal über einen Controller nach...

Edit: Material-> Ausprobieren :)
Antworten