http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #54 from Raymond superquad.vortex2@gmail.com 2010-12-21 20:27:22 CST --- (In reply to comment #53)
(In reply to comment #51)
The jack server is playing the role of kernel audio mixer in linux but it just mixing all the jack clients at the server 's sample rate only
Correct. However, Wine mixes all secondary buffers of the application into primary before sending the result to jack. And while mixing secondary buffers into primary, Wine resamples (badly, using zero-order hold) if there is a mismatch in the sample rates of primary and secondary buffers.
it is wine specifc feature which need user to select the default sample rate, default bits, so winecfg should limit the default sample rate to jack server sample rate and default bits since winejack does not support 8bits after user selecting winejack
since wine can only use one driver at a time , winecfg should use radio button instead of checkbox in driver selection
Does foobar2000 use the primary buffer or DSCAPS_LOC_SOFTWARE/DSCAPS_LOC_HARDWARE for a software/hardware secondary buffer ?
The primary buffer must use the hardware supported rate (i.e. the jack server 's sample rate when using winejack )
There are two important issue in software mixing of the secondary buffer , mixing at different rate and mixing with software atten
if you look at winejack.drv 's source code, you will notice that winejack does not really support dsound
emulating using waveoutdevice does not work unless wine implement software atten during mixing of the secondary buffers because winjack does not have any volume control for each waveout stream
I guess the wine developer expect the linux audio system provide the volume control "software atten" to implement SetvolumePan() of dsound buffers
1) winealsa.drv
For those hardware mixing sound cards use IFACE_PCM control of the sound card
http://git.alsa-project.org/?p=alsa-tools.git;a=blob;f=hwmixvolume/README
a softvol control for each dmix stream for those non hardware mixing sound cards
2) winepulse.drv - provide software volume control for each PA stream but winepulse drop dsound support in version 0.27
Otherwise they have to implement software atten/mixing in dsound or use openal to emulate ds3d