FrontLeftOfCenter

FrontLeftOfCenter

#Overview

name: FrontLeftOfCenter

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 8 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of FrontLeftOfCenter is to represent a specific audio channel in Unreal Engine 5’s audio mixing system. This channel corresponds to a speaker or output position that is located slightly to the left of the center in front of the listener.

This setting variable is primarily used within the audio subsystem of Unreal Engine, specifically in the AudioMixer and Synthesis modules. It is an integral part of the engine’s surround sound and spatial audio capabilities.

The value of this variable is not set directly, but rather it is used as an enum value within the EAudioMixerChannel namespace. It is defined in the AudioMixer.h file and used across various audio-related functions and data structures.

FrontLeftOfCenter interacts with other audio channel variables, such as FrontRightOfCenter, FrontCenter, and other surround sound channels. It is often used in channel mapping, azimuth calculations, and audio format conversion processes.

Developers must be aware that this channel is part of a more complex surround sound setup and may not be present in all audio configurations. It’s typically used in 7.1 or higher channel configurations.

Best practices when using this variable include:

  1. Ensuring that the audio content is mixed properly to take advantage of this channel when it’s available.
  2. Implementing fallback strategies for systems that don’t support this channel.
  3. Using it in conjunction with the AudioMixer module’s functions for proper channel mapping and spatial audio calculations.
  4. Being mindful of its position (15 degrees azimuth) when designing spatial audio experiences.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:1577, section: [AudioChannelAzimuthMap]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/SubmixChannelFormatConverter.cpp:15

Scope (from outer to inner):

file
namespace    Audio
namespace    SubmixChannelFormatConverterPrivate

Source code excerpt:

				EAudioMixerChannel::FrontRight,
				EAudioMixerChannel::FrontCenter,
				EAudioMixerChannel::FrontLeftOfCenter,
				EAudioMixerChannel::FrontRightOfCenter,
				EAudioMixerChannel::TopFrontLeft,
				EAudioMixerChannel::TopFrontRight,
				EAudioMixerChannel::TopFrontCenter
			}
		);

#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/SubmixChannelFormatConverter.cpp:30

Scope (from outer to inner):

file
namespace    Audio
namespace    SubmixChannelFormatConverterPrivate

Source code excerpt:

			{ EAudioMixerChannel::FrontRight, { EAudioMixerChannel::BackRight, EAudioMixerChannel::SideRight, EAudioMixerChannel::TopBackRight } },
			{ EAudioMixerChannel::FrontCenter, { EAudioMixerChannel::BackCenter, EAudioMixerChannel::TopCenter, EAudioMixerChannel::TopBackCenter } },
			{ EAudioMixerChannel::FrontLeftOfCenter, { EAudioMixerChannel::BackLeft, EAudioMixerChannel::SideLeft, EAudioMixerChannel::TopBackLeft } },
			{ EAudioMixerChannel::FrontRightOfCenter, { EAudioMixerChannel::BackRight, EAudioMixerChannel::SideRight, EAudioMixerChannel::TopBackRight } },
			{ EAudioMixerChannel::TopFrontLeft, { EAudioMixerChannel::BackLeft, EAudioMixerChannel::SideLeft, EAudioMixerChannel::TopBackLeft } },
			{ EAudioMixerChannel::TopFrontRight, { EAudioMixerChannel::BackRight, EAudioMixerChannel::SideRight, EAudioMixerChannel::TopBackRight } },
			{ EAudioMixerChannel::TopFrontCenter, { EAudioMixerChannel::BackCenter, EAudioMixerChannel::TopCenter, EAudioMixerChannel::TopBackCenter } }
		};

#Loc: <Workspace>/Engine/Plugins/Runtime/Synthesis/Source/Synthesis/Private/SubmixChannelFormatConverter.cpp:44

Scope (from outer to inner):

file
namespace    Audio
namespace    SubmixChannelFormatConverterPrivate

Source code excerpt:

			{ EAudioMixerChannel::FrontRight, PairedRearChannelTypes[EAudioMixerChannel::FrontLeft] },
			{ EAudioMixerChannel::FrontCenter, PairedRearChannelTypes[EAudioMixerChannel::FrontCenter] },
			{ EAudioMixerChannel::FrontLeftOfCenter, PairedRearChannelTypes[EAudioMixerChannel::FrontRightOfCenter] },
			{ EAudioMixerChannel::FrontRightOfCenter, PairedRearChannelTypes[EAudioMixerChannel::FrontLeftOfCenter] },
			{ EAudioMixerChannel::TopFrontLeft, PairedRearChannelTypes[EAudioMixerChannel::TopFrontRight] },
			{ EAudioMixerChannel::TopFrontRight, PairedRearChannelTypes[EAudioMixerChannel::TopFrontLeft] },
			{ EAudioMixerChannel::TopFrontCenter, PairedRearChannelTypes[EAudioMixerChannel::TopFrontCenter] }
		};
	}

#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Private/AudioMixerChannelMaps.cpp:237

Scope (from outer to inner):

file
namespace    Audio
function     void FMixerDevice::InitializeChannelAzimuthMap

Source code excerpt:

		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 };
		DefaultChannelAzimuthPositions[EAudioMixerChannel::SideLeft] = { EAudioMixerChannel::SideLeft, 250 };
		DefaultChannelAzimuthPositions[EAudioMixerChannel::SideRight] = { EAudioMixerChannel::SideRight, 110 };

		// Check any engine ini overrides for these default positions

#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Public/AudioMixerBlueprintLibrary.h:63

Scope: file

Source code excerpt:

	BackLeft,
	BackRight,
	FrontLeftOfCenter,
	FrontRightOfCenter,
	BackCenter,
	SideLeft,
	SideRight,
	TopCenter,
	TopFrontLeft,

#Loc: <Workspace>/Engine/Source/Runtime/AudioMixer/Public/AudioMixerBlueprintLibrary.h:90

Scope (from outer to inner):

file
function     inline const TCHAR* ToString

Source code excerpt:

		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");
		case EAudioMixerChannelType::SideRight:				return TEXT("SideRight");
		case EAudioMixerChannelType::TopCenter:				return TEXT("TopCenter");
		case EAudioMixerChannelType::TopFrontLeft:			return TEXT("TopFrontLeft");

#Loc: <Workspace>/Engine/Source/Runtime/AudioMixerCore/Public/AudioMixer.h:85

Scope (from outer to inner):

file
namespace    EAudioMixerChannel

Source code excerpt:

		BackLeft,
		BackRight,
		FrontLeftOfCenter,
		FrontRightOfCenter,
		BackCenter,
		SideLeft,
		SideRight,
		TopCenter,
		TopFrontLeft,

#Loc: <Workspace>/Engine/Source/Runtime/AudioMixerCore/Public/AudioMixer.h:114

Scope (from outer to inner):

file
namespace    EAudioMixerChannel
function     inline const TCHAR* ToString

Source code excerpt:

		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");
		case SideRight:				return TEXT("SideRight");
		case TopCenter:				return TEXT("TopCenter");
		case TopFrontLeft:			return TEXT("TopFrontLeft");