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 {