Fix usage of album loudness during playback (#2107)
authorChristoph Paulik <cpaulik@gmail.com>
Sun, 6 Apr 2025 21:25:48 +0000 (23:25 +0200)
committerGitHub <noreply@github.com>
Sun, 6 Apr 2025 21:25:48 +0000 (23:25 +0200)
music_assistant/controllers/streams.py

index ee33fe88ecdf28f9c86088680620d6c1d97cb96b..6733850e633668fc58f2d151906e2e197ddfa52c 100644 (file)
@@ -14,6 +14,7 @@ import shutil
 import urllib.parse
 from collections.abc import AsyncGenerator
 from dataclasses import dataclass, field
+from math import inf
 from typing import TYPE_CHECKING
 
 from aiofiles.os import wrap
@@ -1021,7 +1022,13 @@ class StreamsController(CoreController):
         elif streamdetails.volume_normalization_mode == VolumeNormalizationMode.MEASUREMENT_ONLY:
             # volume normalization with known loudness measurement
             # apply volume/gain correction
-            gain_correct = streamdetails.target_loudness - streamdetails.loudness
+            if streamdetails.prefer_album_loudness and streamdetails.loudness_album not in (
+                inf,
+                -inf,
+            ):
+                gain_correct = streamdetails.target_loudness - streamdetails.loudness_album
+            else:
+                gain_correct = streamdetails.target_loudness - streamdetails.loudness
             gain_correct = round(gain_correct, 2)
             filter_params.append(f"volume={gain_correct}dB")
         streamdetails.volume_normalization_gain_correct = gain_correct