Sonos steuern

Begonnen von Will, 05 Januar 2013, 15:51:12

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi Stefan,

überschnitten... Schön, dass es geht :)

Grüße
Reinerlein

Masterfunk

#1576
Hallo,

bin der Verzweiflung nahe. Nach dem (zwangweisen) Umzug auf neue Hardware habe ich Probleme mit dem Sonos Modul.
Nach dem Starten von fhem läuft alles einwandfrei, aber nach kurzer Zeit ist keine Steuerung, Sprachdurchsage etc. möglich.
Das Problem kann dann auf folgende Weise behoben werden:

1. Neustart fhem
2. Modify der Definition von Sonos (ohne eine Änderung vorzunehmen)
3. Warten... NAch einer Zeit scheint er den UPNP Server wieder zu starten, und dann gehts

Letzteres ist auch im Log zu sehen:


2015.02.08 14:06:52 4: SONOS0: Identical filecontent for './www/images/default/SONOSPLAYER/Sonos_Kueche_AlbumArt.jpg'!
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:NormalAudio:1'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:Title:Light to the world feat.Al Jerreau'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:Artist:Mario Biondi'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:Album:Sun'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:OriginalTrackNumber:10'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:AlbumArtist:Mario Biondi'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextTrackDuration:0:07:14'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextTrackURI://DS/Musik/Musik/Mario%20Biondi/If/11%20-%20Mario%20Biondi%20-%20Winter%20in%20America.mp3'
2015.02.08 14:06:52 5: SONOS0: Received from UPnP-Server: 'ProcessCover:RINCON_000E58F171D401400_MR:1:/getaa?u=x-file-cifs%3a%2f%2fDS%2fMusik%2fMusik%2fMario%20Biondi%2fIf%2f11%20-%20Mario%20Biondi%20-%20Winter%20in%20America.mp3&v=106:http://192.168.10.150:1400'
2015.02.08 14:06:53 4: SONOS0: Transport-Event: Bilder-Download: SONOS_DownloadReplaceIfChanged('http://192.168.10.150:1400/getaa?u=x-file-cifs%3a%2f%2fDS%2fMusik%2fMusik%2fMario%20Biondi%2fIf%2f11%20-%20Mario%20Biondi%20-%20Winter%20in%20America.mp3&v=106', './www/images/default/SONOSPLAYER/Sonos_Kueche_NextAlbumArt.jpg');
2015.02.08 14:06:54 4: SONOS0: Identical filecontent for './www/images/default/SONOSPLAYER/Sonos_Kueche_NextAlbumArt.jpg'!
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextTitle:Winter In America'
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextArtist:Mario Biondi'
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextAlbum:If'
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextAlbumArtist:Mario Biondi'
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextOriginalTrackNumber:11'
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'SetCurrent:TrackPosition:0:01:40'
2015.02.08 14:06:54 5: SONOS0: Received from UPnP-Server: 'CurrentBulkUpdate:RINCON_000E58F171D401400_MR'
2015.02.08 14:07:20 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:07:52 3: Can't connect to socket!
2015.02.08 14:07:52 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:08:16 5: SW: 446f576f726b3a52494e434f4e5f30303045353846313731443430313430305f4d523a70617573653a0d0a
2015.02.08 14:08:22 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:08:54 3: Can't connect to socket!
2015.02.08 14:08:54 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:09:10 5: SW: 446f576f726b3a52494e434f4e5f30303045353846313731443430313430305f4d523a706c61793a0d0a
2015.02.08 14:09:24 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:09:56 3: Can't connect to socket!
2015.02.08 14:09:56 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:10:26 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:10:58 3: Can't connect to socket!
2015.02.08 14:10:58 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:11:00 5: SW: 446f576f726b3a52494e434f4e5f30303045353846313731443430313430305f4d523a706c61793a0d0a
2015.02.08 14:11:04 5: SW: 446f576f726b3a52494e434f4e5f30303045353846313731443430313430305f4d523a706c61793a0d0a
2015.02.08 14:11:28 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:12:00 3: Can't connect to socket!
2015.02.08 14:12:00 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:12:30 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:13:02 3: Can't connect to socket!
2015.02.08 14:13:02 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:13:32 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:14:04 3: Can't connect to socket!
2015.02.08 14:14:05 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:14:35 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:15:07 3: Can't connect to socket!
2015.02.08 14:15:07 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:15:37 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:16:09 3: Can't connect to socket!
2015.02.08 14:16:09 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:16:39 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:17:11 3: Can't connect to socket!
2015.02.08 14:17:11 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:17:41 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:18:13 3: Can't connect to socket!
2015.02.08 14:18:13 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:18:43 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:19:15 3: Can't connect to socket!
2015.02.08 14:19:15 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:19:45 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:20:17 3: Can't connect to socket!
2015.02.08 14:20:17 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:20:47 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:21:19 3: Can't connect to socket!
2015.02.08 14:21:19 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:21:49 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:22:21 3: Can't connect to socket!
2015.02.08 14:22:21 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:22:47 5: SW: 446f576f726b3a52494e434f4e5f30303045353846313731443430313430305f4d523a706c61793a0d0a
2015.02.08 14:22:51 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:23:23 3: Can't connect to socket!
2015.02.08 14:23:23 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:23:53 4: SONOS0: Got correct Answer from Subprocess...
2015.02.08 14:24:12 1: SONOS0: Nothing could be read from TCP-Channel (the first level) even though the Read-Function was called.
2015.02.08 14:24:12 5: SW: 646973636f6e6e6563740a
2015.02.08 14:24:12 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 8 Sekunde(n) darauf...
2015.02.08 14:24:20 3: Opening Sonos device localhost:4711
2015.02.08 14:24:20 3: Sonos device opened
2015.02.08 14:24:21 5: SONOS0: SetData:Sonos:5:icmp::Sonos_Kueche,Sonos_Schlafzimmer,Sonos_Wohnzimmer:RINCON_000E58F171D401400_MR,RINCON_000E58C27EF401400_MR,RINCON_000E58A9E70A01400_MR
2015.02.08 14:24:21 5: SW: 536574446174613a536f6e6f733a353a69636d703a3a536f6e6f735f4b75656368652c536f6e6f735f5363686c61667a696d6d65722c536f6e6f735f576f686e7a696d6d65723a52494e434f4e5f30303045353846313731443430313430305f4d522c52494e434f4e5f30303045353843323745463430313430305f4d522c52494e434f4e5f30303045353841394537304130313430305f4d520a
2015.02.08 14:24:21 5: SONOS0: SetValues:SONOS:targetSpeakURL=%5C%5C192.168.10.80%5CSonosSpeak|INTERVAL=30|targetSpeakDir=%2Fmnt%2FSonosSpeak|NAME=Sonos
2015.02.08 14:24:21 5: SW: 53657456616c7565733a534f4e4f533a746172676574537065616b55524c3d2535432535433139322e3136382e31302e3830253543536f6e6f73537065616b7c494e54455256414c3d33307c746172676574537065616b4469723d2532466d6e74253246536f6e6f73537065616b7c4e414d453d536f6e6f730a
2015.02.08 14:24:21 5: SONOS0: SetValues:RINCON_000E58F171D401400_MR:SleepTimerVersion=0|AlarmListVersion=RINCON_000E58A9E70A01400%3A32|ZoneGroupID=RINCON_000E58F171D401400%3A__|AlarmList=%7B%7D|OutputFixed=0|AlarmListIDs=|getAlarms=1|Volume=7|Balance=0|Treble=0|currentAlbum=Sun|fieldType=|currentTitle=Light%20to%20the%20world%20feat.Al%20Jerreau|location=http%3A%2F%2F192.168.10.150%3A1400%2Fxml%2Fdevice_description.xml|Mute=0|Loudness=1|HeadphoneConnected=0|NAME=Sonos_Kueche|Bass=0|roomNameAlias=Kueche|roomName=Kueche|currentArtist=Mario%20Biondi|roomIcon=kitchen|minVolume=0
2015.02.08 14:24:21 5: SW: 53657456616c7565733a52494e434f4e5f30303045353846313731443430313430305f4d523a536c65657054696d657256657273696f6e3d307c416c61726d4c69737456657273696f6e3d52494e434f4e5f303030453538413945373041303134303025334133327c5a6f6e6547726f757049443d52494e434f4e5f30303045353846313731443430313430302533415f5f7c416c61726d4c6973743d2537422537447c4f757470757446697865643d307c416c61726d4c6973744944733d7c676574416c61726d733d317c566f6c756d653d377c42616c616e63653d307c547265626c653d307c63757272656e74416c62756d3d53756e7c6669656c64547970653d7c63757272656e745469746c653d4c69676874253230746f253230746865253230776f726c64253230666561742e416c2532304a6572726561757c6c6f636174696f6e3d687474702533412532462532463139322e3136382e31302e31353025334131343030253246786d6c2532466465766963655f6465736372697074696f6e2e786d6c7c4d7574653d307c4c6f75646e6573733d317c4865616470686f6e65436f6e6e65637465643d307c4e414d453d536f6e6f735f4b75656368657c426173733d307c726f6f6d4e616d65416c6961733d4b75656368657c726f6f6d4e616d653d4b75656368657c63757272656e744172746973743d4d6172696f25323042696f6e64697c726f6f6d49636f6e3d6b69746368656e7c6d696e566f6c756d653d300a


Ich hab eauch schon das Modzul gelöscht und neu angelegt. Gleicher Effekt.

Infos zur Hard/Software

fhem auf ubuntu Server 14.04  auf ESXi 5.5 (Vorher 4.1)

Gruß Detlef

Masterfunk

Und gleich noch ein "kleines" Problemchen.

Ich lasse mir über einen FS20 Taster die Uhrzeit und die Temperatur via Sonos ansagen.

Internals:
   DEF        FL_Taster26:toggle {
my $Temperatur = ReadingsVal("Netatmo_AC_1", "temperature", undef);
my $Luftfeuchte = ReadingsVal("Netatmo_AC_1", "humidity", undef);
my $Maxtemp = ReadingsVal("DWD", "c_tMaxAir24", undef);
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;

   if ($Temperatur ne "undefined"){
      fhem("define Wetter_Ansage_A at +00:00:01 set Sonos_Kueche Speak 45 de Es ist $hour:$min Uhr . Aktuell beträgt die Aussentemperatur $Temperatur Grad.");
   }
   else {
      fhem("define Melde_Ansage_B at +00:00:01 set Sonos_Kueche Speak 45 de Es liegen keine Wetterdaten vor.");
   }
}
   NAME       FL_T26
   NOTIFYDEV  FL_Taster26
   NR         241
   NTFY_ORDER 50-FL_T26
   REGEXP     FL_Taster26:toggle
   STATE      active
   TYPE       notify
Attributes:
   room       System


Wenn jetzt die Uhrzeit einstellige Minuten hat, sagt das System z.B. "Es ist 14 zu 2 Uhr....".
Das liegt wohl daran das $min nur eine einstellige Zahl ausgibt. Wie kann ich da grundsäzlich zwei stellen ausgeben (Also z.B. 02)?

Gruß Detlef

Loredo

Ich hätte noch einen Vorschlag für die Nutzung von Benachrichtigungen:


Um mehr Aufmerksamkeit für eine Durchsage zu bekommen und damit man sich ggf. nicht so erschrickt, fände ich es toll wenn man vorab einen Ton oder eine Tonfolge abspielen könnte. Also ähnlich wie am Flughafen oder Bahnhof  ;D
So einen Ton hätte ich als MP3 oder WAV, das Speak-Kommando könnte es mit dem von Google geholten MP3 ja dann zusammenschnippeln und die zusammengesetzte Datei abspielen lassen.


Derzeit setze ich meinen Texten immer ein "Hinweis... " vorne dran. Aber die Sprachsynthese spricht das sehr komisch aus und bei einer Gruppendurchsage wird manchmal auch der erste Teil von "Hinweis" abgeschnitten. Das könnte man halt mit einem Pre-Voicefile auch beheben, indem man dort selbst einfach eine halbe Sekunde stille oder so mit einfügt.


Wäre es außerdem denkbar, dass man Google TTS noch die Geschwindigkeit mitgibt? Manchmal spricht sie etwas lahmarschig und ich würde ihr gerne etwas Feuer unterm Hintern machen können  ;)






Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Zitat von: Masterfunk am 08 Februar 2015, 14:51:22
Das liegt wohl daran das $min nur eine einstellige Zahl ausgibt. Wie kann ich da grundsäzlich zwei stellen ausgeben (Also z.B. 02)?

Habe ich bei mir so gelöst:
my $uhrzeit = sprintf("%02d:%02d Uhr",$hour,$min);

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Reinerlein

Hallo zusammen,

@Detlef: Du müsstest mal die Konsolenausgabe des SubProzesses ermitteln und hier posten (also die "andere" Seite der Kommunikation).
Irgendwas macht der SubProzess nicht richtig... Vielleicht hat der Prozess nach deinem Umzug keine Root-Rechte mehr? Du verwendest icmp als PingType, der braucht diese Rechte...
Was auch immer... man sieht es in dem anderen Log :)

@Julian: Das habe ich mir auch auch schon mal gedacht. Auf meiner Agenda war nur die Searchlist-Geschichte weiter oben :) Ich denke da auf jeden Fall mal drauf rum...
Leider habe ich zur Sprechweise der Google-Dame keinen Parameter gefunden... Wenn du einen findest, dann her damit...
Momentan rufe ich einfach folgende URL auf: http://translate.google.com/translate_tts?tl=de&q=Hier%20dann%20der%20Text

Grüße
Reiner

der-Lolo

ich möchte keinen Gong..!

Loredo

Zitat von: Reinerlein am 08 Februar 2015, 17:05:47
@Julian: Das habe ich mir auch auch schon mal gedacht. Auf meiner Agenda war nur die Searchlist-Geschichte weiter oben :) Ich denke da auf jeden Fall mal drauf rum...



Super!  8)


Zitat von: Reinerlein am 08 Februar 2015, 17:05:47
Leider habe ich zur Sprechweise der Google-Dame keinen Parameter gefunden... Wenn du einen findest, dann her damit...
Momentan rufe ich einfach folgende URL auf: http://translate.google.com/translate_tts?tl=de&q=Hier%20dann%20der%20Text



Hm ja das stimmt, hatte ich damals anders gelöst (siehe hier für Inspiration: https://github.com/jpawlowski/freeswitch-sounds-tts/blob/master/make_sounds.sh#L44-L163)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Zitat von: der-Lolo am 08 Februar 2015, 17:13:35
ich möchte keinen Gong..!


Zwingt dich ja keiner  ;)
Man kann ja dann jede beliebige Sound-Datei nehmen, die man möchte. Du kannst auch das Plopp von Michael Schanze nehmen, wenns dir besser gefällt  ;D
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

der-Lolo

Ich möchte auch keinen plop, für mich ist die funktion so wie sie ist vollkommen in Ordnung.

justme1968

die idee finde ich klasse... um es komplett zu machen aber nicht vor sondern auch nach der ansage.

und wenn wir gerade bei durchsagen sind: ich mache die durchsagen zur zeit mit TYPE=SONOSPLAYER auf alle player auf einmal. ich bräuchte aber eigentlich unterschiedliche lautstärken. wenn die volume angabe für die play1 laut genug ist kippt jemand neben den grossen boxen am connect amp aus den latschen :).

mit mehreren kommandos habe ich aber das gefühl das die verzögerung grösser wird.

ein attribut um einen offset zu hinterlegen der mit der volume angabe beim speak kommando verrechnet wird wäre vielleicht hilfreich.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

der-Lolo

Oder eine Lautstärke speziell für Speak, an jedem Player.
Oder gibt es jemanden der je nach ereignis oder Uhrzeit unterschiedliche speak lautstärken benutzt?

Reinerlein

Hallo,

also mir schwebt da was vor, dass man an beliebigen Stellen im Text Soundfileeinschübe machen kann. z.B.:

set Sonos_Wohnzimmer Speak 20 de |achtung.mp3|Die Waschmaschine ist |trommelwirbel.mp3| fertig!|ende_der_durchsage.mp3|
Das ist aber alles noch in Kladde gedacht...

Mich würde es ehrlich gesagt wundern, wenn das in mehreren Befehlen soviel langsamer sein soll. Fhem macht daraus dann doch sowieso mehrere Aufrufe für jedes Device einzeln... Man spart also nur die Zeit, die Fhem braucht, um zu erkennen, dass es einen Befehl ausführen soll.... das kann ja eigentlich nicht soo lange dauern...

Mit den verschiedenen Lautstärken wäre wahrscheinlich ein Grundwert pro Device für Sprachausgabe der dann zur Laufzeit mit dem an Speak übergebenen Wert verrechnet wird, das Beste. Das können ja dann auch negative Werte sein. Da muss sich dann jeder selber sozusagen einen "Gain" ermitteln, und muss darauf achten, das da keine negativen Werte am Player ankommen... das wird sonst ziemlich leise :)

Ist damit alles erschlagen, oder habe ich was vergessen?

Grüße
Reiner

Spartacus

Hallo,
ich habe mal eine Frage zu GroupVolume. Mir ist die Funktionsweise nicht ganz klar.
Ich habe eine Gruppe aus Wohnzimmer und Büro gebildet, Wohnzimmer ist der GruppenMaster.
Dann habe ich Wohnziimmer mit set Wohnzimmer Volume 20 und  Büro auf set Buero Volume 15 gesetzt.

Habe nun mit set Wohnzimmer GroupVolume 10 versucht die Lautstärke der Gruppe zu ändern.

Allerdings verstehe ich das Ergebnis nicht ganz.
Wohnzimmer hat nun Volume 11
Büro hat nun Volume 9
Was passiert da genau? Kann man auch GroupVolume mit dem "Fade"-Parameter  benutzen? also quasi
set Wohnzimmer GroupVolume 10 1
Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Reinerlein

H Christian,

also FadeIn geht dort nicht, das bietet Sonos meines Wissens nach nicht an. Dafür wird beim Aufruf von "Volume" intern umgeschaltet auf den Aufruf von "RampToVolume". Du könntest natürlich einfach mal versuchen eine solche Rampe auf einer Gruppe auszuführen. Ich weiss ehrlich gesagt nicht, was da passieren wird :)

Aber du musst vor dem ersten Setzen von GroupVolume erstmal das Lautstärkeverhältnis deiner Gruppe festnageln.
Das machst du mit:

set Wohnzimmer SnapshotGroupVolume
Eine genauere Beschreibung gibt es im Wiki unter http://www.fhemwiki.de/wiki/SONOS#Set-Befehle_an_den_SONOSPLAYER, und dort dann unter den Gruppenbefehlen...

Aber im Prinzip sind die Lautstärken ja nicht soo falsch. Er muss ja irgendwie die Lautstärkenverhältnisse mit reinrechnen, es wird also versucht, alle Lautstärken über das gleiche Verhältnis (daher der Snapshot) zu verändern...

Grüße
Reiner