( locsemege | 2020. 10. 23., p – 19:12 )

Ez a patch-em jobbnak tűnik, azt hiszem, ennél maradok:

diff -ur pipewire-0.3.13/src/modules/module-protocol-pulse/message.c pipewire/src/modules/module-protocol-pulse/message.c
--- pipewire-0.3.13/src/modules/module-protocol-pulse/message.c 2020-10-23 16:52:07.426393834 +0200
+++ pipewire/src/modules/module-protocol-pulse/message.c        2020-10-23 17:44:19.524043313 +0200
@@ -32,7 +32,7 @@
        if (vol <= 0.0f)
                v = VOLUME_MUTED;
        else
-               v = SPA_CLAMP((uint64_t) lround(cbrt(vol) * VOLUME_NORM),
+               v = SPA_CLAMP((uint64_t) lround(log2(vol + 1.0f) * VOLUME_NORM),
                                VOLUME_MUTED, VOLUME_MAX);
        return v;
 }
@@ -40,7 +40,7 @@
 static inline float volume_to_linear(uint32_t vol)
 {
        float v = ((float)vol) / VOLUME_NORM;
-       return v * v * v;
+       return pow(2.0f, v) - 1.0f;
 }

 struct descriptor {