What's New in 1.06

FMOD Studio API

Firelight Technologies FMOD Studio API

What's New in 1.06

This section describes the major features introduced in the 1.06 release. See the Detailed Revision History for information regarding each patch release.

Bank Loading Changes

Studio now does all file loading on a separate loading thread. This avoids any hitches in scheduling that may occur when loading large banks. The interface is unchanged since the FMOD_STUDIO_LOAD_BANK_NONBLOCKING flag already exists.

Banks loaded with FMOD_STUDIO_LOAD_BANK_NONBLOCKING will no longer be destroyed if the loading fails, instead they will remain in an error state that can be queried with Studio::Bank::getLoadingState. Banks that enter the error state should be released by calling Studio::Bank::unload.

Several enhancements were made for FMOD_STUDIO_LOAD_MEMORY_POINT. Extra data can be associated with the bank by Studio::Bank::getUserData and Studio::Bank::setUserData. There is a new callback FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD which is called when banks are asynchronously unloaded. That provides a convenient place to free any memory associated with the bank.

The load_banks example has been updated to demonstrate all the methods of loading banks.

API Capture and Replay

API command capture functionality has been improved. API commands are now captured when recording a profiling session in Studio, allowing sound designers to create API command captures without the need for programmer support.

API captures now write out the initial state of the playback system including currently loaded banks as well as the state of all created event instances. This allows API captures to be taken mid-game without missing any information.

Studio::System::loadCommandReplay now returns a CommandReplay object that has functionality for querying information as well as starting, stopping, and pausing playback. Playback is now asynchronous.

Multiple listener support

The Studio API has been updated to support multiple listeners. Studio::System::setNumListeners and Studio::System::getNumListeners has been added, and the existing Studio::System::setListenerAttributes and Studio::System::getListenerAttributes functions now take a listener index.

Doppler is disabled when in multiple listener mode.

As part of this change, there is a new DSP data parameter FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI that can be used for DSP panners that want to support multiple listener panning.

FADPCM Compression

This new compression format is recommended for all developers targeting mobile devices, PS Vita or Wii U and is considered a drop in replacement for IMA ADPCM compression. It achieves a slightly higher compression ratio, 3.66:1 compared with 3.55:1 while being a step up in quality. However the main benefit of this new custom format is the ground up design for efficient decoding, in some cases twice as fast as IMA ADPCM.