https://bugs.winehq.org/show_bug.cgi?id=57936
Bug ID: 57936 Summary: Incorrect audio volume level read by app from the system - 100% all the time. Product: Wine Version: 10.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: greblus@gmail.com Distribution: ---
Hi guys.
I'm trying to use Yousician on Linux and it works amazingly well, maybe even smoother than on W11, but there is one small problem: It's impossible to preform latency calibration as the app is checking global system volume, if it's too high, it disallows calibration to prevent hearing damage if the sounds it produces are too loud.
On wine and wine-staging the volume in Yousician is always 100%. I use pipewire-pulse backend and plasma-pa, I'm changing volume from plasma settings or alsamixer, or pulsemixer but it stays 100% in Yousician.
Hope there's an easy fix for it :).
Regards, W.
http://bugs.winehq.org/show_bug.cgi?id=57936
--- Comment #1 from Wiktor Grebla greblus@gmail.com --- I tried to run Yousician with WINEDEBUG=+mmdevapi which showed me these:
02b4:trace:mmdevapi:AEV_GetMasterVolumeLevelScalar (000000006D583FB0)->(000000006E4AEBA0) 02b4:fixme:mmdevapi:AEV_GetMasterVolumeLevelScalar stub
and this API I found in: wine/dlls/mmdevapi/audiovolume.c
static HRESULT WINAPI AEV_GetMasterVolumeLevelScalar(IAudioEndpointVolumeEx *iface, float *level) { TRACE("(%p)->(%p)\n", iface, level); if (!level) return E_POINTER; FIXME("stub\n"); *level = 1.0; return S_OK; }
So this stub is in fact returning 1.0 (100%).
Could this be modified to 0.8 upstream? :)
I don't want to re-compile wine on each update, alternatively I could hexedit 1.0f to 0.8f, but I've problem finding correct dll, any hint?
Cheers, W.
http://bugs.winehq.org/show_bug.cgi?id=57936
--- Comment #2 from Wiktor Grebla greblus@gmail.com --- Allright, after some further tests it turned out that the *level in AEV_GetMasterVolumeLevelScalar() stub has to be set to 0.7 (Yousician's latency calibration requires 70% or less) and calibration is working correctly so I can use Yousician with my bluetooth speaker :)
I don't know if it's acceptable, but changing it upstream would certainly make my life easier :). Until then I'll be overwriting /usr/lib/wine/x86_64-windows/mmdevapi.dll with my modified version after each update of wine.
And BTW - thanks to all of you guys for making wine so great, It's one of the most amazing examples of technology I've seen in my life :)
http://bugs.winehq.org/show_bug.cgi?id=57936
Wiktor Grebla greblus@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|10.2 |10.7
http://bugs.winehq.org/show_bug.cgi?id=57936
Wiktor Grebla greblus@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|10.7 |10.8