Look out, PCs: you’re getting the audio engine from the Xbox 360. That’s the message from Microsoft, which abandoned the old DirectSound APIs in Windows Vista. They’ve got a new audio system called XAudio2 ready and waiting, however, and it looks good — though it also begs the question, why didn’t Microsoft ship it with Windows Vista out of the gate? (Instead, Microsoft actually suggested users turn to the OpenAL open audio architecture, and now appears to be getting XAudio2 ready for Vista SP1.)
Geek alert: the rest of this post may be interesting only to developers…
XAudio2 does look more ambitious than many other audio architectures in that it includes programmable DSP effects baked right in, plus some nice mixing and spatialization features. This stuff is largely aimed at gaming, but it could yield some interesting music applications, as well:
- Multi-channel and surround-sound support with full per-channel volume and mapping control.
- Programmable, cross-platform DSP effects framework.
- Per-voice filtering, arbitrary submixing, and multi-rate processing.
- Multicore optimized, non-blocking API design.
- Pluggable and generalized 3D spatialization support, with a full-featured implementation provided by the independent X3DAudio math library.
“Cross-platform”, though, in Microsoft fashion, should actually mean Xbox 360 + Windows Vista.
Meanwhile, the state of true cross-platform engines is not so fantastic. OpenAL, a multi-platform, open source 3D audio library, comes closest and appears actively updated, though your mileage will vary depending on platform. DSP and many other features have to be provided on your own. Sun, meanwhile, has left the Java platform a mess; the dusty, rusty Java Media Frameworks hasn’t gotten an update since 2003, the open source Java efforts are stumbling on multimedia support because so much of what’s required is proprietary, and no one seems to know what’s happening next.