# 1. Welcome to the FMOD Engine | New in FMOD Engine 2.00

## What's New in 2.00?

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

### Global Parameters

The Studio API now supports global parameters. These parameters are controlled via the System parameter API and have a single value that is shared between all instances. This feature is intended for parameters like "time of day" or "wind speed" that affect a number of different events at the same time.

Global parameters are read-only when accessed via an event. They must be accessed via the System parameter API in order to set their value.

### Global Mixer Automation

The Studio API now supports automation of objects in the global mixer (for example effect parameters or bus volume). Parameters that drive global mixer automation are controlled via the System parameter API.

### New Parameter API

The Studio parameter API has been updated to support global parameters and provide a more robust fast path for setting parameter values frequently:

- Indices have been replaced with IDs. These IDs are intended to be cached by game code, and provide fast access while remaining stable if the parameter list changes due to live update or bank loading.
- A global parameter API has been added to the Studio::System class.
- The Studio::EventDescription parameter functions have been renamed to be consistent with the corresponding System functions.
- The '...ByName' parameter functions now accept paths (which can be copied from FMOD Studio) as well as short parameter names.
- The FMOD_STUDIO_PARAMETER_DESCRIPTION index field has been replaced with an id field.
- A flags field has been added to FMOD_STUDIO_PARAMETER_DESCRIPTION. It provides information on whether the parameter is read-only, automatic, or global.
- The deprecated ParameterInstance class has been removed.

The following event functions have been added:

- Studio::EventInstance::getParameterByID
- Studio::EventInstance::setParameterByID
- Studio::EventInstance::setParametersByIDs
- Studio::EventDescription::getParameterDescriptionByID

In addition, to support global parameters, the following system functions have been added:

- Studio::System::getParameterByID
- Studio::System::setParameterByID
- Studio::System::setParametersByIDs
- Studio::System::getParameterByName
- Studio::System::setParameterByName
- Studio::System::getParameterDescriptionByName
- Studio::System::getParameterDescriptionByID
- Studio::System::getParameterDescriptionCount
- Studio::System::getParameterDescriptionList

The following functions have been renamed:

- Studio::EventInstance::getParameterValue is now Studio::EventInstance::getParameterByName
- Studio::EventInstance::setParameterValue is now Studio::EventInstance::setParameterByName
- Studio::EventDescription::getParameterCount is now Studio::EventDescription::getParameterDescriptionCount
- Studio::EventDescription::getParameterByIndex is now Studio::EventDescription::getParameterDescriptionByIndex
- Studio::EventDescription::getParameter is now Studio::EventDescription::getParameterDescriptionByName

The following functions have been removed:

- Studio::EventInstance::getParameterValueByIndex
- Studio::EventInstance::setParameterValueByIndex
- Studio::EventInstance::setParameterValuesByIndices
- Studio::EventInstance::getParameter
- Studio::EventInstance::getParameterByIndex
- Studio::EventInstance::getParameterCount

### Sample Data Encryption

Bank sample data can now be encrypted using FMOD Studio. This implentation is an extension of the Core API FSB encryption feature. To allow bank loading when used with the Studio API, set the key via FMOD_STUDIO_ADVANCEDSETTINGS::encryptionkey. When some banks are unencrypted you can use the FMOD_STUDIO_LOAD_BANK_UNENCRYPTED load flag to ignore the given key.

### LowLevel API Renamed to Core API

The LowLevel API has been renamed to Core API, other than that it should still function the same way it previously has.

- Studio::System::getLowLevelSystem is now Studio::System::getCoreSystem