Please support 3DsoundSurge by visiting our sponsors
A Gamer's Guide to EAX
Mikael Hagén - Last revised on: 14th of October 1999
Introduction
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 Mikael@3dsoundsurge.com