Oculus Spatializer For FMOD Integration Guide
Oculus Spatializer For FMOD Integration Guide
Oculus Spatializer For FMOD Integration Guide
The Oculus Spatializer Plugin (OSP) is an add-on plug-in for FMOD Studio that allows
monophonic sound sources to be properly spatialized in 3D relative to the users head location. This integration guide outlines how to install and use OSP in both FMOD Studio
and the end-user application.
Known Issues
Note: This is an ALPHA release. Please keep the following caveats in mind when using this plugin!
1. HQ path is slower than the Fast path. Also, CPU usage increases when early reflections are turned on, and continue to increase relative to room dimensions.
2. Some functionality is still not complete (e.g., boost and priority systems).
3. Users may hear a click when a sound is stolen by one with higher priority.
Directory Structure
The following directories may be found within this distribution file:
\Win32 and \x64
Contains the plugin dll for Windows 32-bit and 64-bit, respectively.
1.
Note: For distance attenuation, automate the master track volume with a distance parameter.
Notes
When using the main (High Quality) spatializer, up to eight sounds running through the
bus may be spatialized. If the Fast spatializer is selected, up to 64 sounds may be spatialized.
Make sure that your Project Output Format is set to stereo in FMOD Studio (Edit Preferences Format Stereo).
Note that the room represents a box that follows the listeners position and rotates along
with the listeners orientation. Future implementation of early reflections will allow listeners to walk freely around the room.
When using early reflections, be sure to set non-symmetrical room dimensions. A perfectly cubical room may create re-enforcing echoes which cause the sound to be poorly
spatialized.
PRIORITY
You may assign the priority to a sound. When all spatialized voices within the bus are being used, a spatialized sound will yield spatialization to any sound with a higher priority.
The default is set to Highest; there are 10 levels of priority available for a sound.
FREQUENCY HINT
You can set a frequency hint for a given sound. The choices are None, Wideband and
Narrowband. The hint is used to determine the trade off between smoothness and responsiveness. Wideband is good for sounds with a broad frequency content, such as
music and speech. Narrowbandshould be used for highly tonal sounds with narrow
frequency content which will require greater smoothing.None is in between, and is the
default. As a rule of thumb if a certain sound is producing discontinuities such as clicking or crackling as its position changes, this can be resolved by choosing a narrower frequency hint.
BASS BOOST
You may set bass boost for a given sound to compensate for HRTF bass attenuation. Default is off.
ALTERNATE
This sound will use the fast spatializer. This will allow you to have more than 8 spatialized sounds playing using a combination of fast and HQ encoded sounds.
SOUND PROPERTIES
Prefer mono sounds and/or set the the master track input format to mono (by rightclicking on the metering bars on the left side).
FMOD::System* lowLevelSystem;
ERRCHECK( system->getLowLevelSystem(&lowLevelSystem) );
intsampleRate = 0;
ERRCHECK(lowLevelSystem->getSoftwareFormat(&rate, NULL, NULL));
intbufferSize=0;
ERRCHECK(lowLevelSystem->getDSPBufferSize(&bufferSize,NULL));
OSP_FMOD_Initialize(sampleRate, bufferSize);
OSP_FMOD_SetSimpleBoxRoomParameters(5.0f, 2.1f, 3.7f, 0.75f, 0.65f,
0.55f, 0.25f, 0.65f, 0.65f);
ERRCHECK( system->initialize(32, FMOD_STUDIO_INIT_NORMAL,
FMOD_INIT_NORMAL, extraDriverData) );
ERRCHECK(lowLevelSystem->loadPlugin(''arhrtf32.dll'', NULL) );