# API Reference | UFMODSettings

# 6. API Reference | UFMODSettings

This class inherits from UObject.

Defines:

- EFMODLogging FMOD Logging level.
- EFMODSpeakerMode Project output format, should match the mode set up for the Studio project.
- EFMODOutput FMOD System Output modes.
- EFMODPlatforms Target Platforms.
- EFMODCodec Encoding formats.
- FCustomPoolSizes Use specific memory pool size for platform, in bytes. Disabled by default.
- FFMODProjectLocale Locales for localized banks. Theses should match the project locales configured in the FMOD Studio Project.
- FPlatformSettings This section contains settings that can be set per platform.

Properties:

- UFMODSettings::bLoadAllBanks Load all banks at startup.
- UFMODSettings::bLoadAllSampleData Load all banks sample data into memory at start up.
- UFMODSettings::bEnableLiveUpdate Enable live update in non-final builds.
- UFMODSettings::bEnableEditorLiveUpdate Enable live update in Editor for Auditioning. Requires Restart
- UFMODSettings::bEnableAPIErrorLogging Will log internal API errors when enabled.
- UFMODSettings::bEnableMemoryTracking Enables the FMOD_STUDIO_INIT_MEMORY_TRACKING flag in the FMOD Studio system.
- UFMODSettings::BankOutputDirectory Path to find your studio bank output directory, relative to Content directory.
- UFMODSettings::OutputFormat Project output format, should match the mode set up for the Studio project.
- UFMODSettings::OutputType Built-in output types that can be used to run the mixer.
- UFMODSettings::Locales Locales for localized banks. These should match the project locales configured in the FMOD Studio project.
- UFMODSettings::Vol0VirtualLevel The signal level at which to make channels virtual.
- UFMODSettings::SampleRate Sample rate to use, or 0 to match system rate.eg. 0, 22050, 24000, 32000, 44100, 48000.
- UFMODSettings::bMatchHardwareSampleRate Match hardware sample rate where reasonable (44.1kHz to 48kHz).
- UFMODSettings::RealChannelCount Number of actual software voices that can be used at once.
- UFMODSettings::TotalChannelCount Total number of voices available that can be either real or virtual.
- UFMODSettings::DSPBufferLength DSP mixer buffer length (eg. 512, 1024) or 0 for system default.
- UFMODSettings::DSPBufferCount DSP mixer buffer count (eg. 2, 4) or 0 for system default.
- UFMODSettings::FileBufferSize File buffer size in bytes (2048 by default).
- UFMODSettings::StudioUpdatePeriod Studio update period in milliseconds, or 0 for default (which means 20ms).
- UFMODSettings::InitialOutputDriverName Output device to choose at system start up, or empty for default.
- UFMODSettings::bLockAllBuses Lock all mixer buses at startup, making sure they are created up front.
- UFMODSettings::MemoryPoolSizes Use specified memory pool size for platform, units in bytes. Disabled by default. FMOD may become unstable if the limit is exceeded!
- UFMODSettings::LiveUpdatePort Live update port to use, or 0 for default.
- UFMODSettings::EditorLiveUpdatePort Live update port to use while in editor for auditioning. Requires Restart
- UFMODSettings::ReloadBanksDelay Delay in seconds before automatically reloading modified banks from disk.
- UFMODSettings::bEnableMemoryTracking Enables the FMOD_STUDIO_INIT_MEMORY_TRACKING flag in the FMOD Studio system.
- UFMODSettings::PluginFiles Extra plugin files to load. The plugin files should sit alongside the FMOD dynamic libraries in the ThirdParty directory.
- UFMODSettings::ContentBrowserPrefix Directory for content to appear in content window. Be careful changing this!
- UFMODSettings::ForcePlatformName Force platform directory name, or leave empty for automatic (Desktop/Mobile/PS4/XBoxOne)
- UFMODSettings::MasterBankName Name of master bank. The default in Studio is "Master".
- UFMODSettings::SkipLoadBankName Skip bank files of the given name. Can be used to load all banks except for a certain set, such as localization banks.
- UFMODSettings::StudioBankKey Specify the key for loading sounds from encrypted banks.
- UFMODSettings::WavWriterPath Force wav writer output, for debugging only. Setting this will prevent normal sound output!
- UFMODSettings::LoggingLevel Specify the logging level to use in a debug/development build.
- UFMODSettings::OcclusionParameter Name of the parameter used in Studio to control occlusion effects.
- UFMODSettings::AmbientVolumeParameter Name of the parameter used in Studio to control ambient volume.
- UFMODSettings::AmbientLPFParameter Name of the parameter used in Studio to control ambient LPF effects.
- UFMODSettings::Platforms Used to specify platform specific settings.

## EFMODLogging

FMOD Logging level.

C++

    enum EFMODLogging
    {
        LEVEL_NONE = 0,
        LEVEL_ERROR = 1,
        LEVEL_WARNING = 2,
        LEVEL_LOG = 4
    };

LEVEL_NONE = 0
  No FMOD logging.
LEVEL_ERROR = 1
  Only log errors.
LEVEL_WARNING = 2
  Only log warnings.
LEVEL_LOG = 4
  Log all FMOD calls.

## EFMODSpeakerMode

Project output format, should match the mode set up for the Studio project.

C++

    namespace EFMODSpeakerMode
    {
        enum Type
        {
            Stereo,
            Surround_5_1,
            Surround_7_1,
            Surround_7_1_4
        };
    }

Stereo
  Speakers in a Stereo set up.
Surround_5_1
  Speakers in a 5.1 set up.
Surround_7_1
  Speakers in a 7.1 set up.
Surround_7_1_4
  Speakers in a 7.1.4 set up.

This setting must match the corresponding project platform in the FMOD Studio build settings.

## EFMODOutput

FMOD System Output modes.

C++

    namespace EFMODOutput
    {
        enum Type
        {
            TYPE_AUTODETECT,
            TYPE_NOSOUND,
            TYPE_WASAPI,
            TYPE_ASIO,
            TYPE_PULSEAUDIO,
            TYPE_ALSA,
            TYPE_COREAUDIO,
            TYPE_AUDIOTRACK,
            TYPE_OPENSL,
            TYPE_AUDIOOUT,
            TYPE_AUDIO3D,
            TYPE_NNAUDIO,
            TYPE_WINSONIC,
            TYPE_AAUDIO,
        };
    }

TYPE_AUTODETECT
  Picks the best output mode for the platform. This is the default.
TYPE_NOSOUND
  All - Perform all mixing but discard the final output.
TYPE_WASAPI
  Win / UWP / Xbox One / Game Core - Windows Audio Session API. (Default on Windows, Xbox One, Game Core and UWP)
TYPE_ASIO
  Win - Low latency ASIO 2.0.
TYPE_PULSEAUDIO
  Linux - Pulse Audio. (Default on Linux if available)
TYPE_ALSA
  Linux - Advanced Linux Sound Architecture. (Default on Linux if PulseAudio isn't available)
TYPE_COREAUDIO
  Mac / iOS - Core Audio. (Default on Mac and iOS)
TYPE_AUDIOTRACK
  Android - Java Audio Track. (Default on Android 2.2 and below)
TYPE_OPENSL
  Android - OpenSL ES. (Default on Android 2.3 up to 7.1)
TYPE_AUDIOOUT
  PS4 / PS5 - Audio Out. (Default on PS4, PS5)
TYPE_AUDIO3D
  PS4 - Audio3D.
TYPE_NNAUDIO
  Switch - nn::audio. (Default on Switch)
TYPE_WINSONIC
  Win10 / Xbox One / Game Core - Windows Sonic.
TYPE_AAUDIO
  Android - AAudio. (Default on Android 8.1 and above)

## EFMODPlatforms

Target Platforms.

C++

    namespace EFMODPlatforms
    {
        enum Type
        {
            Windows,
            Linux,
            Mac,
            Android,
            IOS,
            PS4,
            PS5,
            Deprecated,
            Switch,
            XboxOne,
            XSX,
            Editor
        };
    }

## EFMODCodec

Encoding formats.

C++

    namespace EFMODCodec
    {
        enum Type
        {
            VORBIS,
            FADPCM,
            OPUS,
            XMA,
            AT9,
        };
    }

VORBIS
  The quality maps linearly to FMOD Studio's quality property. It defaults to 37% as recommended by Vorbis for the best balance between compression and quality.
FADPCM
  Place holder.
OPUS
  Opus per-channel bitrates of 0.8 Kbps to 64 Kbps map linearly to the range 1% to 80% on FMOD Studio's quality slider, and per-channel bitrates of 67.2 Kbps to 128 Kbps map linearly to the range of 81% to 100%. Opus quality defaults to 63%, which corresponds to the bitrate of 50.4 Kbps used by default in the Opus reference implementation.
XMA
  The quality maps linearly to the quality property.
AT9
  The bitrate (Kbps) depends on channel count and the quality property steps up every 16%. For more information see the FMOD FSBank API.

## FCustomPoolSizes

Use specific memory pool size for platform, in bytes. Disabled by default.

C++

    struct FCustomPoolSizes
    {
        int32 Desktop;
        int32 Mobile;
        int32 PS4;
        int32 Switch;
        int32 XboxOne;
    };

Desktop

  (Disabled) units in bytes.

  - Default: 0
Mobile

  (Disabled) units in bytes.

  - Default: 0
PS4

  (Disabled) units in bytes.

  - Default: 0
Switch

  (Disabled) units in bytes.

  - Default: 0
XboxOne

  (Disabled) units in bytes.

  - Default: 0

FMOD may become unstable if the limit is exceeded!

## FFMODProjectLocale

Locales for localized banks. Theses should match the project locales configured in the FMOD Studio Project.

C++

    struct FFMOD::ProjectLocale
    {
        FString LocaleName;
        FString LocaleCode;
        bool bDefault;
    };

LocaleName
  Human readable locale name, displayed in Blueprints.
LocaleCode
  Locale code. Must correspond to project locale codes in FMOD Studio project.
bDefault
  Default locale at startup. Only one locale should be marked as default.

## FPlatformSettings

This section contains settings that can be set per platform.

C++

    struct FFMODPlatformSettings
    {
        int32 RealChannelCount;
        int32 SampleRate;
        TEnumAsByte<EFMODSpeakerMode::Type> SpeakerMode;
        TEnumAsByte<EFMODOutput::Type> OutputType;
        int32 CustomPoolSize;
        TMap<TEnumAsByte<EFMODCodec::Type>, int32> Codecs;
    };

RealChannelCount
  Real Channel Count.
SampleRate
  Sample rate to use, or 0 to match system rate.
  eg. 0, 22050, 24000, 32000, 44100, 48000.
SpeakerMode
  Project output format, should match the mode set up for the Studio project.
OutputType
  Built-in output types that can be used to run the mixer.
CustomPoolSize
  Use specified memory pool size, units in bytes. Disabled by default.
  FMOD may become unstable if the limit is exceeded!
Codecs
  Encoding formats.

## UFMODSettings::bLoadAllBanks

Load all banks at startup.

C++

    bool bLoadAllBanks;

## UFMODSettings::bLoadAllSampleData

Load all banks sample data into memory at start up.

C++

    bool bLoadAllSampleData;

## UFMODSettings::bEnableLiveUpdate

Enable live update in non-final builds.

C++

    bool bEnableLiveUpdate;

## UFMODSettings::bEnableEditorLiveUpdate

Enable live update in Editor for Auditioning. Requires Restart

C++

    bool bEnableEditorLiveUpdate;

## UFMODSettings::bEnableAPIErrorLogging

Will log internal API errors when enabled.

C++

    bool bEnableAPIErrorLogging;

## UFMODSettings::bEnableMemoryTracking

Enables the FMOD_STUDIO_INIT_MEMORY_TRACKING flag in the FMOD Studio system.

C++

    bool bEnableMemoryTracking;

See Also: FMOD_STUDIO_INIT_MEMORY_TRACKING

## UFMODSettings::BankOutputDirectory

Path to find your studio bank output directory, relative to Content directory.

C++

    FDirectoryPath BankOutputDirectory;

## UFMODSettings::OutputFormat

Project output format, should match the mode set up for the Studio project.

C++

    TEnumAsByte<EFMODSpeakerMode::Type> OutputFormat;

## UFMODSettings::OutputType

Built-in output types that can be used to run the mixer.

C++

    TEnumAsByte<EFMODOutput::Type> OutputType;

## UFMODSettings::Locales

Locales for localized banks. These should match the project locales configured in the FMOD Studio project.

C++

    TArray<FFMODProjectLocale> Locales;

## UFMODSettings::Vol0VirtualLevel

The signal level at which to make channels virtual.

C++

    float Vol0VirtualLevel;

## UFMODSettings::SampleRate

Sample rate to use, or 0 to match system rate.eg. 0, 22050, 24000, 32000, 44100, 48000.

C++

    int32 SampleRate;

## UFMODSettings::bMatchHardwareSampleRate

Match hardware sample rate where reasonable (44.1kHz to 48kHz).

C++

    bool bMatchHardwareSampleRate;

## UFMODSettings::RealChannelCount

Number of actual software voices that can be used at once.

C++

    int32 RealChannelCount;

## UFMODSettings::TotalChannelCount

Total number of voices available that can be either real or virtual.

C++

    int32 TotalChannelCount;

## UFMODSettings::DSPBufferLength

DSP mixer buffer length (eg. 512, 1024) or 0 for system default.

C++

    int32 DSPBufferLength;

When changing the Buffer Length, Buffer Count also needs to be set.

## UFMODSettings::DSPBufferCount

DSP mixer buffer count (eg. 2, 4) or 0 for system default.

C++

    int32 DSPBufferCount;

When changing the Buffer Count, Buffer Length also needs to be set.

## UFMODSettings::FileBufferSize

File buffer size in bytes (2048 by default).

C++

    int32 FileBufferSize;

## UFMODSettings::StudioUpdatePeriod

Studio update period in milliseconds, or 0 for default (which means 20ms).

C++

    int32 StudioUpdatePeriod;

## UFMODSettings::InitialOutputDriverName

Output device to choose at system start up, or empty for default.

C++

    FString InitialOutputDriverName;

## UFMODSettings::bLockAllBuses

Lock all mixer buses at startup, making sure they are created up front.

C++

    bool bLockAllBuses;

## UFMODSettings::MemoryPoolSizes

Use specified memory pool size for platform, units in bytes. Disabled by default. FMOD may become unstable if the limit is exceeded!

C++

    FCustomPoolSizes MemoryPoolSizes;

## UFMODSettings::LiveUpdatePort

Live update port to use, or 0 for default.

C++

    int32 LiveUpdatePort;

## UFMODSettings::EditorLiveUpdatePort

Live update port to use while in editor for auditioning. Requires Restart

C++

    int32 EditorLiveUpdatePort;

## UFMODSettings::ReloadBanksDelay

Delay in seconds before automatically reloading modified banks from disk.

C++

    int32 ReloadBanksDelay;

This can be extended if building banks takes a long time and UE4 tries to reload banks before building is completed. Set to 0 to disable automatic bank reloading.

## UFMODSettings::bEnableMemoryTracking

Enables the FMOD_STUDIO_INIT_MEMORY_TRACKING flag in the FMOD Studio system.

C++

    bool bEnableMemoryTracking;

See Also: FMOD_STUDIO_INIT_MEMORY_TRACKING

## UFMODSettings::PluginFiles

Extra plugin files to load. The plugin files should sit alongside the FMOD dynamic libraries in the ThirdParty directory.

C++

    TArray<FString> PluginFiles;

## UFMODSettings::ContentBrowserPrefix

Directory for content to appear in content window. Be careful changing this!

C++

    FString ContentBrowserPrefix;

## UFMODSettings::ForcePlatformName

Force platform directory name, or leave empty for automatic (Desktop/Mobile/PS4/XBoxOne)

C++

    FString ForcePlatformName;

## UFMODSettings::MasterBankName

Name of master bank. The default in Studio is "Master".

C++

    FString MasterBankName;

## UFMODSettings::SkipLoadBankName

Skip bank files of the given name. Can be used to load all banks except for a certain set, such as localization banks.

C++

    FString SkipLoadBankName;

## UFMODSettings::StudioBankKey

Specify the key for loading sounds from encrypted banks.

C++

    FString StudioBankKey;

## UFMODSettings::WavWriterPath

Force wav writer output, for debugging only. Setting this will prevent normal sound output!

C++

    FString WavWriterPath;

## UFMODSettings::LoggingLevel

Specify the logging level to use in a debug/development build.

C++

    TEnumAsByte<EFMODLogging> LoggingLevel;

## UFMODSettings::OcclusionParameter

Name of the parameter used in Studio to control occlusion effects.

C++

    FString OcclusionParameter;

## UFMODSettings::AmbientVolumeParameter

Name of the parameter used in Studio to control ambient volume.

C++

    FString AmbientVolumeParameter;

## UFMODSettings::AmbientLPFParameter

Name of the parameter used in Studio to control ambient LPF effects.

C++

    FString AmbientLPFParameter;

## UFMODSettings::Platforms

Used to specify platform specific settings.

C++

    TMap<TEnumAsByte<EFMODPlatforms::Type>, FFMODPlatformSettings> Platforms;