General Development

Sound Effects in OpenAL – WilliamLow

WilliamLow
Member

Posts: 15
From: Ontario, Canada
Registered: 09-21-2005
Hi,

Does anyone know how to create sound effects in openAL? Such as Rerverb, and delay?

I did some research on reverberation, and it seems that creating a reverb algorithm is somewhat like an art itself. Thanks.

vincent

Member

Posts: 129
From: Amersfoort, the Netherlands
Registered: 12-23-2002
Maybe this helps: http://www.harmony-central.com/Effects/Articles/Reverb/

Long live google.. so basically its a kind-of echo, but with a very short delay, which changes over time... maybe by using a sine or something you can simulate this. Depending on the type of the room, you might need to filter out the bass. I never tried building a reverb, but I think you might get pretty far by just playing.

WilliamLow
Member

Posts: 15
From: Ontario, Canada
Registered: 09-21-2005
Ok, thanks for the link. I'll check it out.
GUMP

Member

Posts: 1335
From: Melbourne, FL USA
Registered: 11-09-2002
http://www.devmaster.net/articles.php?catID=6

ftp://216.61.164.51/OpenAL_Programmers_Guide_US_Letter.pdf

Reverb can simply be done with a sample-queue that feeds back the last N samples onto the current samples - apply some filters (like the bi-quad-resonance-filter) to tune the reverbation effect.

But if you don't feel like programming such effects yourself just sign up with Creative's developer program and use their EAX extensions to OpenAL:

http://developer.creative.com/

Now you don't have to sign up with Creative if all you want is the capabilities of EAX2.0 (which includes reverb). Download the SDK here:

http://developer.creative.com/articles/article.asp?cat=1&sbcat=31&top=71&aid=138&file=EAX20SDK.exe

If you're never planning on releasing your stuff commercially you can use FMOD:

http://www.fmod.org/

GUMP

Member

Posts: 1335
From: Melbourne, FL USA
Registered: 11-09-2002
For most Creative cards (Live 5.1 - Audigy2zs) the OpenAL Windows driver/wrapper is outdated (even in the most updated Creative drivers). Moreso, many games include this file in their game directory as a wrapper, and go through this file instead of the one in the system32 directory. This can cause performance problems and EAX effects to not work as well as they should. Many games actually ship with an alpha version of this file.

Here is a list of some games that include outdated files:
# AlienFlux (Linux, Macintosh, Windows)
# America's Army: Operations (Linux, Macintosh, Windows)
# Battlefield 2 (Windows)
# Blender 3D (FreeBSD, Irix, Linux, Macintosh, Solaris, Windows)
# A Tale in the Desert II (Linux, Macintosh, Windows)
# Bridge Construction Set (Linux, Windows)
# Dark Horizons: Lore (Linux, Macintosh, Windows)
# Escape From Monkey Island (Macintosh)
# E.V.E. Paradox (Linux, Windows)
# FlightGear (Linux, Macintosh, Windows)
# Gish (Linux, Macintosh, Windows)
# Harry Potter and the Chamber of Secrets (Macintosh, Windows)
# Hot Potato Online (Linux, Windows)
# Jedi Knight: Jedi Academy (Macintosh, Windows)
# Jedi Knight 2 (Macintosh, Windows)
# Marble Blast (Linux, Macintosh, Windows)
# MegaCorps Online (Linux, Macintosh, Windows)
# Novus Aster (Windows)
# Orbz (Linux, Macintosh, Windows)
# Pariah (Windows)
# PlaneShift (Linux, Macintosh, Windows)
# Postal 2 (Windows)
# Psychonauts (Windows)
# Puppytron (Linux, Macintosh, Windows)
# Shellshock Nam '67 (Windows)
# Skyrocket Screensaver (Linux, Windows)
# Soldier of Fortune 2 (Windows)
# Star Wars Republic Commando (Windows)
# Super Dudester (Linux, Macintosh, Windows)
# SWAT 4 (Windows)
# Think Tanks (Linux, Macintosh, Windows)
# Tribes: Vengeance (Windows)
# Unreal 2 (Windows)
# Unreal Tournament 2003 (Linux, Macintosh, Windows)
# Unreal Tournament 2004 (Linux, Macintosh, Windows)
# X-Plane (Linux, Macintosh, Windows)

(List from here: http://boards.ign.com/Battlefield_2/b7641/94189703/?22 )

First, make sure you have the latest drivers for your sound card installed from Creative.

Here is a fix for these problems. Go here and download and run the installer: http://developer.creative.com/articles/article.asp?cat=1&sbcat=31&top=38&aid=46

This will install the new files into the system32 directory.

Go to your game directory and their should be a file with OpenAL in the name (UT2004 is DefOpenAL32.dll, BF2 is BF2OpenAL.dll). Put a .bak at the end of these files names.

Now, go to system32 and copy OpenAL32.dll (should be version 6.14.357.8 ) . Paste this in your game directory and rename it to the original file name of the OpenAL file included with the game (so rename it to DefOpenAL32.dll for UT2004 and BF2OpenAL.dll for BF2).

That should be it. I found this problem in the EA forums (http://forum.eagames.co.uk/viewtopic.php?t=3256) and it seems to fix a million BF2 problems. It even makes EAX work correctly.

I tried this in BF2, UT2004, and Psychonauts and I am getting less stuttering and better EAX sounds. I never had any crashing problems to begin with, but others have reported that these fix a lot of them.

Of course, this can cause some problems on people's systems, but it's easy enough to go back. For most people, it fixes a lot.

[This message has been edited by Gump (edited October 21, 2005).]

WilliamLow
Member

Posts: 15
From: Ontario, Canada
Registered: 09-21-2005
Thanks for the replies Gump