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.