|Tutorial: Surround Sound In UT 2004|
April 9, 2004 | Greg Gant
Apple on March 25th quietly announced that it had contributed modifications to the OpenAL open source project which resulted in “dramatic performance enhancements for gaming audio on Mac OS X.”
OpenAL originally got off to a rocky start and many developers chose to use other 3D audio libs. It wasn’t until recently that developers began exploring and altering OpenAL.
OpenAL is a cross-platform 3D audio API designed for gaming (although it can be used for other applications). Its modeled after the coding style and convections of the successful OpenGL API. Its aim is to generate audio in a simulated three-dimensional space much like Creative Labs' popular EAX. OpenAL uses a combination of DSP (digital signal processing) techniques to render sounds in a 3D space according to their distance and relative orientation; these techniques include reverbs, delays (echos), pitch shifting (Doppler effect) and panning (left/right).
Unbeknownst to many Mac users, CoreAudio was designed to handle multichannel audio, although the only apps that took advantage of it were Apple's DVD Player in Panther and professional audio apps, used in conjunction with multichannel audio hardware. Apple’s implementation of OpenAL functions as a front end to the CoreAudio system, which means that a game can make use of surround sound assuming the user has the necessary audio interface, such as an M-Audio Revolution. However, the Apple OpenAL implementation does not contain hardware “hooks” to allow hardware acceleration. Also, the surround sound cannot be used with SPDIF (Digital outputs) like the ones on the M-Audio Revolution, Sonica, Audiophile, Dio or the G5’s optical out. In order for digital out to work the surround would have to be encoded in real time to a format that consumer hardware could accept like Dolby Digital or DTS (this is how multichannel Xbox and PS2 games work). Currently no such option exists for the Macintosh.
How to enable surround sound in UT2k3 and UT2k4Longtime IMG reader a2daj discovered that replacing the OpenAL lib in UT2k3 and UT2k4 apps allows the games to make use of multichannel audio. This is not an official update so proceed at your own risk.
You need a Revolution 7.1 or other audio interface with multiple outputs. I haven’t had a chance to test this, but I’d assume that professional audio interfaces such as the MOTU Firewire devices or M-Audio Delta series cards should work. You’ll also need the sound card connected via analog cables to a set of speakers or a home theater receiver with a 6-channel input.
Next you need to download the compiled "OpenAL.dylib". I’ve provided this on my personal webspace here for the time being. (See the bottom of this page.)
Right click the UT2k3 or UT2k4 application icon in the Finder, and select Show Contents. Open the folder “system” within the app and find the file "OpenAL.dylib". (Save a copy of this in a safe spot!)
Drag the downloaded lib into the folder to replace the original.
Next open the Audio Midi Setup application (located in /Applications/Utilities). Click the “Audio Devices" tab at the top of the window. Select your multichannel audio I/O as the default output, and then select it under “Properties For”. Under the Audio Output, in the lower right, click “Configure Speakers”; click “Multichannel” and select "5.1" as the Type. Click "Apply" and then "Done".
Next, open the M-Audio Revolution 7.1 in your prefs and make sure you disable CSII if it’s enabled. Make sure your speaker set up is 5.1.
Open the App and you should be good to go.*
*This guide will be updated as I have more time to do testing…(look for the update pertaining to CVS)