au.DisableSubmixEffectEQ
au.DisableSubmixEffectEQ
#Overview
name: au.DisableSubmixEffectEQ
The value of this variable can be defined or overridden in .ini config files. 2
.ini config files referencing this setting variable.
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Disables the eq submix (true by default as of 5.0).\n0: Not Disabled, 1: Disabled
It is referenced in 5
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of au.DisableSubmixEffectEQ is to control whether the EQ (Equalizer) submix effect is disabled in the Unreal Engine audio system. This setting is part of the audio mixing and processing subsystem.
The Unreal Engine subsystem that relies on this setting variable is the Audio Mixer module, specifically within the FMixerDevice class. This can be seen from the file path “Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp” where the variable is defined and used.
The value of this variable is set through the Unreal Engine’s console variable system. It’s initialized with a default value of 1 (disabled) and can be changed at runtime using console commands.
The associated variable DisableSubmixEffectEQCvar interacts directly with au.DisableSubmixEffectEQ. They share the same value, with DisableSubmixEffectEQCvar being the actual int32 variable used in the code, while au.DisableSubmixEffectEQ is the console variable name used to access and modify this setting.
Developers must be aware that:
- By default (as of UE 5.0), the EQ submix is disabled (value is 1).
- Changing this value affects the initialization of sound submixes and can impact audio processing in the game.
- The EQ submix will not be loaded or processed when this variable is set to 1 (disabled).
Best practices when using this variable include:
- Only enable the EQ submix (by setting the value to 0) if you specifically need EQ processing in your audio pipeline.
- Be mindful of performance implications when enabling the EQ submix, especially on lower-end devices.
- If you change this setting, ensure to test thoroughly across all target platforms to verify audio quality and performance.
Regarding the associated variable DisableSubmixEffectEQCvar:
The purpose of DisableSubmixEffectEQCvar is to serve as the actual integer variable that stores the state of whether the EQ submix effect is disabled or not.
This variable is used within the AudioMixer module of Unreal Engine, specifically in the FMixerDevice class implementations.
The value of DisableSubmixEffectEQCvar is set through the console variable system, linked to “au.DisableSubmixEffectEQ”.
It interacts directly with the au.DisableSubmixEffectEQ console variable, effectively storing its value for use in the C++ code.
Developers should be aware that:
- This variable directly controls whether the EQ submix is initialized and used in the audio processing pipeline.
- Its default value is 1, meaning the EQ submix is disabled by default in UE 5.0 and later.
Best practices for using DisableSubmixEffectEQCvar include:
- Avoid directly modifying this variable in code; instead, use the console variable system to change its value.
- When reading this variable’s value in code, be aware that it might change at runtime if modified through the console.
- Consider the performance implications of enabling the EQ submix (by setting this to 0) in your specific use case.
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/Android/AndroidEngine.ini:16, section: [ConsoleVariables]
- INI Section:
ConsoleVariables
- Raw value:
1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/IOS/IOSEngine.ini:11, section: [ConsoleVariables]
- INI Section:
ConsoleVariables
- Raw value:
1
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:53
Scope: file
Source code excerpt:
static int32 DisableSubmixEffectEQCvar = 1;
FAutoConsoleVariableRef CVarDisableSubmixEQ(
TEXT("au.DisableSubmixEffectEQ"),
DisableSubmixEffectEQCvar,
TEXT("Disables the eq submix (true by default as of 5.0).\n")
TEXT("0: Not Disabled, 1: Disabled"),
ECVF_Default);
static int32 DisableSubmixMutationLockCVar = 0;
#Associated Variable and Callsites
This variable is associated with another variable named DisableSubmixEffectEQCvar
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:51
Scope: file
Source code excerpt:
}
static int32 DisableSubmixEffectEQCvar = 1;
FAutoConsoleVariableRef CVarDisableSubmixEQ(
TEXT("au.DisableSubmixEffectEQ"),
DisableSubmixEffectEQCvar,
TEXT("Disables the eq submix (true by default as of 5.0).\n")
TEXT("0: Not Disabled, 1: Disabled"),
ECVF_Default);
static int32 DisableSubmixMutationLockCVar = 0;
FAutoConsoleVariableRef CVarDisableSubmixMutationLock(
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:1174
Scope (from outer to inner):
file
namespace Audio
function void FMixerDevice::InitSoundSubmixes
Source code excerpt:
LoadRequiredSubmix(ERequiredSubmixes::Reverb, TEXT("MasterReverbSubmixDefault"), true /* DefaultMuteWhenBackgrounded */, AudioSettings->ReverbSubmix);
if (!DisableSubmixEffectEQCvar)
{
LoadRequiredSubmix(ERequiredSubmixes::EQ, TEXT("MasterEQSubmixDefault"), false /* DefaultMuteWhenBackgrounded */, AudioSettings->EQSubmix);
}
LoadPluginSoundSubmixes();
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:1209
Scope (from outer to inner):
file
namespace Audio
function void FMixerDevice::InitSoundSubmixes
Source code excerpt:
for (int32 i = 0; i < static_cast<int32>(ERequiredSubmixes::Count); ++i)
{
if (DisableSubmixEffectEQCvar && i == static_cast<int32>(ERequiredSubmixes::EQ))
{
continue;
}
USoundSubmixBase* SoundSubmix = RequiredSubmixes[i];
if (SoundSubmix && SoundSubmix != RequiredSubmixes[static_cast<int32>(ERequiredSubmixes::Main)])
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:2016
Scope (from outer to inner):
file
namespace Audio
function FMixerSubmixPtr FMixerDevice::FindSubmixInstanceByObjectId
Source code excerpt:
);
if (!DisableSubmixEffectEQCvar && ERequiredSubmixes::EQ == SubmixType)
{
UE_LOG(LogAudioMixer, Warning, TEXT("Failed to query EQ Submix when it was expected to be loaded."));
}
}
}