How to draw textures. Get creative with textures

11.04.2019

Environmental Audio (literally, surround sound) is a new sound standard developed by Creative Labs that creates effects environment real world on a computer. Environmental Audio today is much more than just surround sound and 3D modeling. It's true ambience modeling with powerful effects based on room size, sonic characteristics, reverb, echo and many other effects that create the feeling of the real audio world.

How Environmental Audio Works

Environmental effects are modeled using E-mu Environmental Modeling technology, supported by the EMU10K1 audio processor installed on the SBLive! Environmental Audio technology is designed to work with headphones, two or four speakers. The EMU10K1 chip decomposes any audio stream into multiple channels, where it applies effects in real time. Due to this, new sounds are already created, such as they should be in nature. At the stage of sound processing, in addition to its position in space, at least two factors must be taken into account: the size of the room and reverberation, since the human ear hears not just the original sound, but the sound, taking into account distance, location and volume. The Environmental Audio standard handles all these conditions to produce high quality real sound.

Environmental Audio uses X, Y, Z coordinates, as well as reverb and sound reflections. These coordinates are used in the basic preparation of audio source channels and soundstage "color" effects. The main power of the audio processor is spent on processing each sound source on all channels and adding effects in real time. As already mentioned, to create the feeling of real sound, you need to consider at least 3 factors: the distance to the sound source, the size of the sound room and reverberation.

Environmental Audio Extensions (EAX)

This is an API developed by Creative Labs to achieve real sound effects in PC games. EAX is Microsoft's DirectSound3D API extension As of October 18, 1999, the only sound card that supports this standard is the Sound Blaster Live! (in various modifications). To date, Creative has released three versions of this standard.

DirectSound3D controls the location in the game's 3D space of sound sources and the listener. For example, a game could use DirectSound3D to create separate sound sources for each creature in the game, thus getting gunshots and voices in different places 3D world. These sounds, as well as the listener, can move in space. Game developers can use audio features such as directional palette (sound in one direction can be louder than in another), Doppler effect (sound can rise as it reaches the listener and then fall as if receding into space).

EAX enhances DirectSound3D by creating a virtual audio environment around sound sources and the listener. This technology emulates reverberations and reflections coming from all directions of the listener. These effects create the impression that there is a real world around the listener with its own parameters, such as: the size of the room, the reflective and absorbing properties of the walls, and others. Game programmers can create different acoustic effects for different rooms. Thus, a player who plays an EAX game can hear the difference in sound when moving from the corridor to the cave. In addition to creating ambient effects, EAX 1.0 can change the parameters of various sound sources. When you change the location of the sound source relative to the listener, the reverb parameters automatically change.

As far as programming is concerned, here EAX provides the following features.

    - Choice among a large number of "presets" to simulate the effects of the environment.
    - Ability to change the parameters of the ambient presets for each source individually.
    - Automatic change of critical parameters applied to the position. As the sound source moves towards the listener, EAX automatically changes the sound reflection and reverb settings to create more realistic sound effects as the sound source moves through the 3D sound world.
Occlusions and Obstructions

The occlusions effect gives the impression that the sound source is in another room, in another place, behind a wall. This property allows you to change the transmission parameters of the sound characteristic to obtain the effect of different wall materials and their thickness. For example, a program can use this property to create sound coming from behind a door or from behind a wall.

The obstructions effect allows you to simulate sonic obstacles, giving the impression that the source of the sound is in the same room, but behind the obstacle. For example, you can make it so that the sound will come from behind a large stone located in the same cave as the listener.

Geometric modeling and EAX

The geometric model of the scene is used both for graphic purposes and for creating 3D sound. To create a geometric model, a computer must have data on the physical properties of the world: which objects are located where, which are soundproof, which are sound absorbing, and so on. After this information is obtained, a calculation is made of a certain number of audible reflections and absorptions of sound from these objects for each sound source. This results in sound attenuation due to obstacles, soundproof walls, and so on. Reflection calculations using the "mirror" method are widely used to create building acoustics. This method implies that sound is reflected directly (as from a mirror) without refraction or absorption. In fact, instead of calculating all the reflections and features of the environment in real time (which is actually a laborious process), pre-calculated simplified models of geometric audio environments are used, which differ from graphical representations of the environment. That is, the game simultaneously uses a separate environment for visual effects and more simple for sound effects. This creates problems, like if you wanted to move part of a wall in a room, you would have to create a new sound environment. Currently, work is underway on the geometric modeling of sound in many sound laboratories.

EAX for Developers

EAX does not require sound sources to be tied to a graphical representation of the environment. But if desired, a developer who wants to create "heightened reality" sound effects that are as close as possible to the graphical representation of the scene can use additional control over early reflections, refractions and absorptions. When creating its effects, EAX uses static models of the environment, and not its geometric parameters. These models automatically calculate reverberations and reflections relative to the listener, taking into account the size of the room, the direction of the sound, and other parameters that the programmer can add, for each sound source. Therefore, EAX is much simpler than other standards, since it does not require a description of the geometric environment of the scene, but uses models prepared in advance. The game can change sound patterns as you move from one location to another to create real effects. I want to take a closer look at this. Let's say you have a scene in the game in the form of a stone cave. There are two ways to get high realistic effects. The first of these is to calculate the geometric model and use it as an audio mask for the scene, and new technologies will allow this to be done in real time. The second way is to take a ready-made preset and, if necessary, change it to get better effects. Of course, the first method will give more realism than the second, but it will also spend several times more resources. And if you take into account the laziness of programmers, then in this case EAX is the most favorable option.

Differences between EAX 1.0, 2.0 and 3.0

EAX 1.0

    - Supports changing the place in the game of reverbs and reflections.
    - Has a large number of presets.
    - Allows (limited) modification of the ambient reverb.
    - Allows you to automatically change the intensity of the reverb, depending on the position of the sound source relative to the listener.
EAX 1.0 builds the soundstage based on pre-created presets, taking into account the distance between the sound sources and the listener. Accordingly, EAX 1.0 provides a large set of presets "for every occasion". It is also possible to change the parameters of the late reverb (dumping, level) and automatically change the level depending on the distance. This results in an improved perception of the distance to the source.

EAX 2.0

    - Updated reverb model.
    - Added effects of sound barriers (Obstructions) and absorptions (Occlusions).
    - Separate control of early reflections and late reverbs. Long-term control of the dimensions of the premises. Improved distance model to automatically control reverbs and initial reflections based on the location of the sound source relative to the listener.
    - Ability to take into account the sound properties of air (sound absorption).
    - Now, to use the effects of Environmental Audio does not require a description of the geometry of the room.
EAX 2.0 builds on the features of the first version and creates even more realistic effects by supporting sound occlusion and reflection, as well as improved sound direction detection technology.

EAX 3.0
    - Control over early reverbs and reflections for each sound source.
    - Dynamic transition between surrounding models.
    - Improved distance model to automatically control reverb and initial reflections depending on the position of sound sources relative to the listener.
    - Ray-Tracing calculations (ray reflection) to obtain reflection parameters for each sound source.
    - Separate reflections for distant echoes.
    - Improved distance representation designed to replace static reverb models.
EAX 3.0 combines the second version with more powerful features. New level realism is achieved by supporting local reflections, isolated reflections, long transitions between sound stages and other features.
  • Conclusion:

    Based on the foregoing, it can be judged that today EAX is a very promising and competitive standard. Any programmer unfamiliar with 3D sound features will be able to create real effects for their games using presets. As for the quality of 3D sound, it is unrivaled.

in August 2005.

There is also a description of the versions https://ru.wikipedia.org/wiki/Environmental_Audio_Extensions

Below is a table of PC games whose sound engines use Environmental Audio eXtensions technology.

From this list games I can highlight: Aliens versus Predator, The Lord of the Rings: The Battle for Middle-earth II, bioshock, call of duty 2, The Chronicles of Riddick: Escape from Butcher Bay,diablo 2, Doom 3(patch 1.3 added EAX 4 support ) , F.E.A.R.(EAX 4) Far Cry, Grand Theft Auto 3, Grand Theft Auto: Vice City, Grand Theft Auto: San Andreas,Grand Theft Auto4, S.T.A.L.K.E.R. all parts(EAX works through OpenAL. Do not use ALchemy.), Half Life 2, Driver, Driver: Parallel Lines, Hitman 2: Silent Assassin, Hitman: Blood Money, Max Payne 2, Tom Clancy's Splinter Cell, Unreal, Unreal Tournament 2003 & 2004, Warcraft III, Stubbs the Zombie, The Matrix: Path of Neo (google it: EAX option in INI. Use ALchemy), Prey, Quake 4(EAX 4, EAX 5 via OpenAL), Outcast , Condemned(EAX 2.0, EAX Advanced HD), Mafia, Need for speed 3 and High Stakes, S.W.A.T 4(For EAX, requires use of Creative Alchemy. Also, you must edit Swat4.ini and set the following parameters to true: UseEAX and Use3DSound).

Native support for EAX in cards is implemented only in Windows XP, Since DirectSound and DirectSound3D hardware acceleration is no longer supported inWindows Vista, therefore, for this OS and older, you have to resort to the help of a third-party Creative ALchemy utility.

Download Creative ALchemy from the office. site:

More about the utility:


What is Alchemy?
This is a utility that performs two mutually exclusive functions:
1. API translator from DirectSound3D (DS3D) calls to OpenAL calls.
2. 3D audio software engine that understands DS3D calls.

Why is this?
The fact is that Microsoft has seriously redesigned the audio stack in Windows Vista. This was done for a reason, it was time to change a lot. However, part of the old APIs suffered during this rework, which are now only emulated by the new WASAPI. For the end user, the most noticeable loss is the inability of programs using the DS3D to "talk" directly to the audio driver. Which in turn deprives the user of such applications of 3D sound and support for any version of EAX. Obviously, this presents the greatest problem for Creative cards. That's why ALchemy was released.

Are these Vista features specific to DS3D?
Yes. Applications using non-MS APIs are not affected. Those. games with OpenAL continue to work as they did in previous versions of Windows.

What about Windows Seven?
As far as DS3D is concerned, Seven is no different from Vista.

What are the requirements for ALchemy?
ALchemy only works with Creative Audigy/X-Fi cards. There are no other restrictions.

How it works?
The dsound.dll library and the dsound.ini configuration file are placed in the application folder (this can be done manually or through the graphical shell). Because first of all, applications look for dll files in their folder, and only then they look into the folders of the operating system, then this dsound.dll (which is directly ALchemy itself) takes precedence over the "real" dsound.dll from Microsoft. Thus, any application calls to DS3D are processed by ALchemy, and not by the mechanisms built into Windows.

How does this affect the speed of work?
In most cases, the speed corresponds to the "Windows XP without ALchemy" option. On cards with APU/Audio Processing Unit (i.e. all older Audigy/X-Fi models), ALchemy practically does not load the processor, because does not perform any calculations, but simply translates commands. In rare cases, even a slight speedup is possible due to the greater optimization of the driver for OpenAL. If there is no APU or X-Fi is not in game mode, ALchemy uses the 3D sound engine built into it. This software engine has the same features, algorithms and sound as the built-in X-Fi XtremeAudio driver.

It turns out that when using ALchemy, it makes sense to switch X-Fi cards to game mode just for the sake of speed?
Not at all. The XtremeAudio software algorithms are noticeably inferior in sound quality to the algorithms running on the APU.

Do I need to apply this to all my games or just the ones with EAX?
In my opinion ALchemy should be applied to all games using DS3D. Vista's built-in software mixing is of very poor quality compared to what any Creative cards produce. In addition, without ALchemy, the correct multi-channel sound often does not even work, not to mention positioning in headphones or on a stereo pair.

And how to determine if the game uses OpenAL itself and without Alchemy?
The simplest and most effective method is to simply search Google "<название игры>OpenAL". You can also check for the presence of the OpenAL32.dll file in the game folder (not necessary, but usually this file is present).

Guide to action
Usually ALchemy is already supplied on a CD with the card. It can also be downloaded from this link . After installing and running the graphical shell, you can observe the following picture:

If you are lucky, then all installed games will be listed in the list on the left. In this case, you just need to select the one you need and click on the ">>" button. However, the graphical shell can search for a very limited number of games. Therefore, in most cases, games will have to be added manually. To do this, click on "Add" and we see another screen:

We have to fill it.
"Game Title" - the name of the game, you can enter anything here.
The switch "Use Registry Path" / "Use Game Path" selects the type of search for the location of the game, by the registry (then you need to enter the registry key that contains the path to the game) or just the full path to the folder. I recommend using an easier way - without fiddling with the registry, just enter the path to the game. To do this, find the folder with the game in Explorer (the easiest way to do this is through the item "Open file storage location" in the context menu of the shortcut), select the path to it at the top of the Explorer window

and copy it to the clipboard, then paste it into the ALchemy window.
The "Install into Sub Folder" checkbox allows you to specify the location of the game's exe-file inside the folder of this game. For example, in the 32-bit version of Crysis, the exe file is located in the Bin32 subfolder (and therefore, you must enter Bin32 in the field under this checkbox). But in Fallout 3, the exe file is located directly in the main folder of the game (therefore, you don’t need to check the box at all). An even more complex (but almost single) example: CnC3 has a real exe file in the subfolder RetailExe\<версия установленного патча>and generally has the extension dat instead of exe.
The "Install into both Root and Sub Folders" checkbox allows you to install ALchemy into two folders at once - the main and the above subfolder. This is necessary for those rare games that have several exe (for example, one for settings, and the other for the game itself) and they lie in different places.
The remaining parameters ("Buffers", "Duration", "Maximum Voice Count", "Disable DirectMusic") should generally be left as is. Although with some games buffers and duration need tweaking to solve problems. See below for details.
Having set everything up, you need to click "OK", select the game you just added and click on ">>".

How to understand that everything is working
1. By ear.
2. By activated options in the game (if any).
3. According to the dsoundlog.txt file, which is created in the game folder (if the game is installed in the Program Files subfolder, then with UAC enabled, it usually ends up in the C:\Users[Users]\ folder<имя пользователя>\AppData\Local\VirtualStore\<реальный путь к папке игры>). In the case of working in the translator mode and using the APU, it must contain the line "Using Native OpenAL Renderer". And in the case of using the built-in software engine "Using Creative Software 3D Library". In any case, there should not be any "error" or "fail".

If something doesn't work

Now the game crashes.
Usually caused by enabled UAC and a game installed in a folder that cannot be written to without administrator access (for example, in Program Files, where almost all games are installed by default). Personally, I do not advise disabling UAC even for the most “experienced users”. The solution to the problem without disabling UAC is as follows. You need to run the game once with administrator access (by selecting the appropriate item in the context menu of its shortcut). Then you need to find the dsoundlog.txt file in the game folder, open its properties, go to the "Security" tab and click "Edit". A window will open


In it, select "Users", check the "Full control" box in the "Allow" column and click "OK".

All paths are spelled out correctly, but for some reason it does not work or the sound stutters / with a very strong echo / disappears / etc.
Most likely, adjustment of duration and buffers is necessary. To do this, you need to select a game in ALchemy and click "Edit". It is necessary to reduce the value of duration in increments of 5 until the error disappears. If at the same time the stuttering changed to the absence of any effect from ALchemy or sound in general, then it is necessary to increase buffers in increments of 1. With each change in parameters, it is enough to simply close the window called by the “Edit” button using the OK button. successively press "<<" и ">>" to reapply ALchemy is not necessary. In most cases, you can find settings already selected by other users .

Still nothing helps
At the moment ALchemy only exists in 32-bit version. It can run on 64-bit Windows, but only on 32-bit versions of applications. It also doesn't work with games written for XAudio2. They use other mechanisms for 3D positioning and effects.

I used ALchemy on Everest or another diagnostic program, and there only EAX 4.0 support is visible in the DirectSound section, while my card should support 5.0.
Don't worry, this is normal. It just so happens that there is not a single game that supports EAX 5.0 under DS3D, they all use OpenAL. And given the current state of affairs with DS3D, the chances of some kind of exit new game using EAX 5.0 through DS3D are close to zero. Therefore, the developers of ALchemy decided to save their efforts and not build support for EAX 5.0 into it.

To catch up with the setup video:

And one more visual article about hardware vs hardware sound processing on Creative audio cards:

Recently, Creative managed to significantly increase the scope of the software version of X-Fi. What started with a single card, XtremeAudio, is now used with both headsets and external USB devices, and is even installed on built-in codecs called X-Fi MB. The latter option is most often found on top Gigabyte boards or as a separate Supreme FX X-Fi board bundled with motherboards ASUS.

In all these cases, the software processing layer and sound engines are installed on top of the main device driver. This happens transparently for the user in the case of Creative devices, but is noticeable on built-in codecs, on which a similar kit is installed in two stages: codec drivers, and then X-Fi MB. Thus, the package itself is the same everywhere, the differences are only at the level of licensing and activation files.

Why am I writing all this? Yes, because there are normal hardware X-Fi with their own audio processor, and Creative still hasn't forgotten them, updating the line from time to time. The problem is that most users are firmly convinced that the difference between software and hardware implementation is only in the processor load, which has not bothered them for a long time. Some more advanced people know that the software implementation is limited to EAX 4, while the hardware version also has version 5, but do not consider this important under the pretext that there are very few games with EAX 5 (which they are right about).

In reality, modern processors are simply not mature enough to efficiently and with high quality in real time perform all the manipulations necessary for game sound on dozens of sound samples at the same time. I did not accidentally write "effectively". There are professional sound processing packages that produce good quality in real time on modern processors. But this is a completely different matter, because at this time they do not have to share the processor with the calculations of graphics, physics, intelligence of enemies and much more.

Someone may argue that the top modern CPUs are 4-6 times more powerful than X-Fi. But this is calculated on primitive addition operations, while sound processing uses rather specific algorithms that are much easier to optimize within a highly specialized architecture than on x86. Suffice it to recall that in 2002-2003 the top processors were 15-20 times more powerful than the Audigy audio processor (the X-Fi predecessor presented in the top Creative line of those times). And even in such conditions, Audigy was easily ahead of any software solution in terms of game sound quality.

With this, I end the slightly lengthy introductory part and move on to a visual demonstration. The technique is simple. All sound device settings are set to default. The sound was recorded from the input of What U Hear, it has a signal in the form in which it enters the DAC. Thus, the difference in the level of the converters is not reflected in the commercials, all the difference in sound that is present owes its existence solely to the difference in the sound processing of the software and hardware versions of X-Fi. The two most significant games have been selected. Demonstrative, not because the difference there for some reason is heard more strongly, but because of the possibilities used by the game itself. It is very important not to turn off HD video, but to watch it in maximum quality, because. bitrate of picture and sound are related.

Doom 3 programmatic And hardware execution. The game uses the hastily patched EAX 4 (and according to the features actually involved, it's more like EAX 2.5). For which it was chosen, it cannot be accused of sharpening for hardware Creative or the presence of support for functions that are not available in the software implementation. Here, in the software implementation, first of all, significant sound distortions at high frequencies are noticeable, as well as a clear overestimation of the level, unnaturalness, and generally low quality of simulating sound changes depending on the rooms (this is exactly what EAX is). By the way, on all software cards of any manufacturer, it is the upper frequencies, starting from 5 kHz, that suffer the most. This is due to the fact that the closer the sound is to the maximum of the current reference frequency (at a frequency of 44 kHz, the maximum is 22, i.e. 2 times less), the more difficult it is to process it qualitatively, because. need to increase the degree of interpolation more and more, the need for computing resources is growing exponentially. Hardware X-Fi, due to the features inherent in its architecture, can afford not only high degrees, but also work in game mode with a constant reference frequency of 96 kHz for all 128 streams. And if suddenly one of the proud users of the built-in sound decided to check this old game at home, I can immediately confirm the impressions. Yes, on pure built-in sound without add-ons, due to the lack of attempts to portray any effects, the sound is noticeably better in the end than on software X-Fi. posted a recording of the same fragment of the game using the built-in audio engine, which is used by the game on the built-in sound. The situation repeats itself often, built-in codecs are a significant leader among other software cards in terms of sound quality in games, no matter how wonderful technologies are advertised on multi-colored boxes. Rather, the more they promise, the worse the sound should be expected. In this regard, professional sound interfaces are good, which simply do not support any game effects. Well, hardware X-Fi, capable of reproducing them without causing disgust.

Oblivion in programmatic And hardware execution. This game does not even suspect the existence of some obscure EAX there and therefore is even more revealing. It is obvious (or can it be "audible"?) that there is a difference here as well. In the software version, the characters literally lisp, and hits with an enchanted sword and magic simply overload the mixer and sound unintelligible, although more bass than on the hardware version. Excessive bass, by the way, is another characteristic any software sound cards from any manufacturer. It comes directly from distortion at high frequencies. In an effort to make them less noticeable, manufacturers simply reduce the level of the signal itself, “filling up the top”. Hardware X-Fi makes it easy to turn up the bass or lower the treble without repercussions, if one likes it that way. The same cannot be said about the possibility of getting rid of the illegibility of the top on the program map.

About surrogates from Creative. "Built-in" X-Fi, XtremeAudio and other crafts in games

This entry is a continuation of “About surrogates from Creative. "Built-in" X-Fi, XtremeAudio and other crafts in games". Last time, the main trends in the sound quality of software solutions for processing game sound were considered. Why and how they generally sound. Then the comparison was direct, hardware Creative against their software "relatives".

Today I close a small gap in that entry. That gap is connected with the lack of examples of recordings from a fairly popular line of ASUS Xonar sound cards.
Like last time, everything was recorded through What U Hear (for Xonar through a Stereo Mix of the same purpose), which excludes the influence of differences in the analog path of the cards, the whole difference is due only to the chip and the processing algorithms used. Both cards are put into game mode, GX is enabled on Xonar, Alchemy is applied on X-Fi if necessary. The bitrate of the picture and sound in the recordings are related, so the HD mode should not be turned off.

The first game is again Doom 3 with its hastily tweaked EAX 4. The recording from the hardware X-Fi was not altered, just in case I'll post a link to it, and at the same time version from software X-Fi. A like this it sounds on Xonar. A few comments need to be made here. In general, the sound quality is noticeably inferior to the hardware X-Fi and even built-in game audio engine, but a little more comfortable than the software X-Fi. In reality, the software X-Fi processes the sound a little better than the Xonar, but in this case, the Xonar completely lacks EAX reverbs, i.e. it produces slightly less violence to the sound. This is due to the fact that Xonar only supports EAX 2, plus informs games about its support for EAX 5. At the same time, it cuts calls to EAX 5 to EAX 2 capabilities, and they forgot about EAX 3 and 4 on this card (I remind you that Doom 3 uses EAX 4). The situation has not changed for several years and is unlikely to ever be corrected. Nevertheless, the game works in OpenAL mode and all processing is transferred to the card, only EAX reverbs are missing, but EAX has already been written about the insignificance of game sound.

The second game was Fallout 3. The game is based on an updated version of the Oblivion engine used in the previous testing. Fallout 3 has a lot more action, so it's easier to hear the differences. Like Oblivion, no EAX is used here at all. Recording for Xonar from hardware X-Fi differs mainly in the low quality of the high and medium frequencies, a strong dip in the high frequencies (to the point that this is already a simulator of a badly cold character with stuffy ears) and inexplicably taken reverberations in places where they should not be. Where most of these problems come from was discussed in detail in the previous time.

In my collection there are three sounds from Creative: Creative Audigy SE sb0570 (EAX3_software, no ASIO) chipset CA0106-DAT LF, Sound Blaster Audigy Rx sb1550 (EAX4_hardware, ASIO 2.0) chipset (E-MU) CA10300-IAT LF*, Creative X- Fi Titanium sb0880 (EAX5_hardware, ASIO 2.0) CA20K2-2AG-HF chipset.

*(E-MU) CA10300-IAT LF is the generic chipset that was installed in the Sound Blaster Audigy 4 sb 0610 (2004), he returned in the newSound Blaster Audigy Rx (2013).



Another important point! Relatively new models Sound Blaster Z (70sb150000001) and Sound Blaster ZX (70sb150600001 ) do not take full advantage of EAX effects in hardware. A member of the Creative forums writes the following:

“X-fi was the last sound card with full featured hardware acclerated 3D sound. After that is got downhill with hardware 3D sound. The newer cards have an outstanding sound quality (better than most X-fi cards) but lack the advanced hardware acceleration.Please note that hardware accelerated 3D sound is used less and less nowadays which is really a shame."

And we are talking about software processing of EAX effects, and not emulation, as we say in some sound card from ASUS. good post

Encyclopedic YouTube

    1 / 3

    ✪ The Environmental Crisis: Al Gore on Ecology, Economic Opportunities & Education (1992)

    ✪ GOING GREEN! (Earth Day song for kids about the 3 R "s- Reduce, Reuse, and Recycle!

    ✪ Audio Sources & Listeners - Unity Official Tutorials

    Subtitles

Technology

Audio positioning systems like DirectSound3D control the location in the game's 3D space of sound sources and the listener. For example, a game can use DirectSound3D to create separate sound sources for each creature in the game, thus receiving gunshots and voices from different locations in the 3D world. These sounds, as well as the listener, can move in space. Game developers can use audio features such as directional palette (sound in one direction can be louder than in another), Doppler effect (sound can rise as it reaches the listener and then fall as if receding into space).

EAX enhances DirectSound3D by creating a virtual audio environment around sound sources and the listener. This technology emulates reverberations and reflections coming from all directions of the listener. These effects create the impression that there is a real world around the listener with its own parameters, such as: the size of the room, the reflective and absorbing properties of the walls, and others. Game programmers can create different acoustic effects for different rooms. Thus, a player who is playing an EAX game can hear the difference in sound when moving from the corridor to the cave.

In addition to creating ambient effects, EAX 1.0 can change the parameters of various sound sources. When you change the location of the sound source relative to the listener, the reverb parameters automatically change.

EAX is used in many popular computer games, including Half-life, Counter-Strike, Grand Theft Auto San Andreas, Grand Theft Auto IV, S.T.A.L.K.E.R. , Doom 3 and many others. These games support EAX versions 4.0 and 5.0 if the computer has an audio device whose driver supports OpenAL. Since DirectSound and DirectSound3D hardware acceleration is no longer supported on Windows Vista, OpenAL is likely to gain popularity among developers who would like to use EAX in their games.

Most releases of EAX versions coincide with the growth in the number of simultaneous hardware voice processing by the audio processor: EAX 1.0 supports 8 simultaneous voice streams (channels), while EAX 5.0 allows 128 voices (and up to 4 effects applied to each).

EAX Versions

EAX has had many development iterations, each adding everything more features. Below is an overview of the currently available versions of EAX and their functions in relation to the previous version.

EAX 1.0

EAX 1.0 introduced in Sound Blaster Live! .

  • Hardware support for 8 simultaneously sounding channels.
  • Hardware support for 32 individual channels.
  • Hardware DSP Rendering.
  • Supports changing the place in the game of reverbs and reflections.
  • Has a large number of presets.
  • Allows (limited) modification of the ambience reverb.
  • Allows you to automatically change the intensity of reverberation, depending on the position of the sound source relative to the listener.

EAX 1.0 builds the soundstage based on pre-created presets, taking into account the distance between the sound sources and the listener. Accordingly, EAX 1.0 provides a large set of presets "for all occasions". It is also possible to change the parameters of the late reverb (dumping, level) and automatically change the level depending on the distance. This results in an improved perception of the distance to the source.

EAX 2.0

  • Updated reverb model.
  • Added effects of sound barriers (Obstructions) and absorptions (Occlusions).
  • Separate control of early reflections and late reverbs. Continuous control of room dimensions. Improved distance model to automatically control reverbs and initial reflections based on the location of the sound source relative to the listener.
  • Ability to take into account the sound properties of air (sound absorption).
  • Now, to use the effects of Environmental Audio does not require a description of the geometry of the room.

EAX 2.0 builds on the capabilities of the first version and creates even more realistic effects through support for sound occlusion and reflection, as well as improved sound direction detection technology.

EAX 3.0

  • Hardware support for 64 individual channels.
  • Control over early reverbs and reflections for each sound source.
  • Dynamic transition between surrounding models.
  • Improved distance model for automatic control of reverb and initial reflections depending on the position of sound sources relative to the listener.
  • Ray-Tracing calculations (ray reflection) to obtain reflection parameters for each sound source.
  • Separate reflections for distant echoes.
  • An improved distance representation designed to replace static reverb models.

EAX 3.0 combines the second version with more powerful features. A new level of realism is achieved through support for local reflections, isolated reflections, "seamless" transitions between sound stages and other features.

EAX 4.0

EAX 4.0 is featured in Sound Blaster Audigy 2 sound cards.

  • Real-time hardware effects
  • Many Simultaneous Environments
  • Distortion (Distortion)
  • Ring modulation effects

EAX 5.0

EAX 5.0 is featured in Sound Blaster X-Fi and ASUS ROG Xonar Phoebus sound cards.

  • Hardware support for 128 individual channels with 4 effects per channel.
  • EAX Voice (microphone input processing).
  • EAX PurePath (improving the positioning accuracy of virtual sound sources).
  • Environment FlexiFX (4 effect slots per channel).
  • EAX MacroFX (realistic close-range positioning effects).
  • Environment Occlusion (the effect gives the impression that the sound source is in a different place, behind the wall).

Future

According to Creative's OpenAL 1.1 specification, EAX should be considered obsolete. New developments should use the OpenAL EFX interface, which is more tightly integrated with the entire OpenAL environment.

EAX emulation

In addition to hardware devices, Creative has released EAX emulation drivers for computers with a built-in sound card.

The differences are in the software package. Sound Blaster Audigy ADVANCED MB includes Creative Audio Center, Creative MediaSource 5 Player/Organizer, Creative WaveStudio 7, Creative ALchemy; Sound Blaster X-Fi MB includes Entertainment Console, Creative Karaoke Player, Creative MediaSource 5 Player/Organizer, Creative WaveStudio 7, Creative Audio Console, Creative ALchemy.

Also known as Sound Blaster Audigy ADVANCED MB, it is similar to the Audigy 2 SE, and software supports EAX 3.0, which supports 64-channel software wavetables with DirectSound acceleration, but no hardware accelerated wavetable synthesis. The DAC is rated at 95dB signal to noise ratio.

It is available as a built-in option for Dell Inspiron, Studio and XPS laptops.

The latest drivers support EAX 4.0.

Sound Blaster X-Fi MB

Possibilities:

  • EAX 4.0 and OpenAL support
  • Crystallizer
  • CMSS-3D
  • Graphic equalizer
  • Creative ALchemy (Windows Vista only, enables EAX on Vista)
  • Console Launcher (Entertainment Mode)
  • Audio Console
  • Karaoke Player
  • creative wave studio
  • Creative Media Source

Unlike its predecessor, the Audigy Advanced MB, the X-Fi MB does not include the SoundFont software synthesizer. Another difference is that she has the option to participate in a 30-day trial.

The Environmental Audio eXtensions™ (EAX) spatial audio processing system is used by many game developers to create natural surround sound, tailored to the environment or space in which the game is set and where the sound sources are located. EAX can be thought of as a set of specifications that define models and algorithms for creating ambient or room sound effects based on reverberation (Environmental Audio stands for spatial sound).

The concept of "reverberation" (from the Middle Ages. Lat. reverberatio - reflection) is understood as an aftersound that persists after the sound source is turned off and is due to the non-simultaneous arrival of reflected or scattered sound waves at a given point. Reverberation has a significant effect on the audibility of speech and music in a room.

EAX also includes a set of API functions that allow the programmer to take advantage of EAX's hardware support. At the time of writing this article, the fourth version of EAX has already appeared, which is available on the Creative Labs website in the developer section.

The EAX API is an extension of the core DirectSound3D surround sound system. During the operation of the EAX application, the sound processing process is separated: DirectSound3D controls the location, the speed of movement in 3D space of the sound sources and the listener, and EAX makes such changes to the sound that characterize the space surrounding the sound source.

Support for the EAX system is provided at the hardware level by the built-in audio processors of sound cards (sound accelerators). Of course, this support is primarily implemented on Creative boards. EAX is based on the E-mu Environmental Modeling technology supported by the EMU10K1 audio processor installed on the SBLive! The EAX models take into account the type of sound emitters: headphones, stereo and quad system. The EMU10K1 audio accelerator decomposes any audio stream into multiple channels, and then applies reverberations to each channel in real time. Thanks to this, new sounds are created that are closer to their natural sound in real space.

since the human ear hears not only the sound coming directly from the source, but also perceives secondary (and later) sound vibrations, which are determined by the distance to the source, as well as the reverberation parameters, it is the distance and reverberation that can be considered the main characteristics of a space or room.

Initially, it was assumed that EAX would not use the geometric model of the scene, that is, sound sources could not be associated with graphic objects. The main thing was to create the sound atmosphere of the game scene, that is, to influence the emotional state of the player, just as in a movie, sound accompaniment always emphasizes the severity of emotions, focusing on the most important and neglecting minor sound details. Guided by this approach, the creators of EAX chose a static model of the sound environment as a basis, and not its geometric parameters. The static model automatically calculates the effects of reverb and reflection relative to the listener, taking into account the size of the room, the direction of the sound, and other parameters that the programmer can set for each sound source. Calculation of a static model requires less computational resources than models based on a geometric approach. EAX uses pre-prepared sound models, which are a set of numerical values ​​for the parameters of a room or space. These parameters do not characterize the location of objects in a room, as is the case in a geometric model, but the behavior of sound waves in such a room or space, that is, propagation delays, the degree of attenuation, sound absorption and sound reflection at different sound frequencies. If, according to the plot of the game, it is necessary to change a long corridor to a large hangar, then it is enough to change one static model (corridor model) to another (hangar model). Models of various rooms (their numerical values) are presented in EAX in the form of presets (presets). This approach provides a simpler programming of 3D sound in the game, reduces the amount of calculations when modeling the sound panorama. The resulting sound has a very realistic sound. On the other hand, the static nature of the method may be the reason that the selected preset during the game may no longer correspond to the graphic (geometric) representation of the scene. For example, in a geometric model, if, for example, the walls of a room collapsed, then the sound will change due to the model itself, and not forcibly, based on some other flags or signs. In the case of a static model, the sound will remain the same as before the walls collapsed until a different preset is selected.

EAX 1.0 Supports changing the location of reverbs and reflections; has a large number of presets; allows (with some restrictions) to change the reverberation parameters of the room; automatically change the intensity of the reverb, depending on the position of the sound source. EAX 1.0 builds the soundstage based on pre-created presets, taking into account the distance between the sound sources and the listener.

EAX 2.0 Updated reverb model; added effects of sound barriers (Occlusions) and obstacles (Obstructions); implemented separate control of early and late reflections; long-term control of the dimensions of the premises is possible; the acoustic properties of the air (sound absorption) are taken into account. Now, to use the effects of Environmental Audio does not require a description of the geometry of the room. EAX 2.0 builds on the features of the first version and creates even more realistic effects.

EAX 3.0 allows you to control the beginning of the reverb and early reflections for each sound source; implements a dynamic transition between space models; contains an improved distance model to automatically control reverb and initial reflections depending on the position of the sound sources relative to the listener. This specification already departs somewhat from the static model and incorporates methods common to geometric models: Ray-Tracing calculations to obtain reflection parameters for each sound source. In addition, separate reflections for distant echoes are implemented. An improved distance representation designed to replace static reverb models. EAX 3.0 combines the second version with new features. A higher level of realism is achieved with support for local reflections, isolated reflections, long scene transitions, and more.

FMOD tools for working with EAX

Popular with many developers (especially non-commercial software enthusiasts), the FMOD audio function library (by Firelight Technologies Pty) provides a number of options for working with the EAX system. About them further and will be discussed.

In order to get some idea about the FMOD library, it is recommended to read the article Using FMOD in sound games, which describes the basic principles of working with this library, as well as the sequence of actions (calls to the FMOD API functions) for creating surround sound sources and calculating the sound panorama .

At the moment (we are talking about FMOD version 3.74), the library supports EAX 2.0 and 3.0 (however, it is assumed that the EAX specifications are compatible "bottom up", that is, the settings for EAX 2.0 will be correctly supported by sound cards that implement EAX 3.0, etc. .).

Checking for EAX hardware support

Before using EAX to create a realistic soundscape, you need to determine if your sound card has such support. The FSOUND_GetDriverCaps() function is provided in the FMOD library for this purpose. As a parameter, this function takes an integer indicating the number of the audio device in the system. Zero value corresponds to the default device. On computers with one sound card, the default device is that sound card. As the second parameter, the function receives a pointer to an integer variable, that is, to the address in memory at which an integer will be written, which is a set of bit fields. These bit fields indicate which operating modes the sound card supports. The function returns TRUE on success, FALSE on error.

The fmod.h file defines three constants: FSOUND_CAPS_HARDWARE, FSOUND_CAPS_EAX2, FSOUND_CAPS_EAX3, which set bit fields indicating support for hardware 3D sound, EAX 2.0 and EAX 3.0, respectively.

/* An example of analyzing the capabilities of a sound card */ /* for win32 */ ... UINT caps = 0; UINT device_id = 0; //default device char msg_buf ; //buffer for message FSOUND_GetDriverCaps(device_id, &caps); msg_buf = 0; if (!caps) sprintf(msg_buf, "No hardware support for 3D sound and EAX.\r\n"); if (caps & FSOUND_CAPS_HARDWARE) strcat(msg_buf, "* 3D sound support\r\n"); if (caps & FSOUND_CAPS_EAX2) strcat(msg_buf, "* EAX 2 support \r\n"); if (caps & FSOUND_CAPS_EAX3) strcat(msg_buf, "* EAX 3 support \r\n"); // Display message MessageBox (NULL, msg_buf, "Information", MB_OK); ...

The FSOUND_GetDriverCaps() function must be called before calling the FSOUND_Init() function or after calling the FSOUND_Close() function;

Structures FSOUND_REVERB_PROPERTIES and FSOUND_REVERB_CHANNELPROPERTIES

From a programmer's point of view, the EAX specification can be thought of as a structure that describes the reverberation parameters of a room (space). There can be more than two dozen such parameters.

The FSOUND_REVERB_PROPERTIES structure contains parameters common to all existing sound sources. The FSOUND_REVERB_CHANNELPROPERTIES structure characterizes a single source (channel). The members of these structures are listed below, first for FSOUND_REVERB_PROPERTIES and then for FSOUND_REVERB_CHANNELPROPERTIES. Detailed consideration the physical meaning of these parameters is beyond the scope of the article. For all questions, please refer to the EAX documentation.

/* FSOUND_REVERB_PROPERTIES */ / The numbers reflect the range of values ​​and the default value. */ /* Integers typically represent decibels, */ /* Real numbers represent a linear relationship. */ unsigned int Environment /* 0 , 25 , 0 , sets all listener properties (WIN32/PS2 only) */ float EnvSize /* 1.0 , 100.0 , 7.5 , Room (space) size in meters(WIN32 only) */ float EnvDiffusion /* 0.0 , 1.0 , 1.0 , Permeability (diffuseness) of space (WIN32/XBOX) */ int Room /* -10000, 0 , -1000 , Level of severity of the room effect (at mid frequencies) (WIN32/XBOX/PS2) */ int RoomHF /* -10000, 0 , -100 , Relative level room effect at high frequencies (WIN32/XBOX) */ int RoomLF /* -10000, 0 , 0 , Relative level of room effect at low frequencies (WIN32 only) */ float DecayTime /* 0.1 , 20.0 , 1.49 , decay time mid-frequency reverbs (WIN32/XBOX) */ float DecayHFRatio /* 0.1 , 2.0 , 0.83 , high-frequency to mid-frequency decay time ratio (WIN32/XBOX) */ float DecayLFRatio /* 0.1 , 2.0 , 1.0 , low- frequency to mid-frequency decay time ratio (WIN32 only) */ int Reflections /* -10000, 1000 , -2602 , Early reflection level relative to room effect(WIN32/XBOX) */ float ReflectionsDelay /* 0.0 , 0.3 , 0.007 , Time initial reverb delays (WIN32/XBOX) */ float ReflectionsPan /* , , Early reflection panoramic vector (WIN32 only) */ int Reverb /* -10000, 2000 , 200 , Late reflection level relative to room effect (WIN32/XBOX) */ float ReverbDelay /* 0.0 , 0.1 , 0.011 , Late reflection delay time relative to initial reverb (WIN32/XBOX) */ float ReverbPan /* , , Late reflection panoramic vector (WIN32 only) */ float EchoTime /* .075 , 0.25 , 0.25 , echo time (WIN32/PS2 only. PS2 = Delay time for echo/DELAY modes only) */ float EchoDepth /* 0.0 , 1.0 , 0.0 , Echo depth (WIN32/PS2 only. PS2 = Feedback level for ECHO mode only) */ float ModulationTime /* 0.04 , 4.0 , 0.25 , Modulation time(WIN32 only) */ float ModulationDepth /* 0.0 , 1.0 , 0.0 , Modulation depth(WIN32 only) */ float AirAbsorptionHF /* -100 , 0.0 , -5.0 , Level change per unit length (absorption ) at high frequencies(WIN32 only) */ float HFReference /* 1000.0, 20000 , 5000.0 , reference high frequency (hz) (WIN32/XBOX) */ float LFReference /* 20.0 , 1000.0, 250.0 , reference low frequency (hz) ( WIN32 only) */ float RoomRolloffFactor /* 0.0 , 10.0 , 0.0 , Like FSOUND_3D_SetRolloffFactor but for room effect (WIN32/XBOX) */ float Diffusion /* 0.0 , 100.0 , 100.0 , Value that controls the echo density in the late reverberation decay. (XBOX only) */ float Density /* 0.0 , 100.0 , 100.0 , Value that controls the modal density in the late reverberation decay (XBOX only) */ unsigned int Flags /* FSOUND_REVERB_FLAGS - Modifies the behavior of the above struct members (WIN32/PS2 only ) */ /* FSOUND_REVERB_CHANNELPROPERTIES */ int Direct /* -10000, 1000, 0, direct path level (at low and mid frequencies) (WIN32/XBOX) */ int DirectHF /* -10000, 0, 0, relative direct path level at high frequencies (WIN32/XBOX) */ int Room /* -10000, 1000, 0 , 0, Room effect relative level at high frequencies (WIN32/XBOX) */ int Obstruction /* -10000, 0, 0, Attenuation at high frequencies (WIN32/XBOX) */ float ObstructionLFRatio /* 0. 0, 1.0, 0.0, Level of obstruction at low frequencies re. main control (WIN32/XBOX) */ int Occlusion /* -10000, 0, 0, main Occlusion control (attenuation at high frequencies) (WIN32/XBOX) */ float OcclusionLFRatio /* 0.0, 1.0, 0.25, occlusion low-frequency level re. main control (WIN32/XBOX) */ float OcclusionRoomRatio /* 0.0, 10.0, 1.5, relative occlusion control for room effect (WIN32) */ float OcclusionDirectRatio /* 0.0, 10.0, 1.0, relative occlusion control for direct path (WIN32) * / int Exclusion /* -10000, 0, 0, main exclusion control (attenuation at high frequencies) (WIN32) */ float ExclusionLFRatio /* 0.0, 1.0, 1.0, exclusion low-frequency level re. main control (WIN32) */ int OutsideVolumeHF /* -10000, 0, 0, outside sound cone level at high frequencies (WIN32) */ float DopplerFactor /* 0.0, 10.0, 0.0, like DS3D flDopplerFactor but per source (WIN32) * / float RolloffFactor /* 0.0, 10.0, 0.0, like DS3D flRolloffFactor but per source (WIN32) */ float RoomRolloffFactor /* 0.0, 10.0, 0.0, like DS3D flRolloffFactor but for room effect (WIN32/XBOX) */ float AirAbsorptionFactor /* 0.0, 10.0, 1.0, multiplies AirAbsorptionHF member of FSOUND_REVERB_PROPERTIES (WIN32) */ int Flags /* FSOUND_REVERB_CHANNELFLAGS - modifies the behavior of properties (WIN32) */

presets

As mentioned earlier, Creative Labs provides sets of numeric values ​​for the members of these structures. These numerical values ​​are present in the FMOD library as presets. Thanks to the presets, there is no need to independently conduct physical experiments to determine the parameters of a particular room, as well as the sound absorption and sound reflection of the material from which the walls are composed. The presets are made only for the FSOUND_REVERB_PROPERTIES structure. The numerical parameters of presets can be found in the fmod.h file, where they are declared using the #define instruction. Because of this, presets can only be used to initialize structures when they are declared, for example:

FSOUND_REVERB_PROPERTIES prop = FSOUND_PRESET_AUDITORIUM;

Here is a list of presets used when working with DirectSound3D on a Windows system:

  • FSOUND_PRESET_OFF - Reverb processing disabled
  • FSOUND_PRESET_GENERIC - default options
  • FSOUND_PRESET_PADDEDCELL - "cell (chamber), upholstered with material"
  • FSOUND_PRESET_ROOM - "room"
  • FSOUND_PRESET_BATHROOM - "bathroom"
  • FSOUND_PRESET_LIVINGROOM - "living room"
  • FSOUND_PRESET_STONEROOM - "room with stone walls"
  • FSOUND_PRESET_AUDITORIUM - "audience"
  • FSOUND_PRESET_CONCERTHALL - "concert hall"
  • FSOUND_PRESET_CAVE - "cave"
  • FSOUND_PRESET_ARENA - "arena"
  • FSOUND_PRESET_HANGAR "hangar"
  • FSOUND_PRESET_CARPETTEDHALLWAY - "carpeted corridor (entrance hall)"
  • FSOUND_PRESET_HALLWAY - "corridor" ("hallway")
  • FSOUND_PRESET_STONECORRIDOR - "corridor with stone walls and floor"
  • FSOUND_PRESET_ALLEY - "alley"
  • FSOUND_PRESET_FOREST - "forest"
  • FSOUND_PRESET_CITY - "city"
  • FSOUND_PRESET_MOUNTAINS - "rocks"
  • FSOUND_PRESET_QUARRY - "quarry"
  • FSOUND_PRESET_PLAIN - "steppe"
  • FSOUND_PRESET_PARKINGLOT - "parking lot"
  • FSOUND_PRESET_SEWERPIPE - "sewer pipe"
  • FSOUND_PRESET_UNDERWATER - "under water"
  • FSOUND_PRESET_DRUGGED - "slowed down"
  • FSOUND_PRESET_DIZZY - "dizzy"
  • FSOUND_PRESET_PSYCHOTIC - "psychotic"

Setting and reading spatial parameters

The FMOD library uses the FSOUND_Reverb_SetProperties() and FSOUND_Reverb_SetChannelProperties() functions to assign specific spatial parameters to a surround sound source. To get the set parameters, use inverse functions FSOUND_Reverb_GetProperties() and FSOUND_Reverb_GetChannelProperties(). Reverb settings can also be made while the sound is playing. In order for the new parameters to take effect, the FSOUND_Update() function must be called.

The functions FSOUND_Reverb_SetProperties () and FSOUND_Reverb_GetProperties () are intended to set and get the general parameters of the environment, respectively. Both functions take one single parameter - a pointer to an FSOUND_REVERB_PROPERTIES structure that conforms to the EAX specification. In the case of FSOUND_Reverb_SetProperties(), this pointer must address an already initialized structure filled with the required numeric values. In the case of FSOUND_Reverb_GetProperties(), the pointer points to a memory area dedicated to storing numeric values. The functions return TRUE on success, FALSE otherwise.

/* Example of setting reverb parameters */ FSOUND_REVERB_PROPERTIES props = FSOUND_PRESET_STONEROOM; if (!FSOUND_Reverb_SetProperties (&props)) ( /* error handling */ ... ); FSOUND_Update(); ...

A separate sound source (channel) can be assigned reverb model parameters (including such as obstruction and occlusion) using the FSOUND_Reverb_SetChannelProperties () function, and read them using FSOUND_Reverb_GetChannelProperties (). These functions take two parameters. The first, as with all FMOD functions that work with channels, is the channel number through which the sound is being played. The second parameter is a pointer to a FSOUND_REVERB_CHANNELPROPERTIES structure. When FSOUND_Reverb_SetChannelProperties() is called, it must address an already initialized structure, and when FSOUND_Reverb_GetChannelProperties() is called, free space in memory is sufficient to store the received values. For the FSOUND_Reverb_SetChannelProperties () function, the FMOD library has no presets, so the choice of numerical values ​​for certain members of the FSOUND_REVERB_CHANNELPROPERTIES structure falls on the programmer's shoulders.

/* Example of setting reverb parameters */ /* for a separate sound source */ ... int channel; // channel number FSOUND_SAMPLE *samp = NULL; // pointer to the sound buffer // initialization of the structure with the necessary values ​​FSOUND_REVERB_CHANNELPROPERTIES channel_props = (... ); // load sound data samp = FSOUND_Sample_Load(FSOUND_FREE, "motor.wav", FSOUND_HW3D | FSOUND_LOOP_NORMAL, 0, 0); // opening a playback channel channel = FSOUND_PlaySound(FSOUND_FREE, samp); // set reverb parameters if (!FSOUND_Reverb_SetChannelProperties (channel, &channel_props)) ( /* error handling */ ... ); FSOUND_Update(); ...

Program example

As an example of working with the FMOD functions and the EAX system, a program in the C programming language (ANSI C) is provided that creates a Windows application in the form of a dialog box in which you can select one of the presets from the list and listen to how the sound of the surround sound source changes. When the application starts, a dialog is displayed to select a sound file. In addition, the application allows you to view the parameters of the sound card: the presence of hardware support for 3D sound and EAX (of course, the effects of spatial sound will take place only if the sound card supports EAX). The program is written and compiled using the lccwin32 package, but a programmer using a different development environment will not find it difficult to adapt the source code to his needs. It should be noted that FMOD includes several libraries (.lib), each of which is designed for its own compiler.

  • fmodbc.lib - for Borland C Builder
  • fmodlcc.lib - for lccwin32
  • fmodvc.lib - for Microsoft Visual C/C++
  • fmodwc.lib - for Watcom C++

The proposed example uses the Win32 API functions and the FMOD libraries. For the program to work, you must install the fmod library on your computer or place the fmod.dll library file in the folder with the executable file (eaxdemo.exe).

  • Don't forget to unzip the files.

Sound plays an important role in modern games. Of course, it is nice to see a beautiful picture on the screen, but the sound also plays an important role in creating the atmosphere. After all, space is not limited to the area that falls into the field of view of the protagonist. Sensible implementation allows you to hear the difference in the shot from different types of weapons, determine whether the enemy is indoors or outdoors. In genres like horror and online shooters, the importance of the sound range can hardly be overestimated.

It is about three-dimensional sound, engines, manufacturers that we will talk about in this review article.

3D sound refers to the arrangement of sound sources around the listener.

3D sound can be divided into two parts. Firstly, this is the atmosphere (music, general effects, reverb - type of room, environment). Secondly, positioning, so that the player can determine where the sound source is located, as well as, ideally, its height and dimensions.

Schematic representation of how reverb effects allow you to determine the parameters of the room by ear

Various technologies are used to enhance the sensation of the listener's perception of sound. It is their high-quality implementation that makes the world around the player not only exude bright colors, but also turns it into a truly three-dimensional space.

Today, there are a number of different sound APIs. We will talk about those that are either still in use or of historical value.

Current Sound APIs

OpenAL (Open Audio Library)

This API uses EAX effects. This interface is used in id Tech 3 and 4 engines (DOOM 3, Enemy Territory: Quake Wars, Prey, Quake 4, Wolfenstein), some games based on Unreal Engine 3, as well as in a number of many other projects (Battlefield 2, S.T.A.L.K.E.R., F.E.A.R., FarCry, Time Shift and others).


Interestingly, Creative only allowed id Software's proprietary shadow processing technology to be used in exchange for DOOM 3's OpenAL support.

OpenAL was developed exclusively by Creative programmers. Full implementation of the most significant functions and OpenAL features only exist for Creative cards under Windows. For other cards and operating systems, the implementation is very simplified, basic. This is because it requires hardware support, and only Creative cards have a hardware processor.

Thus, if the game uses OpenAL, then the sound on the integrated sound on the Creative sound card will be very different. Of course, in favor of the latter. If the Creative sound card does not have a hardware processor, then software emulation up to EAX 4.0 is used, which is not available to cards from other manufacturers. Although this emulation technology can be licensed for money even for integrated sound. At the same time, EAX 5.0 does not exist without hardware support. Development of OpenAL stopped in 2005.

DirectSound

A programming interface that is part of DirectX. The oldest and most common API. This API allows you to have a weak and resource-intensive software implementation of 3D sound, which no one uses in games, but it allows you to use the hardware implementation of existing effects. Thus, the sound of different DirectSound sound cards is different.

It is interesting that "hardware" calls for many cards are implemented in software. So integrated audio often has "hardware" 3D audio implemented in drivers. This implementation is very different from the real hardware one in terms of quality and capabilities.

With the release of Windows Vista and significant changes in its architecture, DirectSound lost support for 3D sound. There was one problem here: many games that were released before the release of the new operating system were left without sound effects. In 2007, Creative developed the Creative ALchemy technology for X-Fi and Audigy, which intercepts DirectSound calls and translates them into similar OpenAL commands. Thanks to this, old games have support for 3D sound and EAX in Windows Vista and Windows 7 operating systems. In addition, ASUS offers the Xonar GX2.5, which also allows you to emulate DirectSound in outdated projects. ASUS emulation is predictably inferior due to the lack of hardware capabilities in the cards of this manufacturer, moreover, it works less stably.


At one time, buyers of Windows Vista were greatly puzzled by the lack of 3D sound in games. One of the many reasons why hardcore gamers were slow to switch to the then new operating system

In addition to sound APIs, there are also sound engines. It's like graphics engines that are responsible for appearance games. They are high-level functions that greatly simplify the life of programmers. At a low level, sound engines use the basic functions of DirectSound or some other audio output API.

The most popular sound engines

FMOD

Seven years ago, FMOD was considered “young and promising”, and now it is actively gaining momentum. One of the features is multi-platform (support for Xbox 360, Playstation 3 and Nintendo Wii) and the ability to work with different formats on different platforms. A lot of projects using FMOD have already been released, including such hits as World of Warcraft, Bioshock 1 and 2, Starcraft 2: Wings of Liberty, Mafia 2 and others. Also announced are Crysis 2, Deus Ex: Human Revolution, The Witcher 2: Assassins of Kings.

MilesSS

MilesSS is by far the most famous sound engine in existence today. The official website claims support for 5000 games. However, there are not so many projects of the last few years on the impressive list, although there are Call of Duty: Modern Warfare and Call of Duty: World at War. This engine was used by Painkiller, Gothis, and many other popular games. In addition, Valve uses the MSS library version 6.6a in the Source engine (Half-Life 2, Portal, Team Fortress 2, Left for Dead 1 and 2). The latest version of MilesSS is dated October 2008.

EAX (Environmental Audio Extensions)

Finally, let's focus on the EAX (Environmental Audio Extensions) system. EAX 5.0 is now available to developers and supports many features. In particular, it is this system that is in the most common Unreal Engine 3 to date. In addition, EAX of different versions can be found in many games. Proper use of the potential of this technology allows you to create amazing sound effects.

It was EAX that had a significant impact on the development of sound cards, contributed to the introduction of many effects to create a unique atmosphere. Connoisseurs will remember that one of the key features of the now cult project Thief was not only unique game mechanics, but also amazing sound. It was the soundtrack that made it possible to position every rustle, correctly assess the situation, and plunge headlong into the world of the thief Garrett. By the standards of the time, this was a real breakthrough. Thief: The Dark Project was one of the first games to show that 3D sound and EAX technology had a future.


Thanks to the technological sound, Thief had an amazing atmosphere and was one of the main reasons for buying Creative sound cards.

Specifications of different versions of EAX should be considered separately.

EAX 1.0

  • Hardware support for 8 simultaneously sounding channels.
  • Hardware support for 32 individual channels.
  • Hardware DSP Rendering.
  • Supports changing the place in the game of reverbs and reflections.
  • Has a large number of presets.
  • Allows (limited) modification of the ambience reverb.
  • Allows you to automatically change the intensity of the reverb, depending on the position of the sound source relative to the listener
  • Sound Blaster Live!
  • Unreal
  • Unreal Tournament
  • Thief: The Dark Project

EAX 2.0

Functions in relation to the previous version

  • Updated reverb model.
  • Added effects of sound barriers (Obstructions) and absorptions (Occlusions).
  • Separate control of early reflections and late reverbs. Continuous control of room dimensions. Improved distance model to automatically control reverbs and initial reflections based on the location of the sound source relative to the listener.
  • Ability to take into account the sound properties of air (sound absorption).
  • Now, to use the effects of Environmental Audio does not require a description of the geometry of the room.

Creative sound cards that support the technology

  • Sound Blaster Live! 5.1

Examples of games that supported the technology

  • Thief 2: The Metal Age
  • half-life 2

EAX Advanced HD 3.0

Functions in relation to the previous version

  • Hardware support for 64 individual channels.
  • Control over early reverbs and reflections for each sound source.
  • Dynamic transition between surrounding models.
  • Improved distance model for automatic control of reverb and initial reflections depending on the position of sound sources relative to the listener.
  • Ray-Tracing calculations (ray reflection) to obtain reflection parameters for each sound source.
  • Separate reflections for distant echoes.
  • An improved distance representation designed to replace static reverb models.

Creative sound cards that support the technology

  • Sound Blaster Audigy

Examples of games that supported the technology

  • Star Wars: Knights of the old Republic 2 – The Sith Lords
  • Tom Clancy's Splinter Cell
  • Unreal Tournament 2003

EAX Advanced HD 4.0

Functions in relation to the previous version

  • Real time hardware effects.
  • Many simultaneous environments.
  • Flange (Flanger).
  • Echo (Echo).
  • Distortion (Distortion).
  • ring modulation effect.

Creative sound cards that support the technology

  • Sound Blaster Audigy 2
  • Sound Blaster X-Fi Extreme Audio

Examples of games that supported the technology

  • F.E.A.R.
  • GTA: San Andreas
  • Medieval 2: Total War
  • Thief 3: Deadly Shadows

EAX Advanced HD 5.0

Functions in relation to the previous version

  • Hardware support for 128 individual channels with 4 effects per channel.
  • EAX Voice (microphone input processing).
  • EAX PurePath (improving the positioning accuracy of virtual sound sources).
  • Environment FlexiFX (4 effect slots per channel).
  • EAX MacroFX (realistic close-range positioning effects).
  • Environment Occlusion (the effect gives the impression that the sound source is in a different place, behind the wall)

Creative sound cards that support the technology

  • All Sound Blaster X-Fi series sound cards except X-Fi Extreme Audio

Examples of games that supported the technology

  • bioshock
  • Battlefield 2
  • Doom 3

The conclusion from the material presented above suggests itself, namely: cross-platform and ease of use are necessary conditions for success. Still, in the current situation, when all publishers (except Microsoft, Sony and Nintendo) prefer to release their games on three (at least two) platforms at the same time, the ability to easily apply features to both PC and consoles comes to the fore. FMOD, which gained popularity, is the clearest proof of this.

Manufacturers

Creative

Of course, when talking about gaming-oriented sound cards, it is Creative that immediately comes to mind for many. For almost three decades of its existence, the manufacturer has repeatedly presented pleasant surprises to sound lovers, although the company's pricing policy has caused an ambiguous reaction. Now the company's product range has enough products of the X-Fi series with the usual PCI Express interface and with USB, from the budget price category to premium class cards.

Auzentech

The Korean company Auzentech produces gaming sound cards based on the Creative X-Fi chip. These products have interesting characteristics and are suitable for both audiophiles and games, but, unfortunately, few people here know about this company and these products are not so easy to find in stores.

ASUS

Not so long ago, another player appeared on the sound card market, which is hard to miss. It's about about the company ASUS, whose name was associated with motherboards, video cards, laptops, optical drives.

These sound cards are designed and manufactured by the friendly Taiwanese company C-Media. ASUS acts only as an OEM customer and development sponsor. Associated with this is the often unstable operation of ASUS cards and modest capabilities, which is not typical for other products from this manufacturer.

At the moment, there are several series of sound cards, all under the common name Xonar. Each series is positioned for different needs: one is focused on games, another - on watching movies, the third - on listening to music. In the game line we are interested in, there are enough models with very tempting features. However, ASUS cards do not offer any advantages in games over integrated sound. The software implementation of many functions fails, and besides, it is not the newest.

We will not name all manufacturers. There are plenty of reasons for this: the lack of proper information from companies, and problems with delivery to Russia, and focus on a narrow circle of professionals, and not on the broad masses of consumers. For the players, they are not of particular interest.

Now manufacturers offer a wide range of different sound cards that support modern effects. Due to the affordability and fairly democratic pricing policy, the issue of purchasing a separate sound card is not so acute. For example, the X-Fi Xtreme Gamer “gaming” sound card with a real X-Fi hardware sound processor costs $80, which is not much compared to “gaming” video cards, processors and other components.



Similar articles