I did test the MR a bit with the game I wrote !9588 for. It's certainly a large improvement but I don't feel like it's rock solid in the "for sure it's not going to be an issue anymore" territory.
I've pushed a new version, which should be much faster. Maybe that's going to solve it?
I pushed them to https://gitlab.winehq.org/Mystral/audio-test-tools. They're still not especially pretty, but they should get the job done.
Thanks, these are very helpful.
As I mentioned in https://gitlab.winehq.org/wine/wine/-/merge_requests/9588#note_127395, the FIR we are currently using is very complex. I'm convinced it's too complex, in fact.
I don't think it's too complex, at 44.1 kHz sampling rate 64-tap is the smallest FIR that provides a good stopband attenuation while keeping the transition band above 20 kHz. It's not even considered "high quality" by modern standards.
Looking at the dsound impulse response on Win10 (e.g. by running "loopback i" and opening the capture.wav file on Audacity) you can see that 8 output samples are non-0 for each impulse, and they're shaped like the first 2 lobes of a sinc i.e. they're very likely using a 4-tap sinc filter.
Wow, I didn't know that. It explains why there are games that require fast resampling. MS probably changed the resampling algorithm in Vista and the games were released after that without proper testing on XP. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9928#note_129022