In this article I will briefly describe the features of EAX 1.0 and a very basic description what reverb is for those that don't know. EAX is just an API developed and controlled by Creative but all other soundcard companies can support the API if they wish for free. Games using EAX have the Environmental Audio logo on the boxes
Reverb
The sound your hear can be split up in a direct path sound and reflected sound. Direct path is the actual sound produced by the sound source (the original sound) as it travels directly to your ear and the reflections are called reverb, that is the sound waves that have bounced (i.e. reflected) around on the walls or other objects before they came to you ear. What you will hear is the combination of original sound and the reverb. The ratio original reverb/sound source are called the wet/dry ratio.
The shape, size and materials of the room/environment and the distance to the sound source will determine the reverb. That's the reason Creative calls it Environmental Audio.
The only place you will hear only the original sound are in an anechoic chamber. Almost all music and game sound effects you hear have some reverb applied to them that sounds more compelling than the reverb effect your room will produce.
What sound you hear will also be affected of objects (walls, pillars, other people etc) that the sound waves needs to pass before it arrives at you ear, that's called occlusion and is supported in A3D2 and will later be added to EAX 2.
What EAX really is
To create the reverb effects you can either use the geometry of the room and do the calculations how the soundwaves bounce around the rooms or do a reverb engine where you simulate different kind of environments without having do actually process the geometry information. Current hardware can't process all the reflections but Aureal choose to actually calculate the first order reflections (up to 60 reflected sound waves at any time) while Creative instead made the choice do a reverb engine and let the developer choose what kind of environment the users are located in. Creative made that choice because they think it's easier for the developer to implement, offers more flexibility for the level designers and requires less processing power.
EAX, which is an extension to DS3D, is the API (bunch of commands) the developers use to select what reverb effects should be applied to the sound sources. The developer can change the reverb effect at anytime and the reverb effect will stay the same until the developers change it again. Usually the developers/level designers choose to have one reverb for the each room/area so the reverb won't change when you for example move into a corner, but it's possible to do that if the level designer wish.
The developer will only change the reverb effect depending on what environment the listener are located in not where the sound source are, except changing the wet/dry ratio depending on how far away the sound sources are. The further away the sound source are the higher the wet/dry ratio will be, that is most of the sound will consist of reflections if the sound source are far away. The wet/dry ratio will be calculated automatically by EAX unless the developer wants to change it. One good reason to change it would be if you want to disable any reverb from being applied to one or several sound source.
To make it easy for developers Creative have created the following 26 presets:
Preset Base Environment
Volume
Decay
Time Damping
GENERIC
0.5F
1.493F
0.5F
PADDEDCELL
0.25F
0.1F
0.0F
ROOM
0.417F
0.4F
0.666F
BATHROOM
0.653F
1.499F
0.166F
LIVINGROOM
0.208F
0.478F
0.0F
STONEROOM
0.5F
2.309F
0.888F
AUDITORIUM
0.403F
4.279F
0.5F
CONCERTHALL
0.5F
3.961F
0.5F
CAVE
0.5F
2.886F
1.304F
ARENA
0.361F
7.284F
0.332F
HANGAR
0.5F
10.0F
0.3F
CARPETEDHALLWAY
0.153F
0.259F
2.0F
HALLWAY
0.361F
1.493F
0.0F
STONECORRIDOR
0.444F
2.697F
0.638F
ALLEY
0.25F
1.752F
0.776F
FOREST
0.111F
3.145F
0.472F
CITY
0.111F
2.767F
0.224F
MOUNTAINS
0.194F
7.841F
0.472F
QUARRY
1.0F
1.499F
0.5F
PLAIN
0.097F
2.767F
0.224F
PARKINGLOT
0.208F
1.652F
1.5F
SEWERPIPE
0.652F
2.886F
0.25F
UNDERWATER
1.0F
1.499F
0.0F
DRUGGED
0.875F
8.392F
1.388F
DIZZY
0.139F
17.234F
0.666F
PSYCHOTIC
0.486F
7.563F
0.806F
The developer can then tweak the reverb by changing the amount of reverb applied, the decay time and the damping. The last two basically allows the developers to simulate different matrials of walls/environments at a whole room level. At this time the developer can't change other settings like the size of the room, sewerpipe etc.
EAX implementations
At this time only a few cards support EAX (the Live!, SB128, SB64 and cards using Trident's 4DWave-DX chip) but several more 3D sound cards (all using Vortex2 chips, QSound's or Sensaura's 3D technology) will do it the coming months. Of the few EAX implementation we have heard so far the Live is the best but the QSound algorithm used by the 4DWave-NX is not that far behind. The Live takes a small CPU hit for the 3D sound part but no extra for the reverb.
It's important to remember that cards supporting EAX won't use Live's reverb engine and the quality of each reverb engine will be different. The CPU hit will depend on the reverb engine and the power of soundcard using it. It's really no point supporting EAX unless you can do it well and with a reasonable CPU hit. So the problem with supporting EAX is the creation of a good and efficient reverb algorithm.
Some games (Unreal, Half-Life and a few others) have their own reverb engine doing the processing with the CPU so it will work on all soundcards but those reverb engines isn't of the same quality as the Live's. What reverb engine sounds best will probably also be very subjective.
Of the cards supporting EAX (so far at least) only the Live also allow you to use their reverb engine to apply reverb for your favorite music CD, MP3 song or older non-EAX games if you wish. The QSound cards allow you to apply it to other 3D sound games but not other games or music. The Live also have several more presets that users can use and way to tweak them than what developers currently have. Some of the presets are also specifically designed for existing non-EAX games but that will mean the whole game get the same reverb effect. The presets is only for games that don't support EAX.
Creative will expand on the EAX API so it will offer developers much more than just choosing different reverb effects in the near future. It's already known that EAX 2 will include occlusion but it's possible it will include other enhancements too.
If you have any comments, questions or see any errors in the article contact
Last Updated ( Feb 11, 2008 at 02:36 PM )
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.
Mambo is Free Software released under the GNU/GPL License.