Funny enough, the ASIO4all drivers sound worse than the MME/DirectX drivers
That can't be. Something is broken if this is the case, or else you interpret a colouring effect as good that actually should be interpreted as signal degradation.
ASIO drivers (like ALSA drivers on Linux) should give the DAW straight access to the interface's DACs. Thus the DAC produces exactly the sound the DAW intends to, which because we're purely in the digital realm here, can be said to be perfect reproduction.
The main flip side is that this relies on giving the DAW complete control over the parameters like buffer size and sample rate and that nobody else messes with the contents of those buffers while the DAW writes to them, i.e. the output will be blocked for other applications. By contrast, sound servers like MME/DirectSound/XAudio2, CoreAudio or PulseAudio enable multiple applications to use the same DAC at a time. They do this by resampling, re-chunking and mixing the streams, which is not really a lossless process. Audiophiles for this reason often say things like “never use PulseAudio, because resampling is evil”. Frankly I consider this a bit silly, because properly implemented Lanczos resampling is virtually lossless for all audible frequencies (provided neither source nor sink use less than 44.1 kHz). In fact the master of modern records will usually be resampled already anyway, e.g. mixed in 96 kHz but distributed in 44.1 kHz.
So on a properly working system, ASIO and XAudio2 should effectively give the same output, at least any difference would be negligible compared to the differences that room acoustics or different speakers make. The main advantage of ASIO is, as you say, that it allows lower latency, because there's no extra processing.
I could think of some reasons why you might nevertheless think that XAudio2 gives better output:
- You have set the latency too low? Obviously, the processor load is not only due to a sound-servers resampling; if you're mixing a record it will probably be mainly due to effect plugins. And if the CPU is already quite loaded, it will not always be able to finish all intermediate buffers so quickly before the next DAC interrupt; that's then a buffer underflow. Normally, this results in a distinctive drop-out that indicates what the problem is, but I could imagine that Ableton, being optimised for live performance, does something to make it still work smoothly albeit with degraded fidelity.
For mixing and mastering, it generally makes sense to set the latency to something high: 512, 1024 or 2048 samples. XAudio2 will use similarly large buffers behind your back anyway, so there the problem doesn't arise.
- Your interface doesn't really support the sample rate you try to use it at? Maybe the manifacturers only tested it properly at 44.1 kHz, then if you use it at 48 kHz there is some ringing of a not properly configured filter. With the XAudio2 drivers this would not be an issue because the signal is resampled beforehand, and as I said this can actually be done with quite good precision. ASIO on the other hand would force the DAC to run at your selected rate.
- Your mix is too quiet? The old problem: louder sounds better. With ASIO, you must make sure your mix master actually stays withing the 0dB limit, and that's then sent straight to the DAC. Whereas a sound server, because of the processing it does, will actually have some limiter built in, and extra loudness controls. So it's possible that when using XAudio2, your actually listening to the signal too loud, louder than you can render it into a file. This may then appear to sound better, but really it doesn't, and if you mix or master this way the end result will be worse.