HW mixing is useless though. It was nice on my 486. That Gravis Ultrasound rocket the boat. But today, mixing can be done on the CPU so easily, it's not worth having it in HW.
The only reason I even joined the discussion in this thread are the listed 5ms vs. 25ms audio latency numbers (assuming that they are credible of course). They make no sense. OK, we are adding software mixing, so we need some extra buffering in the pipeline. But why the latency is getting five times worse and not just twice? Is it because audio mixing in userspace is broken by design? Wouldn't it be natural to do the mixing in the hard irq handler, which is responsible for swapping dma buffers or something like this?
when i play the guitar and connect the pickup/mic to my usb soundcard, i can have the distorted/chorused/whatever sound on my headphones with no audible latency using jack and rakarrack. Same goes for playing a midi keyboard with zynaddsubfx or singing/playing along to a real-time-pitch-shifted youtube video. Can someone please tell me in how far the audio latency on linux is inacceptably worse than on other platforms? (ok pulse is crap and jack is a pain to configure, but that has nothing to do with linux in general having a high latency, does it?)
That results in the game taking exclusive control of the card. Nothing else will be audible. Which is a disaster. Unless you talk to the dmix device. In that case, you're back to high latency.
The latency in dmix is far less than the latency in Pulse Audio, at a level suitable for gaming. It would be interesting to see actual data on the difference, but one of the first things I do before gaming on Linux is uninstall Pulse and configure dmix. That, and I suppose Wine support for Pulse hasn't been as stable, but I assume that has changed by now.
Does anyone remember the old KDE aRts sound server, which was a common culprit for broken games due to its latency? Eventually people got sick of it and it was dropped. Pulse has always seemed like the same type of tech to me, but then again Jack doesn't seem to have these problems. Maybe they'll prove me wrong.
What happened to Jack is that in FOSS, some devs , instead of help to iron out the last remaining major bugs of something just love fork or simply love to me-me-me idea is better than yours and create something more broken than the thing that they are supposed to solve.