LowFrequency
LowFrequency
#Overview
name: LowFrequency
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 43
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of LowFrequency is to represent the Low-Frequency Effects (LFE) channel in audio systems, particularly in surround sound configurations. This channel is dedicated to handling low-frequency sounds, typically below 120 Hz, which are often used for bass effects in movies, games, and other multimedia content.
LowFrequency is primarily used in the audio rendering and mixing subsystems of Unreal Engine 5. It is referenced in various audio-related modules, including:
- AudioMixer
- SignalProcessing
- SoundFieldRendering
- AudioMixerXAudio2 (Windows-specific)
- Synthesis plugin
The value of this variable is typically set as part of channel configurations in audio systems. It’s often included in channel mapping arrays or enumerations that define the layout of multi-channel audio setups.
LowFrequency interacts with other audio channel variables such as FrontLeft, FrontRight, FrontCenter, BackLeft, BackRight, SideLeft, and SideRight. These variables collectively represent the different speakers in surround sound setups.
Developers should be aware of the following when using this variable:
- LowFrequency is often treated differently from other channels in audio processing. For example, it’s sometimes skipped in certain operations or given special treatment in audio encoding/decoding processes.
- Not all audio setups include an LFE channel, so code should be prepared to handle configurations with and without it.
- The LowFrequency channel is typically not used for directional audio cues due to its non-directional nature.
Best practices when using this variable include:
- Always check if the LowFrequency channel is present in the current audio configuration before attempting to use it.
- When implementing audio spatialization or 3D audio effects, consider excluding the LowFrequency channel as it’s typically non-directional.
- Be mindful of the LowFrequency channel’s unique properties when implementing audio mixing, effects, or processing algorithms.
- Ensure proper handling of the LowFrequency channel in different surround sound configurations (5.1, 7.1, etc.) to maintain consistent audio quality across various setups.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:1588, section: [AudioDefaultChannelOrder]
- INI Section:
AudioDefaultChannelOrder
- Raw value:
3
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/ConvolutionReverb.cpp:49
Scope (from outer to inner):
file
namespace Audio
namespace ConvolutionReverbIntrinsics
Source code excerpt:
EAudioMixerChannel::Type::FrontRight,
EAudioMixerChannel::Type::FrontCenter,
EAudioMixerChannel::Type::LowFrequency,
EAudioMixerChannel::Type::SideLeft,
EAudioMixerChannel::Type::SideRight
},
// Seven channels (7.0)
{
#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/ConvolutionReverb.cpp:70
Scope (from outer to inner):
file
namespace Audio
namespace ConvolutionReverbIntrinsics
Source code excerpt:
EAudioMixerChannel::Type::FrontRight,
EAudioMixerChannel::Type::FrontCenter,
EAudioMixerChannel::Type::LowFrequency,
EAudioMixerChannel::Type::BackLeft,
EAudioMixerChannel::Type::BackRight,
EAudioMixerChannel::Type::SideLeft,
EAudioMixerChannel::Type::SideRight
}
};
#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/SubmixChannelFormatConverter.cpp:94
Scope (from outer to inner):
file
namespace Audio
function bool GetSubmixChannelOrderForNumChannels
Source code excerpt:
EAudioMixerChannel::Type::FrontRight,
EAudioMixerChannel::Type::FrontCenter,
EAudioMixerChannel::Type::LowFrequency,
EAudioMixerChannel::Type::SideLeft,
EAudioMixerChannel::Type::SideRight
}
);
return true;
#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/SubmixChannelFormatConverter.cpp:110
Scope (from outer to inner):
file
namespace Audio
function bool GetSubmixChannelOrderForNumChannels
Source code excerpt:
EAudioMixerChannel::Type::FrontRight,
EAudioMixerChannel::Type::FrontCenter,
EAudioMixerChannel::Type::LowFrequency,
EAudioMixerChannel::Type::BackLeft,
EAudioMixerChannel::Type::BackRight,
EAudioMixerChannel::Type::SideLeft,
EAudioMixerChannel::Type::SideRight
}
);
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerChannelMaps.cpp:35
Scope (from outer to inner):
file
namespace Audio
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::SideLeft,
EAudioMixerChannel::SideRight
},
// ESubmixChannelFormat::SevenDotOne
{
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerChannelMaps.cpp:45
Scope (from outer to inner):
file
namespace Audio
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::BackLeft,
EAudioMixerChannel::BackRight,
EAudioMixerChannel::SideLeft,
EAudioMixerChannel::SideRight
},
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerChannelMaps.cpp:60
Scope (from outer to inner):
file
namespace Audio
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::BackLeft,
EAudioMixerChannel::BackRight,
EAudioMixerChannel::SideLeft,
EAudioMixerChannel::SideRight
},
};
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerChannelMaps.cpp:233
Scope (from outer to inner):
file
namespace Audio
function void FMixerDevice::InitializeChannelAzimuthMap
Source code excerpt:
// Always ignore low frequency channel for azimuth computations.
DefaultChannelAzimuthPositions[EAudioMixerChannel::LowFrequency] = { EAudioMixerChannel::LowFrequency, INDEX_NONE };
DefaultChannelAzimuthPositions[EAudioMixerChannel::BackLeft] = { EAudioMixerChannel::BackLeft, 210 };
DefaultChannelAzimuthPositions[EAudioMixerChannel::BackRight] = { EAudioMixerChannel::BackRight, 150 };
DefaultChannelAzimuthPositions[EAudioMixerChannel::FrontLeftOfCenter] = { EAudioMixerChannel::FrontLeftOfCenter, 15 };
DefaultChannelAzimuthPositions[EAudioMixerChannel::FrontRightOfCenter] = { EAudioMixerChannel::FrontRightOfCenter, 345 };
DefaultChannelAzimuthPositions[EAudioMixerChannel::BackCenter] = { EAudioMixerChannel::BackCenter, 180 };
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerChannelMaps.cpp:309
Scope (from outer to inner):
file
namespace Audio
function void FMixerDevice::InitializeChannelAzimuthMap
Source code excerpt:
{
// Only track non-LFE and non-Center channel azimuths for use with 3d channel mappings
if (Channel != EAudioMixerChannel::LowFrequency && DefaultChannelAzimuthPositions[Channel].Azimuth >= 0)
{
DeviceChannelAzimuthPositions.Add(DefaultChannelAzimuthPositions[Channel]);
}
}
DeviceChannelAzimuthPositions.Sort(FCompareByAzimuth());
}
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:444
Scope (from outer to inner):
file
namespace Audio
function TArray<Audio::FChannelPositionInfo>* FMixerDevice::GetDefaultPositionMap
Source code excerpt:
,SpeakerPositions[EAudioMixerChannel::FrontRight] // right
,SpeakerPositions[EAudioMixerChannel::FrontCenter] //center
,SpeakerPositions[EAudioMixerChannel::LowFrequency] //LFE
,SpeakerPositions[EAudioMixerChannel::SideLeft] //Left Rear
,SpeakerPositions[EAudioMixerChannel::SideRight] //Right Rear
};
return &FiveDotOneMap;
}
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:458
Scope (from outer to inner):
file
namespace Audio
function TArray<Audio::FChannelPositionInfo>* FMixerDevice::GetDefaultPositionMap
Source code excerpt:
,SpeakerPositions[EAudioMixerChannel::FrontRight] // right
,SpeakerPositions[EAudioMixerChannel::FrontCenter] //center
,SpeakerPositions[EAudioMixerChannel::LowFrequency] //LFE
,SpeakerPositions[EAudioMixerChannel::BackLeft] // Left Rear
,SpeakerPositions[EAudioMixerChannel::BackRight] // Right Rear
,SpeakerPositions[EAudioMixerChannel::SideLeft] // Left Surround
,SpeakerPositions[EAudioMixerChannel::SideRight] // Right Surround
};
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:2223
Scope (from outer to inner):
file
namespace Audio
function void FMixerDevice::Get3DChannelMap
Source code excerpt:
// Check for manual channel mapping parameters (LFE and Front Center)
if (Channel == EAudioMixerChannel::LowFrequency)
{
EffectivePan = InWaveInstance->LFEBleed;
}
else if (Channel == PrevChannelInfo->Channel)
{
EffectivePan = FMath::Lerp(PrevChannelPan, OmniPanFactor, OmniAmount);
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerDevice.cpp:2256
Scope (from outer to inner):
file
namespace Audio
function void FMixerDevice::Get3DChannelMap
Source code excerpt:
// Check for manual channel mapping parameters (LFE and Front Center)
if (Channel == EAudioMixerChannel::LowFrequency)
{
EffectivePan = InWaveInstance->LFEBleed;
}
else if (Channel == PrevChannelInfo->Channel)
{
EffectivePan = PrevChannelPan;
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Public/AudioMixerBlueprintLibrary.h:60
Scope: file
Source code excerpt:
FrontRight,
FrontCenter,
LowFrequency,
BackLeft,
BackRight,
FrontLeftOfCenter,
FrontRightOfCenter,
BackCenter,
SideLeft,
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Public/AudioMixerBlueprintLibrary.h:87
Scope (from outer to inner):
file
function inline const TCHAR* ToString
Source code excerpt:
case EAudioMixerChannelType::FrontRight: return TEXT("FrontRight");
case EAudioMixerChannelType::FrontCenter: return TEXT("FrontCenter");
case EAudioMixerChannelType::LowFrequency: return TEXT("LowFrequency");
case EAudioMixerChannelType::BackLeft: return TEXT("BackLeft");
case EAudioMixerChannelType::BackRight: return TEXT("BackRight");
case EAudioMixerChannelType::FrontLeftOfCenter: return TEXT("FrontLeftOfCenter");
case EAudioMixerChannelType::FrontRightOfCenter: return TEXT("FrontRightOfCenter");
case EAudioMixerChannelType::BackCenter: return TEXT("BackCenter");
case EAudioMixerChannelType::SideLeft: return TEXT("SideLeft");
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixerCore/Private/AudioMixer.cpp:812
Scope (from outer to inner):
file
namespace Audio
function static void InitializeDefaultChannelOrder
Source code excerpt:
DefaultChannelOrder[1] = EAudioMixerChannel::FrontRight;
DefaultChannelOrder[2] = EAudioMixerChannel::FrontCenter;
DefaultChannelOrder[3] = EAudioMixerChannel::LowFrequency;
DefaultChannelOrder[4] = EAudioMixerChannel::SideLeft;
DefaultChannelOrder[5] = EAudioMixerChannel::SideRight;
DefaultChannelOrder[6] = EAudioMixerChannel::BackLeft;
DefaultChannelOrder[7] = EAudioMixerChannel::BackRight;
bool bOverridden = false;
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixerCore/Public/AudioMixer.h:82
Scope (from outer to inner):
file
namespace EAudioMixerChannel
Source code excerpt:
FrontRight,
FrontCenter,
LowFrequency,
BackLeft,
BackRight,
FrontLeftOfCenter,
FrontRightOfCenter,
BackCenter,
SideLeft,
#Loc: <Workspace>/Engine/Source/Runtime/AudioMixerCore/Public/AudioMixer.h:111
Scope (from outer to inner):
file
namespace EAudioMixerChannel
function inline const TCHAR* ToString
Source code excerpt:
case FrontRight: return TEXT("FrontRight");
case FrontCenter: return TEXT("FrontCenter");
case LowFrequency: return TEXT("LowFrequency");
case BackLeft: return TEXT("BackLeft");
case BackRight: return TEXT("BackRight");
case FrontLeftOfCenter: return TEXT("FrontLeftOfCenter");
case FrontRightOfCenter: return TEXT("FrontRightOfCenter");
case BackCenter: return TEXT("BackCenter");
case SideLeft: return TEXT("SideLeft");
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:137
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, // FrontRight
1.0f, // Center
0.0f, // LowFrequency
0.0f, // SideLeft
0.0f, // SideRight
0.0f, // BackLeft
0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:149
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, // FrontRight
0.0f, 0.0f, // Center
0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, // SideLeft
0.0f, 0.0f, // SideRight
0.0f, 0.0f, // BackLeft
0.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:161
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, // Center
0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, // SideRight
0.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:173
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 1.0f, // SideRight
0.0f, 0.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:185
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // SideRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:197
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // SideRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:209
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // SideRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/MediaUtils/Private/MediaAudioResampler.cpp:221
Scope (from outer to inner):
file
namespace MediaAudioResampler
Source code excerpt:
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/NonRealtimeAudioRenderer/Private/AudioMixerPlatformNonRealtime.cpp:167
Scope (from outer to inner):
file
namespace Audio
function bool FMixerPlatformNonRealtime::GetOutputDeviceInfo
Source code excerpt:
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::FrontRight);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::FrontCenter);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::LowFrequency);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::BackLeft);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::BackRight);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::SideLeft);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::SideRight);
return true;
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:12
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float ToMonoMatrix[ChannelMapMaxNumChannels * 1] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
0.707f, 0.707f, 1.0f, 0.0f, 0.5f, 0.5f, 0.5f, 0.5f, // FrontLeft
};
static constexpr float VorbisToMonoMatrix[ChannelMapVorbisNumChannels * 1] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
0.707f, 1.0f, 0.707f, 0.5f, 0.5f, 0.0f, // FrontLeft
};
static constexpr float ToStereoMatrix[ChannelMapMaxNumChannels * 2] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.707f, 0.0f, 0.707f, 0.0f, 0.707f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.707f, 0.0f, 0.0f, 0.707f, 0.0f, 0.707f, // FrontRight
};
static constexpr float VorbisToStereoMatrix[ChannelMapVorbisNumChannels * 2] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.707f, 0.0f, 0.707f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.707f, 1.0f, 0.0f, 0.707f, 0.0f, // FrontRight
};
static constexpr float ToTriMatrix[ChannelMapMaxNumChannels * 3] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.0f, 0.0f, 0.707f, 0.0f, 0.707f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.707f, 0.0f, 0.707f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
};
static constexpr float VorbisToTriMatrix[ChannelMapVorbisNumChannels * 3] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.0f, 0.0f, 0.707f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.0f, 1.0f, 0.0f, 0.707f, 0.0f, // FrontRight
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
};
static constexpr float ToQuadMatrix[ChannelMapMaxNumChannels * 4] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.707f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.707f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, // SideRight
};
static constexpr float VorbisToQuadMatrix[ChannelMapVorbisNumChannels * 4] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.707f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.707f, 1.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // SideRight
};
static constexpr float To5Matrix[ChannelMapMaxNumChannels * 5] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, // SideRight
};
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:82
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float VorbisTo5Matrix[ChannelMapVorbisNumChannels * 5] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // SideRight
};
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:92
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float To5Point1Matrix[ChannelMapMaxNumChannels * 6] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, // SideRight
};
static constexpr float VorbisTo5Point1Matrix[ChannelMapVorbisNumChannels * 6] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Center
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // SideRight
};
static constexpr float ToHexMatrix[ChannelMapMaxNumChannels * 7] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.707f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.707f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // LFE
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // BackRight
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // SideLeft
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:126
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float VorbisToHexMatrix[ChannelMapVorbisNumChannels * 7] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.707f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.707f, 1.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // LFE
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // BackRight
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideLeft
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:140
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float To7Point1Matrix[ChannelMapMaxNumChannels * 8] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontCenter
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideRight
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:156
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float To7Point1Matrix[ChannelMapMaxNumChannels * 8] =
{
// FrontLeft FrontRight Center LowFrequency SideLeft SideRight BackLeft BackRight
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontCenter
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // BackRight
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // SideRight
};
#Loc: <Workspace>/Engine/Source/Runtime/SignalProcessing/Private/ChannelMap.cpp:171
Scope (from outer to inner):
file
namespace Audio
namespace ChannelMapPrivate
Source code excerpt:
static constexpr float VorbisTo7Point1Matrix[ChannelMapVorbisNumChannels * 8] =
{
// FrontLeft Center FrontRight SideLeft SideRight LowFrequency
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontLeft
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, // FrontRight
0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // FrontCenter
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, // LowFrequency
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // SideLeft
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, // SideRight
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // BackLeft
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, // BackRight
};
#Loc: <Workspace>/Engine/Source/Runtime/SoundFieldRendering/Private/SoundFieldRendering.cpp:29
Scope (from outer to inner):
file
function FSoundFieldDecoder::FSoundFieldDecoder
Source code excerpt:
// (skip LFE)
if (CurrSpeakerPos.Channel == EAudioMixerChannel::LowFrequency)
{
SpeakerGainsPtr += NumAmbiChannels;
continue;
}
const float Azimuth = CurrSpeakerPos.Azimuth * DEG_2_RAD;
#Loc: <Workspace>/Engine/Source/Runtime/SoundFieldRendering/Private/SoundFieldRendering.cpp:157
Scope (from outer to inner):
file
function void FSoundFieldDecoder::DecodeAudioDirectlyToDeviceOutputPositions
Source code excerpt:
// skip LFE and Center channel (leave gains at zero)
if (CurrSpeakerPos.Channel == EAudioMixerChannel::LowFrequency || CurrSpeakerPos.Channel == EAudioMixerChannel::FrontCenter)
{
SpeakerGainsPtr += NumAmbiChannels;
continue;
}
const float Theta = ListenerRotationSphericalCoord.X - CurrSpeakerPos.Azimuth * DEG_2_RAD; // azimuth
#Loc: <Workspace>/Engine/Source/Runtime/SoundFieldRendering/Private/SoundFieldRendering.cpp:687
Scope: file
Source code excerpt:
,{EAudioMixerChannel::FrontRight, 30, 0}
,{EAudioMixerChannel::FrontCenter, 0, 0}
,{EAudioMixerChannel::LowFrequency, -1, 0}
,{EAudioMixerChannel::BackLeft, 210, 0}
,{EAudioMixerChannel::BackRight, 150, 0}
,{EAudioMixerChannel::SideLeft, 250, 0}
,{EAudioMixerChannel::SideRight, 110, 0}
,{EAudioMixerChannel::BackCenter, 180,0}
};
#Loc: <Workspace>/Engine/Source/Runtime/SoundFieldRendering/Private/SoundFieldRendering.cpp:740
Scope (from outer to inner):
file
function void FSoundFieldEncoder::EncodeAudioDirectlyFromOutputPositions
Source code excerpt:
// skip LFE and Center channel (leave gains at zero)
// Mono audio channels are FrontCenter, so do _not_ skip if center channel and mono.
const bool bSkipChannel = CurrSpeakerPos.Channel == EAudioMixerChannel::LowFrequency || (!bIsMono && (CurrSpeakerPos.Channel == EAudioMixerChannel::FrontCenter));
if (bSkipChannel)
{
SpeakerGainsPtr += NumAmbiChannels;
continue;
}
#Loc: <Workspace>/Engine/Source/Runtime/Windows/AudioMixerXAudio2/Private/AudioMixerPlatformXAudio2.cpp:857
Scope (from outer to inner):
file
namespace Audio
function static bool GetMMDeviceInfo
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::SideLeft,
EAudioMixerChannel::SideRight,
EAudioMixerChannel::BackLeft,
EAudioMixerChannel::BackRight,
};
#Loc: <Workspace>/Engine/Source/Runtime/Windows/AudioMixerXAudio2/Private/AudioMixerPlatformXAudio2.cpp:884
Scope (from outer to inner):
file
namespace Audio
function static bool GetMMDeviceInfo
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::BackLeft,
EAudioMixerChannel::BackRight,
};
ChannelOrdering = DefaultChannelOrdering51;
}
#Loc: <Workspace>/Engine/Source/Runtime/Windows/AudioMixerXAudio2/Private/AudioMixerPlatformXAudio2.cpp:1035
Scope (from outer to inner):
file
namespace Audio
function bool FMixerPlatformXAudio2::GetOutputDeviceInfo
Source code excerpt:
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::FrontRight);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::FrontCenter);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::LowFrequency);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::BackLeft);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::BackRight);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::SideLeft);
OutInfo.OutputChannelArray.Add(EAudioMixerChannel::SideRight);
return true;
#endif
#Loc: <Workspace>/Engine/Source/Runtime/Windows/AudioMixerXAudio2/Private/WindowsMMDeviceInfoCache.cpp:133
Scope (from outer to inner):
file
namespace Audio
function bool FWindowsMMDeviceCache::EnumerateChannelMask
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::SideLeft,
EAudioMixerChannel::SideRight,
EAudioMixerChannel::BackLeft,
EAudioMixerChannel::BackRight,
};
#Loc: <Workspace>/Engine/Source/Runtime/Windows/AudioMixerXAudio2/Private/WindowsMMDeviceInfoCache.cpp:160
Scope (from outer to inner):
file
namespace Audio
function bool FWindowsMMDeviceCache::EnumerateChannelMask
Source code excerpt:
EAudioMixerChannel::FrontRight,
EAudioMixerChannel::FrontCenter,
EAudioMixerChannel::LowFrequency,
EAudioMixerChannel::BackLeft,
EAudioMixerChannel::BackRight,
};
ChannelOrdering = DefaultChannelOrdering51;
}