http://bugs.winehq.org/show_bug.cgi?id=10910
Raymond superquad.vortex2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |superquad.vortex2@gmail.com
--- Comment #45 from Raymond superquad.vortex2@gmail.com 2010-04-08 22:03:54 --- (In reply to comment #38)
The PA have to know what exactly is the problem and Maarten isn't sure where it is lying..
Refer to the post by the author of winepulse
http://old.nabble.com/Wine-PulseAudio-Driver-tt19701227.html#a19778396
My problem is that WaveIn / WaveOut devices are supposed to be able to
support multiple streams if the hardware allows it, however it is impossible to support this currently as all MDRV_Message gives us is the device id the message is for (the only arguments to a WODM_PAUSE is the device id for instance.) This makes multiple streams impossible and therefor waveout drivers only support one stream per device. wineesd.drv gets around this by staticly making 10 waveout and 10 wavein devices, all effectively the same.
The current problem of winealsa.drv is not support multiple streams ( minimum 16 voices for dsound ) , this is also true for the current implementation of winepulse.drv too since pulseaudio only support per application volume control but those dsound program need 16 voices
the best performance path should be wine implement 16 dsound voices for those hardware mixing sound card with per voice volume controls ( the full hardware acclearation mean the hardware can perform pitching for the doppler effect and use DSP to provide hardware attenuation/gain the digital audio signal for the left/right channel (panning)
most of the so called hardware mixing sound cards support hardware wavetable synth since they all support at least 16 midi voices
any path involve software mixing cannot be regarded as the optimal path