A dll that pretends to be a DirectSound3D EAX 2 compatible sound card, but shims to OpenAL

Chris Robinson 9d3ede6d9f Set better context creation attributes 5 months ago
build 98584ab11d Initial check-in 7 years ago
cmake 98584ab11d Initial check-in 7 years ago
include e0443be09c Include OpenAL Soft's headers instead of using the SDK's 10 months ago
.gitignore f3c079ee3e Add a .gitignore to ignore the build directory 7 years ago
CMakeLists.txt 112c04c7ef Implement chorus effect handling 9 months ago
buffer.c 9def9a6720 Fix for the primary fx slot being set to null 5 months ago
capture.c 1d1c697121 Define GUIDs correctly 10 months ago
chorus.c b892cb5bed Clean up some return value handling 9 months ago
debug.c 1995d2dbd4 Fix type conversion warnings for MSVC 10 months ago
dsound.def 0da71b7a87 Rename dsound-mingw.def since it's not MinGW-specific 10 months ago
dsound8.c 9d3ede6d9f Set better context creation attributes 5 months ago
dsound_main.c 841ecbcf7d Avoid type-punning with casts 8 months ago
dsound_private.h 82f634c0e4 Store source send properties for all possible effect slots 6 months ago
duplex.c 5f45d37bf0 Use common formatting for reference traces 9 months ago
eax-presets.h 8d94415153 Make a macro for the default chorus parameters 9 months ago
eax.c db424e7d35 Special-case EAX2's occlusion room ratio 7 months ago
eax.h 2f91688961 Move EAX3 declarations to a separate header 9 months ago
eax3.h ba63e578cc Combine identical type definitions 9 months ago
eax4.c 82f634c0e4 Store source send properties for all possible effect slots 6 months ago
eax4.h 164d30a24e Fix a macro typo 9 months ago
primary.c 82f634c0e4 Store source send properties for all possible effect slots 6 months ago
propset.c 6e1c92f30a Report more correct DirectSoundPrivate device info 9 months ago
readme.txt 194b780c5a Add a basic readme 8 months ago
reverb.c b892cb5bed Clean up some return value handling 9 months ago
version.rc ea6e048917 Add the class resources for Wine-based builds 7 years ago

readme.txt

About
=====

This project is for a DirectSound DLL replacement. It implements the
DirectSound interfaces by translating the calls to OpenAL, and fools
applications into thinking there is a hardware accelerated sound device. EAX is
also implemented (up to version 4) by using OpenAL's EFX extension, allowing
for environmental reverb with sound obstruction and occlusion effects.

Ultimately, this enables DirectSound applications to enable their DirectSound3D
acceleration path, and turn on EAX. The actual processing is being done by
OpenAL with no hardware acceleration requirement, allowing it to work on
systems where audio acceleration is not otherwise available.

Or more succinctly: it enables DirectSound3D surround sound and EAX for systems
without the requisite hardware.


Source Code
===========

To build the source, you will need CMake 2.6 or newer (you can get it from
). You can either use the CMake GUI, specifying the
directories for the source and where the build files should go, or using one of
the command-line programs, for example by first making sure to be in an empty
directory where the build files will go (such as the provided build/ sub-
directory) and running cmake with the path to the source.

Once successfully built, it should have created dsound.dll.


Usage
=====

Once built, copy dsound.dll to the same location as the desired application's
executable. You must also provide an OpenAL DLL in the same location, named as
dsoal-aldrv.dll, or else the DLL will fail to work. Some applications may need
to be configured to use DirectSound3D acceleration and EAX, but it otherwise
goes to work the next time the application is run.


Source releases, the Git repository, and Windows binaries for OpenAL Soft are
available at its homepage .
Instructions are also provided there.