header image
Home arrow Articles arrow Articles arrow Gamer's Guide to 3D sound and reverb APIs
Gamer's Guide to 3D sound and reverb APIs PDF Print E-mail
Written by Mikael HagĂ©n and Mark Muschett   
Jan 08, 2002 at 12:00 AM
Article Index
Gamer's Guide to 3D sound and reverb APIs
DS3D, I3DL2 and EAX
EAX Advanced HD
IAS, QMixer, RSX, Dolby and DTS

This article offers a brief explanation of the various 3D sound APIs we list in our reviews, articles and news. ). An API is basically a bunch of instructions that the game developers use to define where the sound should be placed in the 3D space (A3D 1/2/3 and DS3D) or what type of environment you are located in (EAX, I3DL2 and A3D 2/3). Your soundcard, if it supports the API, will then use some clever algorithms to place the sound in 3D space or a reverb algorithm that tries to recreate the sound of the specific environment.

How effectively you will be able to locate the sound depends on the algorithms your soundcard uses, if you use headphones, 2, 4 or 5 speakers and yourself. That is, how well it works is very subjective, particularly when it comes to any virtualized effects.

If your soundcard doesn’t support the API the game may use a software 3D sound/reverb engine or more commonly, stereo panning. The more well known software 3D sound engines available are RSX (part of Miles Sound Systems),  QSound's QMixer and the 3D sound engine part of DS3D. When it comes to reverb engines in games the more well known are the one included with the Unreal engine, the one in Half-Life and the one MS licensed from Creative Labs (not the Audigy or Live reverb engine) that’s part of DirectX8.

A3D 1.0

A very popular 3D sound API before Aureal’s demise. It’s very similar to DS3D up to and including DirectX7. DS3D as part of DirectX8 offers more features, most importantly I3DL2 (similar to EAX 2.0). It’s worth noting that several game developers may only list A3D 1.0 support even though they also support DS3D. That means some of the games where we have only listed A3D 1.0 support may also support DS3D.

With the exception of the cards that use Aureal’s A3D engine (Diamond’s MonsterSound cards, all Vortex 1, 2 and Advantage based cards) most soundcards support this API by simply translating the A3D 1.0 API calls to DS3D. Cards that support A3D 1.0 using this translation includes the Creative Labs’ SoundBlaster Live and Audigy cards, Creative Labs’ PCI cards that are based on the ES137x chips and all cards using the Sensaura or QSound 3D sound engine with the noteable exception of nVidia’s nForce. Having said that it’s worth noting that the Windows 2000/XP drivers for several of these cards currently lacks A3D 1.0 support. The only ones we know for sure where it works are VideoLogic’s SonicFury and Turtle Beach’s Santa Cruz.

The translation of A3D 1.0 to DS3D works with most but not all A3D 1.0 titles. As far as we know the few titles where it doesn’t work also support DS3D so it shouldn’t be an issue. When this translation works the sound will be just as well positioned and as CPU efficient as if the title supported DS3D directly. For more about A3D 1.0 and how it compares to DS3D check out our A Gamer's Guide to Direct Sound 3D and A3D 1.x

 

A3D 2.0

The major improvements in A3D 2.0 compared to A3D 1.0 are via what Aureal called wavetracing. Wavetracing is based on room geometry and Aureal A3D 2.0 wavetracing engine will in real time render the reflections of each sound source depending on how close to a wall or object the listener is and the sound sources are. The materials making up the room and shape of the room where the listener and sound sources are will also affect the sound.  For example a gun shot in a "bright" room like a tiled bathroom bounces off the tiles, around the corner, into the "soft" wood and carpeted room that the listener is in, rendering correct reflections, acoustic materials and occlusion on the fly as appropriate. Not only does it render each source (and all the geometry and materials that come between it and the listener) it will also take into account dynamic objects like opening doors, elevators, moving geometry (i.e. a listener or sound source inside a car), etc.

If you install the latest A3D 3.0 files for the Vortex2 card you will in addition to the first order reflections also get a reverb effect in games using wavetracing. I will cover this in more detail in the A3D 3.0 section below. I just brought it up here since this feature doesn’t require games to be rewritten. That is it was enough for Aureal to upgrade the drivers to enable it for all A3D 2.0 games which use wavetracing. While games don’t need to be rewritten to take advantage of this feature it’s worth noting that the A3D engine have less info about the room geometry in A3D 2.0 games compared to A3D 3.0 games.  This can result in the wrong reverb effect, the wrong amount of very (at least to my ears) or both being applied., This is probably why Aureal allows you to disable this feature from the Vortex Control Panel.

Most games using A3D 2.0 only use the 3D positional aspect of the API, that is they don’t use wavetracing. The only cards that offer full support A3D 2.0 are the Vortex2 based cards. Other cards using the A3D engine (The older MonsterSound cards, Vortex 1 and Vortex Advantage cards) only support the 3D positional aspects of the API and the occlusion but not the reflections. No other soundcard supports A3D 2.0 directly but the Aureal had designed their A3D 2.0 engine to pass on the 3D positional calls to DS3D which means it should then work as any other DS3D game. For cards that don’t even support DS3D the A3D 2.0 engine can provide A3D lite, which should offer some 3D positional effects on all cards. The feature to support DS3D card and A3D lite are both optional and not all A3D 2.0 games will support DS3D, especially the early (released late 1998 and early 1999) A3D 2.0 games. When we know that the A3D 2.0 support out of the box support DS3D cards we list the game as supporting both A3D 2.0 and DS3D.

An A3D 2.0 game that support DS3D out of the box does so by including a file called A3DAPI.dll in its game folder. Some of the other games that support A3D 2.0 (e.g. Quake 3 Arena before id Software removed it in later patches) don’t support DS3D cards out of the box but you can get this support by installing the A3DAPI.dll. This is done by downloading the A2D files package (available from our soundcard utilities page) which will install the A3DAPI.dll in your Windows\System directory. If you do this you should rename it when you play other A3D 2.0 games that support DS3D and/or EAX directly since they may otherwise default to A3D 2.0 which in most cases is considerable slower. In case of Quake3 the result of using the A2D files is quite mixed which may be due to bugs in Quake3’s A3D code or bugs in the A2D files.

If you installed the most recent A2D files that offer support for A3D 3.0 games you will in addition to the DS3D support also get EAX 1.0 support if the game uses wavetracing. This is done by using the automatic room calculation mentioned above. Just like it’s not working that well many times with Vortex2 cards it’s also not working very well with EAX 1.0 cards. Fortunately several of the EAX 1.0 cards including the Live and Audigy offers you to option of disabling EAX 1.0 without disabling 3D sound.

Creative Labs is now the owner of the A3D technology and it is highly unlikely that Creative Labs will try to get games developer to support this API, which means it’s unlikely any new game engine will support A3D 2.0. However the new EAX Advanced HD includes some of the features previously unique to A3D 2.0 and 3.0. From a developer/sound designer perspective it’s accessed quite differently though. It’s possible, but unlikely, that Creative Labs will include full A3D 2.0 support in future drivers for the Live and/or Audigy soundcards. I say unlikely since they publicly stated they have no plans to do so.

 

A3D 3.0

The major improvements in A3D 3.0 are support for reverb, Dolby Digital, MP3 and volumetric sources (similar to ZoomFX which we cover later in this article). As far as we know no A3D 3.0 game ever shipped that took advantage of the Dolby Digital, MP3 or volumetric features. The reverb support is done automatically if the title use wavetracing and this includes A3D 2.0 games that use wavetracing. You just have to install the latest release of the A3D files and all your A3D 2.0 wavetracing titles will in addition to reflection now also support reverb. We haven’t been very impressed with this but you can disable it in the Vortex2 control panel if you don’t like it.

 

As with A3D 2.0 only the Vortex2 based cards offer full support for A3D 3.0, while the Vortex1, Vortex Advantage based cards and the older MonsterSound cards will only support the 3D positional and occlusion aspects of the API. Just like A3D 2.0 the 3D positional calls can be passed on to any DS3D supporting card. What’s new is that if the game uses wavetracing the new reverb feature will work on any EAX 1.0 supporting card. As with the Vortex2 cards we haven’t found the automatic selection of reverb to work well on EAX 1.0 cards. It’s worth noting we base this entirely on testing with Quake3 so possible it works better with the few games that support A3D 3.0 (e.g. Star Trek Voyager).

On to DS3D, I3DL2 and EAX


Mambo is OSI certified Open Source software. It is free of charge and is governed by the General Public License (GPL). Learn more about Open Source and the OSI at the Open Source Initiative (OSI) website.