Unreal Integration 2.02

6. API Reference | UFMODSettings

This class inherits from UObject.

Defines:

Properties:

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;