What's New in 1.05

FMOD Studio API

Firelight Technologies FMOD Studio API

What's New in 1.05

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

MixerStrip Replaced by Bus and VCA

The Studio::MixerStrip class has been replaced by Studio::Bus and Studio::VCA to better reflect the differences between the two concepts. The new classes do not have a release method, as their handles remain valid until the bank containing them is unloaded.

Get Event functions

The Studio::System::getEvent, Studio::System::getBus, Studio::System::getVCA and Studio::System::getBank functions now take a string that can either be the full path or the string representation of the ID. This avoids the additional call to Studio::parseID or Studio::System::lookupID in most cases.

The functions to get by ID are now named Studio::System::getEventByID, Studio::System::getBusByID, Studio::System::getVCAByID, and Studio::System::getBankByID.

Bus ChannelGroup Lifetime

Each bus's channelgroup is now created and destroyed on demand. This means it only exists if at least one event instance routes into the bus. If it doesn't exist, Studio::Bus::getChannelGroup will return FMOD_ERR_STUDIO_NOT_LOADED.

Event Instance Release Behavior Change

Studio::EventInstance::release no longer invalidates the handle immediately. Instead, the handle remains valid until the instance stops and is actually destroyed. In addition, this function no longer checks if the event will stop naturally. Looping events will not be destroyed until they are manually stopped.

This change also means that event callbacks will continue to be fired after Studio::EventInstance::release is called until the instance is actually destroyed. This can be prevented by setting the callback to NULL before calling Studio::EventInstance::release.

Event Stop Behavior Change

Events with sounds triggered by parameters will now stop once all sounds have finished and the timeline cursor has reached the end. Previously these events would go idle instead of stopping. The old behavior can be achieved by adding a sustain point to the timeline.

Deprecated Function Removed

Studio::EventInstance::createSubEvent has been removed. Use Event Sounds instead.

Wide String API

All FMOD functions dealing with file names and paths now accept UTF-8 encoded strings. All arguments that take or return UTF-16 encoded strings have been removed, as have flags that indicate an UTF-16 string has been passed.

UTF-8 encoded strings can be used to access file paths containing non-ASCII characters on Windows, PS3, PS4, PS Vita, XBox One, iOS, Android, Mac, Linux, Windows Phone, and Windows Store.

Added AAC Support for Android

It is now possible to load AAC files on Android 4.2 or newer devices. This can make use of any hardware accelerated decoding provided by the platform.

Improved Logging Output

For greater control of the logging version of FMOD, i.e. fmodL / fmodstudioL you can now use FMOD::Debug_Initialize to specify both logging level and destination. By default all output will go to the TTY / stderr / logcat / platform specific debug location. Using this new API you can also send output to file or callback for integration into custom logging systems.

DSP Reset Callback Behavior Clarified

The FMOD_DSP_RESET_CALLBACK documentation has been updated to make it clear that it should leave public parameters unchanged.