Handling audio in such a way that both professional audio-centric users and casual users wondering why they can't hear the IM beep while playing MP3s are happy is actually fairly tricky. In the early days it was, naturally, quite easy. Your application wrote to the hardware. The hardware reacted pretty much instantly. No biggie. But multitasking threw a wrench in that.
See, hardware needs to be well optimized if you want it to sound good and be cheap. Thus, the hardware will generally have one set of outputs. But your MP3 player will want to output sound in one format... and your IM client in another one... and video games in a third.
Thus, most good modern versions of windows (Meaning Win2k and WinXP) have an unpleasant kernel mixer that ensures that, no matter what audio you play in which applications, it will play in concert with everything else. This comes at a cost, of course, generally giving you quite unpleasant high latency. Nobody inside of Microsoft realized that this would be a problem until the game programmers griped. So they made an API called DirectSound to shut up the game programmers.... which solved nothing for anybody else.
The standard for pro audio is ASIO. It's actually kind of a crappy API with all sorts of limits. But since it's the standard and it works, that's what everybody uses. Eventually, Microsoft made WDM drivers that can actually be made to work at a similarly low latency to ASIO.
Naturally, because Creative/E-mu/Ensoniq likes to make money, they make sure that the "cheap" cards don't have ASIO drivers and the "expensive" cards do. And because most everybody in the consumer space doesn't want to spend more money than necessary on drivers, they don't bother making ASIO drivers at all.
Enter a nice piece of software called ASIO4ALL. It makes anything with a WDM driver (pretty much any soundcard) and makes it work with ASIO. In fact, because ASIO doesn't let you have more than one device active at a time, people with proper ASIO drivers can benefit from ASIO4ALL.
Mac users, of course, have the giggles at this point. Because it all just works on the mac.
I thought there was a bug in ASIO4ALL, but it turns out that there's a bug in my Realtek drivers because it happens both in WDM and ASIO modes. If I'm running an audio application and it crashes, it bluescreens the computer. Which gives me flashbacks to the bad old days of Windows 98 and Mac OS 7.
There's nothing especially wrong with the Realtek audio on my computer. It's not annoyingly noisy, has the right sort of inputs and outputs, and doesn't crash in "normal" modes. Now, I love excuses to play with new technological toys as much as anybody, but it looks like every single reasonably priced musician-oriented audio interface has people griping about crappy drivers and poor sound quality, so it's often times hard to figure out what the reasonable options are... And, from not having a clear product to point at as the one to get, there's basically no reason to think about upgrading.
For example, Tweakheadz links to the Tascam US1641 on the front page... but there's a long thread on the REAPER forum about how much it sucks. Which is too bad, because it otherwise would let me just plug all of the audio devices I own or might acquire at some point in the future into it and avoid needing a patchbay or mixer.
I've updated the drivers to the latest from Realtek's site (the README was astonishingly useless... it's a 209 page PDF that mostly says that the changes are "Customizations" in each version) and that didn't help. Some folks online have suggested that you remove the drivers entirely and just use the Windows Update version of the drivers, it'll work just fine.
I'm planning to rebuild my computer. At the very least, my main hard drive is awfully old and needs to be retired, which means I need to reinstall everything from scratch. So I'll try it then. Or I'll actually replace my 5-year-old motherboard and get one that doesn't use Realtek audio. On the other hand, since REAPER is astonishingly stable, I pretty much just leave REAPER in Windows Audio mode unless I'm recording tracks and that works fairly well at the moment.